📄 pvrdxah.h
字号:
/*****************************************************************************
Name : PVRDXAH.H
Title : PowerVR D3D app hint definitions
C Author : John Howson
Created : 6/2/2001
Copyright : 2001 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, HomePark
Industrial Estate, King's Langley, Hertfordshire,
WD4 8LZ, U.K.
Description :
Program Type :
Version : $Revision: 1.1 $
Modifications :
$Log: pvrdxah.h $
--- Revision Logs Removed ---
--- Revision Logs Removed ---
--- Revision Logs Removed ---
*****************************************************************************/
#ifndef _PVRDXAH_H_
#define _PVRDXAH_H_
#include "pvrdxreg.h"
typedef struct _PVRDX_APP_HINT_
{
char *ptszVarName; /* Name of registry entry */
DWORD dwOrdinal; /* Ordinal for hint */
DWORD dwType; /* Type of app hint (see below) */
DWORD dwValue; /* Default value for this app hint or.. */
DWORD dwFIndex; /* Flag word index in which to set... */
DWORD dwFlag; /* Bitmask for "flags" word(s) or pszVarName for "ganged" */
DWORD dwValidHW; /* Indicates which HW versions hint is valid for. */
struct _PVRDX_APP_HINT_ *psMore; /* Pointer to "child" style hints. */
} PVRDX_APP_HINT, *PPVRDX_APP_HINT;
/*
Mask for hint base type.
*/
#define PVRDX_AHINTTYPE_BASEMASK 0x000000FF
/*
Indicates that app hint is simple on/off flag.
*/
#define PVRDX_AHINTTYPE_SIMPLEFLAG 1
/*
Indicates that app hint is a 32 bit signed/unsigned integer or float value
*/
#define PVRDX_AHINTTYPE_VAL32 2
/*
Indicates that entry has "child" flags associated with it. psMore will point to further
PVR3D_APP_HINT structures. Note, a child app hint is only inserted into registry when
parent is "opened". Note2, child entries specify default state when hint is enabled i.e
HAL will ignore them unless parent default is enabled or enabled by UI.
*/
#define PVRDX_AHINTTYPE_CHILDFLAGS 3
/*
Indicates that entry has "child" flags associated with it. Similar to _CHILDFLAGS,
differs in that child values are all stored in string specified by parent pszVarName.
Note, this is overriden by any child that also specifies a pszVarName.
*/
#define PVRDX_AHINTTYPE_GANGEDFLAGS 4
/*
Indicates that app hint results in multiple values being set in registry.
dwValue will point to list of hints to set. Note, parent pszVarName will
normally be NULL.
*/
#define PVRDX_AHINTTYPE_GROUP 5
/*
Indicates that app hint is public i.e exposed by control panel.
*/
#define PVRDX_AHINTTYPE_PUBLIC 0x00000100
/*
Indicates that exposed state can't be the logical inverse of the driver state.
*/
#define PVRDX_AHINTTYPE_NOINVERT 0x00000200
/*
Indicates that child/ganged flag member is exclusive i.e. all other member must
be disabled when this one is set. This can be applied to whole branches within
a child/ganged tree. Note, in this last case it is the resposibility of the
UI to obey exclusivity, the driver will not validate flag combinations.
*/
#define PVRDX_AHINTTYPE_EXCLUSIVE 0x00000400
/*
Tells driver to ignore entry when processing table. This is useful when tree
structure is primarily expressing the control panel layout, in this case the
driver will normally just pull the strings from elsewhere in the table.
*/
#define PVRDX_AHINTTYPE_DRVIGNORE 0x00000800
/*
Indicates end of app hint list.
*/
#define PVRDX_AHINTTYPE_END 0xFFFFFFFF
/*****************************************************************************
Flag and value word strings.
*****************************************************************************/
#ifdef PVRDXREG_DECLARE_STRINGS
char *ppszDXFlagStrings[] =
{
"Flags",
"Flags2",
"IFlags",
"MIPMapThreshold",
"ZBiasScale",
""
};
#else
extern TCHAR **pptszD3DFlagStrings;
#endif
/*
Lookup defines, these must match mapping into both the string table and
the PVR_REG_DATA struct.
*/
#define PVRDX_AHVALIDX_FLAGS 0
#define PVRDX_AHVALIDX_FLAGS2 1
#define PVRDX_AHVALIDX_IFLAGS 2
#define PVRDX_AHVALIDX_MMTHRESH 3
#define PVRDX_AHVALIDX_ZBSCALE 4
/*****************************************************************************
Ordinal values for public hints.
*****************************************************************************/
#define PVRDX_AHINTORD_ENABLETEXSS 4
#define PVRDX_AHINTORD_ENABLETLF 5
#define PVRDX_AHINTORD_ENABLESOFTPT 12
#define PVRDX_AHINTORD_USERHW 15
#define PVRDX_AHINTORD_NORENDTILLFLIP 17
#define PVRDX_AHINTORD_SSENABLE2X2 18
#define PVRDX_AHINTORD_SSENABLEX 19
#define PVRDX_AHINTORD_SSENABLEY 20
#define PVRDX_AHINTORD_SSNONE 21
#define PVRDX_AHINTORD_SSCONTROL 22
/*****************************************************************************
Child, Ganged & Grouped app hints.....
*****************************************************************************/
#ifdef PVRDXREG_DECLARE_STRINGS
/*****************************************************************************
FSAA control...
*****************************************************************************/
static PVRDX_APP_HINT psPVRD3DSSCtlVert[] =
{
{
"DisableXSS",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
1,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_XSUPERSAMPLE,
0,
0
},
{
"DisableYSS",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_YSUPERSAMPLE,
0,
0
},
{0,0,PVRDX_AHINTTYPE_END,0,0,0,0,0}
};
static PVRDX_APP_HINT psPVRD3DSSCtlHoriz[] =
{
{
"DisableXSS",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_XSUPERSAMPLE,
0,
0
},
{
"DisableYSS",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
1,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_YSUPERSAMPLE,
0,
0
},
{0,0,PVRDX_AHINTTYPE_END,0,0,0,0,0}
};
static PVRDX_APP_HINT psPVRD3DSSCtl2x2[] =
{
{
"DisableXSS",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_XSUPERSAMPLE,
0,
0
},
{
"DisableYSS",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_YSUPERSAMPLE,
0,
0
},
{0,0,PVRDX_AHINTTYPE_END,0,0,0,0,0}
};
static PVRDX_APP_HINT psPVRD3DSSCtlNone[] =
{
{
"DisableXSS",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_XSUPERSAMPLE,
0,
0
},
{
"DisableYSS",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_YSUPERSAMPLE,
0,
0
},
{0,0,PVRDX_AHINTTYPE_END,0,0,0,0,0}
};
/*
The child branch...
*/
static PVRDX_APP_HINT psPVRD3DSSControl[] =
{
{
0,
PVRDX_AHINTORD_SSENABLE2X2,
PVRDX_AHINTTYPE_GROUP | PVRDX_AHINTTYPE_EXCLUSIVE | PVRDX_AHINTTYPE_PUBLIC,
0,0,0,0,
psPVRD3DSSCtl2x2
},
{
0,
PVRDX_AHINTORD_SSENABLEX,
PVRDX_AHINTTYPE_GROUP | PVRDX_AHINTTYPE_EXCLUSIVE | PVRDX_AHINTTYPE_PUBLIC,
0,0,0,0,
psPVRD3DSSCtlHoriz
},
{
0,
PVRDX_AHINTORD_SSENABLEY,
PVRDX_AHINTTYPE_GROUP | PVRDX_AHINTTYPE_EXCLUSIVE | PVRDX_AHINTTYPE_PUBLIC,
0,0,0,0,
psPVRD3DSSCtlVert
},
{
0,
PVRDX_AHINTORD_SSNONE,
PVRDX_AHINTTYPE_GROUP | PVRDX_AHINTTYPE_EXCLUSIVE | PVRDX_AHINTTYPE_PUBLIC,
0,0,0,0,
psPVRD3DSSCtlNone
},
{0,0,PVRDX_AHINTTYPE_END,0,0,0,0,0}
};
/*****************************************************************************
...And the rest...
*****************************************************************************/
/*
Half pixel offset "group"
*/
static PVRDX_APP_HINT psPVRD3DHalfOffsetControl[] =
{
{
"TAHalfOffset",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_ENABLE_TAHALFOFFSET,
0,
0
},
{
"ISPHalfOffset",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_ENABLE_ISPHALFOFFSET,
0,
0
},
{0,0,PVRDX_AHINTTYPE_END,0,0,0,0,0}
};
#endif
/*****************************************************************************
The app hints themselves.....
*****************************************************************************/
#ifdef PVRDXREG_DECLARE_STRINGS
PVRDX_APP_HINT psPVRDXAppHints[] =
{
/*
Most of these relate to "Flags", excluding ZLSMode...
*/
{
0,
PVRDX_AHINTORD_SSCONTROL,
PVRDX_AHINTTYPE_CHILDFLAGS | PVRDX_AHINTTYPE_PUBLIC | PVRDX_AHINTTYPE_DRVIGNORE,
0,
0,
0,
0,
psPVRD3DSSControl
},
/*
Need to place the strings modified by above here so that the driver can
sort out defaults and know what to read.
*/
{
"DisableXSS",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_XSUPERSAMPLE,
0,
0
},
{
"DisableYSS",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_YSUPERSAMPLE,
0,
0
},
/*
Public hints (for "Flags") grouped together below - the order here is the order in which they appear on the control panel.
(Note also ZLSMode above, which appears first in the control panel list)
*/
{
"NoRendersTillFlip",
PVRDX_AHINTORD_NORENDTILLFLIP,
PVRDX_AHINTTYPE_SIMPLEFLAG | PVRDX_AHINTTYPE_PUBLIC,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_NORENDERS_TILLFLIP,
0,0
},
{
"EnableTextureSS",
PVRDX_AHINTORD_ENABLETEXSS,
PVRDX_AHINTTYPE_SIMPLEFLAG | PVRDX_AHINTTYPE_PUBLIC,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_TEXTURE_SUPER_SAMPLE,
0,
0
},
{
"EnableTextureTLF",
PVRDX_AHINTORD_ENABLETLF,
PVRDX_AHINTTYPE_SIMPLEFLAG | PVRDX_AHINTTYPE_PUBLIC,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_TEXTURE_TRILIN_FILTER,
0,
0
},
{
"UseRHW",
PVRDX_AHINTORD_USERHW,
PVRDX_AHINTTYPE_SIMPLEFLAG | PVRDX_AHINTTYPE_PUBLIC,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_RHW_RENDERING,
0,0
},
{
"EnableSoftPT",
PVRDX_AHINTORD_ENABLESOFTPT,
PVRDX_AHINTTYPE_SIMPLEFLAG | PVRDX_AHINTTYPE_PUBLIC,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_SOFTEN_PUNCH_THROUGH,
0,0
},
/*
Non-public "Flags" hints below.
*/
{
"EnableAutoMipMap",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_AUTO_MIP_MAP,
0,0
},
{
"TASnapping",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
1,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_ENABLE_TASNAPPING,
0,0
},
{
"TACullSmall",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
1,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_ENABLE_TASMALLCULL,
0,0
},
{
0,
0,
PVRDX_AHINTTYPE_GROUP,
0,
0,0,0,
psPVRD3DHalfOffsetControl
},
{
"EnableYUV",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_ENABLE_YUV,
0,0
},
{
"DisableAlphaTest",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_ALTEST,
0,0
},
{
"DisableAlphaTestOpaque",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
PVRHALREG_DISABLE_ALTEST_OPAQUE,
0,0
},
{
"DisableTexQueForAGP",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS,
0,
0,0
},
/*
The following relate to Flags2.
*/
{
"DisableRenderOnLock",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS2,
PVRHALREG2_DISABLE_RENDER_ON_LOCK,
0,0
},
{
"DisableStencil",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS2,
PVRHALREG2_DISABLE_STENCIL,
0,0
},
{
"DisableMipMapping",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS2,
PVRHALREG2_DISABLE_MIPMAP,
0,0
},
{
"OnlyUseLastFogColour",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS2,
PVRHALREG2_ONLYUSELASTFOGCOLOUR,
0,0
},
{
"DisableMidSceneRender",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS2,
PVRHALREG2_DISABLE_MIDSCENE_RENDER,
0,0
},
{
"ZeroTextureMemory",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS2,
PVRHALREG2_ZERO_TEXTURE_MEMORY,
0,0
},
{
"DuplicateAppName",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS2,
PVRHALREG2_DUPLICATE_APPNAME,
0,0
},
{
"Disable24Bit3DDevice",
0,
PVRDX_AHINTTYPE_SIMPLEFLAG,
0,
PVRDX_AHVALIDX_FLAGS2,
PVRHALREG2_DISABLE_24BPP_3DDEVICE,
0,0
},
/*
Some value strings not covered above...
*/
{
"MIPMapThreshold",
0,
PVRDX_AHINTTYPE_VAL32,
1,
PVRDX_AHVALIDX_MMTHRESH,
0,
0,0
},
{
"ZBiasScale",
0,
PVRDX_AHINTTYPE_VAL32,
1,
PVRDX_AHVALIDX_ZBSCALE,
0,
0,0
},
{0,0,PVRDX_AHINTTYPE_END,0,0,0,0,0}
};
#else
extern PVRDX_APP_HINT psPVRDXAppHints[];
#endif
#endif /* #ifndef _PVRDXAH_H_ */
/*****************************************************************************
End of file (PVRDXAH.H)
*****************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -