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

📄 dxstats.h

📁 Lido PXA270平台开发板的最新BSP,包括源代码
💻 H
字号:
/******************************************************************************
* Name         : dxstats.h
* Title        : MBX stats gathering utilities.
* Author(s)    : Imagination Technologies
* Created      : 1st August 2003
*
* Copyright    : 2003 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.
*
* Description  : DirectDraw and D3D Common functions and utilities.
*
* Platform     : Generic
*
* Notes        : formerly stats.h mks rev 1.5
*
* Modifications:-
* $Log: dxstats.h $
*
*
******************************************************************************/

#if !defined(_DXSTATS_H_)
#define _DXSTATS_H_

#include "pvrdd.h"

/*****************************************************************************
 Timing table entry indice defines...
*****************************************************************************/
#define TIME_ENTRY_RENDER		0
#define TIME_ENTRY_TA			1
#define TIME_ENTRY_SCENE		2
#define TIME_ENTRY_TEXTURE		3
#define TIME_ENTRY_BLIT			4
#define TIME_ENTRY_FLIP			5
#define TIME_ENTRY_LOCK			6
#define TIME_ENTRY_FRAMERATE	7

#define PSTATS_ENTRY_PTRSPACE	0
#define PSTATS_ENTRY_OBJSPACE	1

/*****************************************************************************
 Structures
*****************************************************************************/
typedef struct _TIME_STATS_ENTRY_
{
	LARGE_INTEGER Start;
	LARGE_INTEGER Sum;
	LARGE_INTEGER Total;
	PSTR	pszName;	
} TIME_STATS_ENTRY, *PTIME_STATS_ENTRY;

typedef struct _PARAM_STATS_ENTRY_
{
	DWORD	dwValue;
	DWORD	dwMax;
	DWORD	dwNumGreaterAve;
	LARGE_INTEGER Total;
	PSTR	pszName;	
} PARAM_STATS_ENTRY, *PPARAM_STATS_ENTRY;

/*****************************************************************************
 Globals
*****************************************************************************/
extern TIME_STATS_ENTRY sTimeStats[];
extern PARAM_STATS_ENTRY sParamStats[];

/*****************************************************************************
 Prototypes
*****************************************************************************/
void PVRDrawText3D(PD3D_CONTEXT	psContext,
				   DWORD		xtextpos,
				   DWORD		ytextpos,
				   DWORD		color,
				   PSTR			szFormat, ...);

void LoadTextTexture(PD3D_CONTEXT psContext);
void CalibrateCPUCycleCounter(void);
void DisplayStats(PD3D_CONTEXT psContext);
void InitTimeStats(void);

/*****************************************************************************
 Timing inline functions
*****************************************************************************/

__inline void TimerStart(DWORD dwEntry)
{
	QueryPerformanceCounter (&sTimeStats[dwEntry].Start);
	ASSERT(sTimeStats[dwEntry].Start.HighPart == 0);
}

__inline void TimerStop(DWORD dwEntry)
{
	LARGE_INTEGER TmpVal;

	QueryPerformanceCounter (&TmpVal);

	ASSERT(TmpVal.HighPart == 0);

	if(sTimeStats[dwEntry].Start.LowPart > TmpVal.LowPart)
	{
		sTimeStats[dwEntry].Sum.LowPart += TmpVal.LowPart - 1L - sTimeStats[dwEntry].Start.LowPart;
	}
	else
	{
		sTimeStats[dwEntry].Sum.QuadPart += TmpVal.QuadPart - sTimeStats[dwEntry].Start.QuadPart;
	}
}

#ifdef HAL_STATS
#define TIMERSTART		TimerStart
#define TIMERSTOP		TimerStop
#define DISPLAYSTATS	DisplayStats
#define INITTIMESTATS 	InitTimeStats
#define LOADTEXTTEXTURE	LoadTextTexture
#else
#define TIMERSTART		/ ## /
#define TIMERSTOP		/ ## /
#define DISPLAYSTATS	/ ## /
#define INITTIMESTATS	/ ## /
#define LOADTEXTTEXTURE	/ ## /
#endif

#endif /* #if !defined(_DXSTATS_H_) */

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

⌨️ 快捷键说明

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