⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 profile.h

📁 Lido PXA270平台开发板的最新BSP,包括源代码
💻 H
字号:
/**************************************************************************
 * Name         : profile.h
 * Author       : Vlad Stamate
 * Created      : 20/01/2004
 *
 * Copyright    : 2004 by Imagination Technologies Limited. All rights reserved.
 *              : No part of this software, either material or conceptual 
 *              : may be copied or distributed, transmitted, transcribed,
 *              : stored in a retrieval system or translated into any 
 *              : human or computer language in any form by any means,
 *              : electronic, mechanical, manual or other-wise, or 
 *              : disclosed to third parties without the express written
 *              : permission of Imagination Technologies Limited, Unit 8, HomePark
 *              : Industrial Estate, King's Langley, Hertfordshire,
 *              : WD4 8LZ, U.K.
 *
 * Platform     : ANSI
 *
 * $Date: 2004/10/11 10:27:06 $
 * $Log: profile.h $
 *
 **************************************************************************/
#ifndef _PROFILE_H_
#define _PROFILE_H_

#include "drvgl.h" 	/* For define of GL_TRIANGLE_FAN */

#if defined (__cplusplus)
extern "C" {
#endif

#define DRAW_ARRAYS		0
#define DRAW_ELEMENTS	1

#if defined (TIMING) || defined (DEBUG)

typedef struct
{
	IMG_UINT32 CallCount[GL_TRIANGLE_FAN+1];
	IMG_UINT32 VertexCount[GL_TRIANGLE_FAN+1];
}DrawCallData;

typedef struct StateMetricDataRec
{
	IMG_UINT32 ui32Count;

	IMG_UINT32 ui32RasterEnables;
	IMG_UINT32 ui32TnLEnables;
	IMG_UINT32 ui32IgnoredEnables;
	IMG_UINT32 ui32FrameEnables;

	struct StateMetricDataRec *next;
	struct StateMetricDataRec *previous;

}StateMetricData;

#define PROFILE_GL_BLEND							0
#define PROFILE_GL_ALPHA_TEST						1
#define PROFILE_GL_COLOR_LOGIC_OP					2
#define PROFILE_GL_TEXTURE_2D						3
#define PROFILE_GL_DEPTH_TEST						5
#define PROFILE_GL_POLYGON_OFFSET_FILL				6
#define PROFILE_GL_CULL_FACE						7
#define PROFILE_GL_FOG								8

#define PROFILE_GL_DITHER							0
#define PROFILE_GL_MULTISAMPLE					    1
#define PROFILE_GL_SCISSOR_TEST						2

#define PROFILE_GL_LIGHT0							0
#define PROFILE_GL_LIGHT1							1
#define PROFILE_GL_LIGHT2							2
#define PROFILE_GL_LIGHT3							3
#define PROFILE_GL_LIGHT4							4
#define PROFILE_GL_LIGHT5							5
#define PROFILE_GL_LIGHT6							6
#define PROFILE_GL_LIGHT7							7
#define PROFILE_GL_LIGHTING							8
#define PROFILE_GL_RESCALE_NORMAL					9
#define PROFILE_GL_COLOR_MATERIAL					10
#define PROFILE_GL_NORMALIZE						11

#define PROFILE_GL_SAMPLE_ALPHA_TO_COVERAGE			0
#define PROFILE_GL_SAMPLE_ALPHA_TO_ONE				1
#define PROFILE_GL_SAMPLE_COVERAGE					2
#define PROFILE_GL_STENCIL_TEST						3
#define PROFILE_GL_LINE_SMOOTH						4
#define PROFILE_GL_POINT_SMOOTH						5

#define PROFILE_GL_VERTEX_ARRAY						0
#define PROFILE_GL_NORMAL_ARRAY						1
#define PROFILE_GL_COLOR_ARRAY						2
#define PROFILE_GL_TEXTURE_COORD_ARRAY				3


#define GLES_PROFILE_INCREMENT_CALLCOUNT(X,Y)		{\
													if(GLES_CHECK_BETWEEN_START_END_FRAME) \
														gc->sDrawCall[X].CallCount[Y]++; \
													}
#define GLES_PROFILE_INCREMENT_VERTEXCOUNT(X,Y,Z)	{\
													if(GLES_CHECK_BETWEEN_START_END_FRAME) \
														gc->sDrawCall[X].VertexCount[Y]+=Z; \
													}
#define GLES_PROFILE_ADD_METRIC						{\
													if(GLES_CHECK_BETWEEN_START_END_FRAME) \
														if (gc->sAppHints.bDumpProfileData) \
														{ \
															AddToStateMetric(gc); \
														} \
													}


#define GLES_PROFILE_ADD_REDUNTANT_STATE(X,Y,Z,W)		{\
													if(X == Y)\
														gc->RedundantStates##W[PROFILE_##Z]++; \
													}

IMG_VOID InitProfileData(GLESContext *gc);
IMG_VOID ProfileOutputTotals(GLESContext *gc);
IMG_VOID AddToStateMetric(GLESContext *gc);

#else /* defined (TIMING) || defined (DEBUG) */

#define GLES_PROFILE_INCREMENT_CALLCOUNT(X,Y)
#define GLES_PROFILE_INCREMENT_VERTEXCOUNT(X,Y,Z)
#define GLES_PROFILE_ADD_METRIC
#define GLES_PROFILE_ADD_REDUNTANT_STATE(X,Y,Z,W)

#endif /* defined (TIMING) || defined (DEBUG) */

#if defined(__cplusplus)
}
#endif

#endif /* _PROFILE_H_ */

/**************************************************************************
 End of file (profile.h)
**************************************************************************/


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -