e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/* Copyright (c) 2001, Stanford University
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * All rights reserved.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync *
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * See the file LICENSE.txt for information on redistributing this software.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#ifndef CR_PERF_H
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#define CR_PERF_H
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#ifdef __cplusplus
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncextern "C" {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#endif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/**
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * For the performance SPU. Allows application to obtain it's own
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * statistics, and reset etc.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynctypedef struct {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int count;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int v2d, v2f, v2i, v2s;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int v2dv, v2fv, v2iv, v2sv;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int v3d, v3f, v3i, v3s;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int v3dv, v3fv, v3iv, v3sv;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int v4d, v4f, v4i, v4s;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int v4dv, v4fv, v4iv, v4sv;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int ipoints; /**< Interpreted points */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int ilines; /**< Interpreted lines */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int itris; /**< Interpreted tris */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int iquads; /**< Interpreted quads */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int ipolygons; /**< Interpreted polygons */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync} PerfVertex;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/**
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Primitives data
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynctypedef struct {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex points;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex lines;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex lineloop;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex linestrip;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex triangles;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex tristrip;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex trifan;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex quads;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex quadstrip;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex polygon;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync} PerfPrim;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynctypedef struct {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int draw_pixels;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int read_pixels;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int teximage1DBytes; /**< bytes given to glTexImage1D */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int teximage2DBytes; /**< bytes given to glTexImage2D */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int teximage3DBytes; /**< bytes given to glTexImage3D */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int texsubimage1DBytes; /**< bytes given to glTexSubImage1D */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int texsubimage2DBytes; /**< bytes given to glTexSubImage2D */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int texsubimage3DBytes; /**< bytes given to glTexSubImage3D */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int newLists; /**< glNewList calls */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync int callLists; /**< glCallList(s) calls */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex *cur_vertex;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfVertex vertex_snapshot;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync PerfPrim vertex_data;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync} PerfData;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#ifdef __cplusplus
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync} /* extern "C" */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#endif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#endif /* CR_PERF_H */