📄 dxstats.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 + -