📄 profile.c
字号:
/******************************************************************************
<module>
* Name : profile.c
* Title : profile functions
* Author(s) : Imagination Technologies
* Created : 2 March 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.
*
* Description : profile functions
*
* Platform : Windows CE
*
</module>
$Log: profile.c $
********************************************************************************/
#include "context.h"
/*
Prim type jump tables.
Defined outside ENABLE_D3DM_PROFILING as its
used by a hardware workaround
*/
IMG_UINT32 sPrimLookup[] =
{ /* PRIM_FILLMODE_POINT * PRIM_FILLMODE_WIREFRAME * PRIM_FILLMODE_SOLID */
/* DUMMY */0, 0, 0,
/* D3DMPT_POINTLIST */POINTLIST ,POINTLIST ,POINTLIST,
/* D3DMPT_LINELIST */LINELIST ,LINELIST ,LINELIST,
/* D3DMPT_LINESTRIP */LINESTRIP ,LINESTRIP ,LINESTRIP,
/* D3DMPT_TRIANGLELIST */POINTLIST ,TRILISTLINE ,TRIANGLELIST,
/* D3DMPT_TRIANGLESTRIP */POINTLIST ,TRISTRIPLINE ,TRIANGLESTRIP,
/* D3DMPT_TRIANGLEFAN */POINTLIST ,TRIFANLINE ,TRIANGLEFAN
};
IMG_UINT32 sIndexedPrimLookup[] =
{ /* PRIM_FILLMODE_POINT * PRIM_FILLMODE_WIREFRAME * PRIM_FILLMODE_SOLID */
/* DUMMY */0 ,0 ,0,
/* D3DMPT_POINTLIST */INDEXEDPOINTLIST ,INDEXEDPOINTLIST ,INDEXEDPOINTLIST,
/* D3DMPT_LINELIST */INDEXEDPOINTLIST ,INDEXEDLINELIST ,INDEXEDLINELIST,
/* D3DMPT_LINESTRIP */INDEXEDPOINTLIST ,INDEXEDLINESTRIP ,INDEXEDLINESTRIP,
/* D3DMPT_TRIANGLELIST */INDEXEDPOINTLIST ,INDEXEDTRILISTLINE ,INDEXEDTRIANGLELIST,
/* D3DMPT_TRIANGLESTRIP */INDEXEDPOINTLIST ,INDEXEDTRISTRIPLINE ,INDEXEDTRIANGLESTRIP,
/* D3DMPT_TRIANGLEFAN */INDEXEDPOINTLIST ,INDEXEDTRIFANLINE ,INDEXEDTRIANGLEFAN
};
#if defined ENABLE_D3DM_PROFILING
/* Main driver profile */
D3DM_PROFILE sDriverProfile;
static DP_OP_NAME DPOpNames[] =
{
{ D3DMOP_BEGINSCENE, "D3DMOP_BEGINSCENE"},
{ D3DMOP_ENDSCENE, "D3DMOP_ENDSCENE"},
{ D3DMOP_PRESENT, "D3DMOP_PRESENT"},
{ D3DMOP_COPYRECT, "D3DMOP_COPYRECT"},
{ D3DMOP_CLEAR, "D3DMOP_CLEAR"},
{ D3DMOP_RENDERTARGET, "D3DMOP_RENDERTARGET"},
{ D3DMOP_RENDERSTATE, "D3DMOP_RENDERSTATE"},
{ D3DMOP_TRANSFORM, "D3DMOP_TRANSFORM"},
{ D3DMOP_VIEWPORT, "D3DMOP_VIEWPORT"},
{ D3DMOP_MATERIAL, "D3DMOP_MATERIAL"},
{ D3DMOP_CREATELIGHT, "D3DMOP_CREATELIGHT"},
{ D3DMOP_SETLIGHT, "D3DMOP_SETLIGHT"},
{ D3DMOP_TEXTURESTAGESTATE, "D3DMOP_TEXTURESTAGESTATE"},
{ D3DMOP_CREATEPALETTE, "D3DMOP_CREATEPALETTE"},
{ D3DMOP_SETPALETTE, "D3DMOP_SETPALETTE"},
{ D3DMOP_PROCESSVERTICES, "D3DMOP_PROCESSVERTICES"},
{ D3DMOP_DRAWPRIMITIVE, "D3DMOP_DRAWPRIMITIVE"},
{ D3DMOP_DRAWINDEXEDPRIMITIVE, "D3DMOP_DRAWINDEXEDPRIMITIVE"},
{ D3DMOP_VERTEXBUFFER, "D3DMOP_VERTEXBUFFER"},
{ D3DMOP_INDEXBUFFER, "D3DMOP_INDEXBUFFER"},
{ D3DMOP_COLORFILL, "D3DMOP_COLORFILL"},
{ D3DMOP_STRETCHRECT, "D3DMOP_STRETCHRECT"}
};
static char *FunctionNames[] =
{
"ValidateVertex",
"CalcRGBColour",
"DoClipTestAndVPTransform",
"Hardware3DBlit",
"Hardware2DBlit",
"SoftwareBlit",
"TwiddleCopy",
"PVRD3DM_GetAdapterInfo",
"PVRD3DM_ValidateDevice",
"SetUpNativeVertex",
"ClipToPlane",
"FastClipToPlane",
"DoLineClip",
"DoPolygonClip",
"OutputVertices",
"WriteBackVertices",
"ProcessVertices",
"D3DMAcquireTAResources",
"D3DMReleaseTAResources",
"D3DMConnectRenderTarget",
"D3DMDisconnectRenderTarget",
"D3DMAllocDeviceMem",
"D3DMFreeDeviceMem",
"D3DMFlushOpsOnSurface",
"D3DMFlushAllQueues",
"D3DMQueueRender",
"TaStart",
"TAStop",
"DoBeginScene",
"DoMidScene",
"DoEndScene",
"FlushGeometryOnSurface",
"TACSWriteTermDWORD",
"TACSWriteData",
"D3DMAcquireFifoSpace"
};
static char *RenderStateNames[] =
{
"D3DMRS_FILLMODE",
"D3DMRS_SHADEMODE",
"D3DMRS_ZWRITEENABLE",
"D3DMRS_ALPHATESTENABLE",
"D3DMRS_LASTPIXEL",
"D3DMRS_SRCBLEND",
"D3DMRS_DESTBLEND",
"D3DMRS_CULLMODE",
"D3DMRS_ZFUNC",
"D3DMRS_ALPHAREF",
"D3DMRS_ALPHAFUNC",
"D3DMRS_DITHERENABLE",
"D3DMRS_ALPHABLENDENABLE",
"D3DMRS_FOGENABLE",
"D3DMRS_SPECULARENABLE",
"D3DMRS_FOGCOLOR",
"D3DMRS_FOGTABLEMODE",
"D3DMRS_FOGSTART",
"D3DMRS_FOGEND",
"D3DMRS_FOGDENSITY",
"D3DMRS_DEPTHBIAS",
"D3DMRS_RANGEFOGENABLE",
"D3DMRS_STENCILENABLE",
"D3DMRS_STENCILFAIL",
"D3DMRS_STENCILZFAIL",
"D3DMRS_STENCILPASS",
"D3DMRS_STENCILFUNC",
"D3DMRS_STENCILREF",
"D3DMRS_STENCILMASK",
"D3DMRS_STENCILWRITEMASK",
"D3DMRS_TEXTUREFACTOR",
"D3DMRS_TEXTUREPERSPECTIVE",
"D3DMRS_WRAP0",
"D3DMRS_WRAP1",
"D3DMRS_WRAP2",
"D3DMRS_WRAP3",
"D3DMRS_CLIPPING",
"D3DMRS_LIGHTING",
"D3DMRS_AMBIENT",
"D3DMRS_FOGVERTEXMODE",
"D3DMRS_COLORVERTEX",
"D3DMRS_LOCALVIEWER",
"D3DMRS_NORMALIZENORMALS",
"D3DMRS_DIFFUSEMATERIALSOURCE",
"D3DMRS_SPECULARMATERIALSOURCE",
"D3DMRS_AMBIENTMATERIALSOURCE",
"D3DMRS_COLORWRITEENABLE",
"D3DMRS_BLENDOP",
"D3DMRS_ZENABLE",
"D3DMRS_SLOPESCALEDEPTHBIAS"
};
static char *PrimitiveFuncNames[] =
{
"TriangleList",
"LineList",
"LineStrip",
"TriangleStrip",
"TriangleFan",
"PointList",
"TriListLine",
"TriStripLine",
"TriFanLine",
"IndexedTriangleList",
"IndexedTriangleStrip",
"IndexedTriangleFan",
"IndexedPointList",
"IndexedLineList",
"IndexedLineStrip",
"IndexedTriListLine",
"IndexedTriStripLine",
"IndexedTriFanLine"
};
static char *TextureStageStateNames[] =
{
"D3DMTSS_COLOROP",
"D3DMTSS_COLORARG1",
"D3DMTSS_COLORARG2",
"D3DMTSS_ALPHAOP",
"D3DMTSS_ALPHAARG1",
"D3DMTSS_ALPHAARG2",
"D3DMTSS_TEXCOORDINDEX",
"D3DMTSS_ADDRESSU",
"D3DMTSS_ADDRESSV",
"D3DMTSS_BORDERCOLOR",
"D3DMTSS_MAGFILTER",
"D3DMTSS_MINFILTER",
"D3DMTSS_MIPFILTER",
"D3DMTSS_MIPMAPLODBIAS",
"D3DMTSS_MAXMIPLEVEL",
"D3DMTSS_MAXANISOTROPY",
"D3DMTSS_TEXTURETRANSFORMFLAGS",
"D3DMTSS_ADDRESSW",
"D3DMTSS_COLORARG0",
"D3DMTSS_ALPHAARG0",
"D3DMTSS_RESULTARG",
"D3DMTSS_MAXTEXTURESTATES",
"D3DMTSS_FORCE_ULONG"
};
/* Output file */
static FILE *pFile;
/* String conversion */
__inline IMG_VOID AsTString(char *pszString, LPTSTR pszNameBuffer)
{
ZeroMemory(pszNameBuffer, MAX_PATH);
mbstowcs(pszNameBuffer, pszString, MAX_PATH);
}
#define SPACES_FOR_NAME 40
__inline IMG_VOID OUTPUT_DEBUG_STRING(LPTSTR pszBuffer)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -