📄 d3dnthal.h
字号:
ULONG_PTR dwHandle; // out: Handle to texture
HRESULT ddrval; // out: Return value
} D3DNTHAL_TEXTURECREATEDATA;
typedef D3DNTHAL_TEXTURECREATEDATA *LPD3DNTHAL_TEXTURECREATEDATA;
typedef struct _D3DNTHAL_TEXTUREDESTROYDATA {
ULONG_PTR dwhContext; // in: Context handle
ULONG_PTR dwHandle; // in: Handle to texture
HRESULT ddrval; // out: Return value
} D3DNTHAL_TEXTUREDESTROYDATA;
typedef D3DNTHAL_TEXTUREDESTROYDATA *LPD3DNTHAL_TEXTUREDESTROYDATA;
typedef struct _D3DNTHAL_TEXTURESWAPDATA {
ULONG_PTR dwhContext; // in: Context handle
ULONG_PTR dwHandle1; // in: Handle to texture 1
ULONG_PTR dwHandle2; // in: Handle to texture 2
HRESULT ddrval; // out: Return value
} D3DNTHAL_TEXTURESWAPDATA;
typedef D3DNTHAL_TEXTURESWAPDATA *LPD3DNTHAL_TEXTURESWAPDATA;
typedef struct _D3DNTHAL_TEXTUREGETSURFDATA {
ULONG_PTR dwhContext; // in: Context handle
HANDLE hDDS; // out: Handle to surface object
ULONG_PTR dwHandle; // in: Handle to texture
HRESULT ddrval; // out: Return value
} D3DNTHAL_TEXTUREGETSURFDATA;
typedef D3DNTHAL_TEXTUREGETSURFDATA *LPD3DNTHAL_TEXTUREGETSURFDATA;
/* --------------------------------------------------------------
* Flags for the data parameters.
*/
/*
* SceneCapture()
* This is used as an indication to the driver that a scene is about to
* start or end, and that it should capture data if required.
*/
#define D3DNTHAL_SCENE_CAPTURE_START 0x00000000L
#define D3DNTHAL_SCENE_CAPTURE_END 0x00000001L
/* --------------------------------------------------------------
* Return values from HAL functions.
*/
/*
* The context passed in was bad.
*/
#define D3DNTHAL_CONTEXT_BAD 0x000000200L
/*
* No more contexts left.
*/
#define D3DNTHAL_OUTOFCONTEXTS 0x000000201L
/* --------------------------------------------------------------
* Direct3D HAL Table.
* Instantiated by the HAL driver on connection.
*
* Calls take the form of:
* retcode = HalCall(HalCallData* lpData);
*/
typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTCREATECB) (LPD3DNTHAL_CONTEXTCREATEDATA);
typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYCB) (LPD3DNTHAL_CONTEXTDESTROYDATA);
typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYALLCB) (LPD3DNTHAL_CONTEXTDESTROYALLDATA);
typedef DWORD (APIENTRY *LPD3DNTHAL_SCENECAPTURECB) (LPD3DNTHAL_SCENECAPTUREDATA);
typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURECREATECB) (LPD3DNTHAL_TEXTURECREATEDATA);
typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREDESTROYCB) (LPD3DNTHAL_TEXTUREDESTROYDATA);
typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURESWAPCB) (LPD3DNTHAL_TEXTURESWAPDATA);
typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREGETSURFCB) (LPD3DNTHAL_TEXTUREGETSURFDATA);
typedef struct _D3DNTHAL_CALLBACKS {
DWORD dwSize;
// Device context
LPD3DNTHAL_CONTEXTCREATECB ContextCreate;
LPD3DNTHAL_CONTEXTDESTROYCB ContextDestroy;
LPD3DNTHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
// Scene Capture
LPD3DNTHAL_SCENECAPTURECB SceneCapture;
// Execution
LPVOID dwReserved10; // Must be zero (was Execute)
LPVOID dwReserved11; // Must be zero (was ExecuteClipped)
LPVOID dwReserved22; // Must be zero (was RenderState)
LPVOID dwReserved23; // Must be zero (was RenderPrimitive)
ULONG_PTR dwReserved; // Must be zero
// Textures
LPD3DNTHAL_TEXTURECREATECB TextureCreate;
LPD3DNTHAL_TEXTUREDESTROYCB TextureDestroy;
LPD3DNTHAL_TEXTURESWAPCB TextureSwap;
LPD3DNTHAL_TEXTUREGETSURFCB TextureGetSurf;
LPVOID dwReserved12; // Must be zero
LPVOID dwReserved13; // Must be zero
LPVOID dwReserved14; // Must be zero
LPVOID dwReserved15; // Must be zero
LPVOID dwReserved16; // Must be zero
LPVOID dwReserved17; // Must be zero
LPVOID dwReserved18; // Must be zero
LPVOID dwReserved19; // Must be zero
LPVOID dwReserved20; // Must be zero
LPVOID dwReserved21; // Must be zero
// Pipeline state
LPVOID dwReserved24; // Was GetState;
ULONG_PTR dwReserved0; // Must be zero
ULONG_PTR dwReserved1; // Must be zero
ULONG_PTR dwReserved2; // Must be zero
ULONG_PTR dwReserved3; // Must be zero
ULONG_PTR dwReserved4; // Must be zero
ULONG_PTR dwReserved5; // Must be zero
ULONG_PTR dwReserved6; // Must be zero
ULONG_PTR dwReserved7; // Must be zero
ULONG_PTR dwReserved8; // Must be zero
ULONG_PTR dwReserved9; // Must be zero
} D3DNTHAL_CALLBACKS;
typedef D3DNTHAL_CALLBACKS *LPD3DNTHAL_CALLBACKS;
#define D3DNTHAL_SIZE_V1 sizeof( D3DNTHAL_CALLBACKS )
typedef struct _D3DNTHAL_SETRENDERTARGETDATA {
ULONG_PTR dwhContext; // in: Context handle
PDD_SURFACE_LOCAL lpDDS; // in: new render target
PDD_SURFACE_LOCAL lpDDSZ; // in: new Z buffer
HRESULT ddrval; // out: Return value
} D3DNTHAL_SETRENDERTARGETDATA;
typedef D3DNTHAL_SETRENDERTARGETDATA *LPD3DNTHAL_SETRENDERTARGETDATA;
typedef DWORD (APIENTRY *LPD3DNTHAL_SETRENDERTARGETCB) (LPD3DNTHAL_SETRENDERTARGETDATA);
typedef struct _D3DNTHAL_CALLBACKS2
{
DWORD dwSize; // size of struct
DWORD dwFlags; // flags for callbacks
LPD3DNTHAL_SETRENDERTARGETCB SetRenderTarget;
LPVOID dwReserved1; // was Clear
LPVOID dwReserved2; // was DrawOnePrimitive
LPVOID dwReserved3; // was DrawOneIndexedPrimitive
LPVOID dwReserved4; // was DrawPrimitives
} D3DNTHAL_CALLBACKS2;
typedef D3DNTHAL_CALLBACKS2 *LPD3DNTHAL_CALLBACKS2;
#define D3DNTHAL2_CB32_SETRENDERTARGET 0x00000001L
typedef struct _D3DNTHAL_CLEAR2DATA
{
ULONG_PTR dwhContext; // in: Context handle
// dwFlags can contain D3DCLEAR_TARGET or D3DCLEAR_ZBUFFER
DWORD dwFlags; // in: surfaces to clear
DWORD dwFillColor; // in: Color value for rtarget
D3DVALUE dvFillDepth; // in: Depth value for
// Z-buffer (0.0-1.0)
DWORD dwFillStencil; // in: value used to clear stencil buffer
LPD3DRECT lpRects; // in: Rectangles to clear
DWORD dwNumRects; // in: Number of rectangles
HRESULT ddrval; // out: Return value
} D3DNTHAL_CLEAR2DATA;
typedef D3DNTHAL_CLEAR2DATA FAR *LPD3DNTHAL_CLEAR2DATA;
typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
{
ULONG_PTR dwhContext; // in: Context handle
DWORD dwFlags; // in: Flags, currently set to 0
ULONG_PTR dwReserved; //
DWORD dwNumPasses;// out: Number of passes the hardware
// can perform the operation in
HRESULT ddrval; // out: return value
} D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA;
typedef D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA FAR *LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA;
//-----------------------------------------------------------------------------
// DrawPrimitives2 DDI
//-----------------------------------------------------------------------------
//
// Command structure for vertex buffer rendering
//
typedef struct _D3DNTHAL_DP2COMMAND
{
BYTE bCommand; // vertex command
BYTE bReserved;
union
{
WORD wPrimitiveCount; // primitive count for unconnected primitives
WORD wStateCount; // count of render states to follow
};
} D3DNTHAL_DP2COMMAND, *LPDNT3DHAL_DP2COMMAND;
//
// DrawPrimitives2 commands:
//
typedef enum _D3DNTHAL_DP2OPERATION
{
D3DNTDP2OP_POINTS = 1,
D3DNTDP2OP_INDEXEDLINELIST = 2,
D3DNTDP2OP_INDEXEDTRIANGLELIST = 3,
D3DNTDP2OP_RESERVED0 = 4,
D3DNTDP2OP_RENDERSTATE = 8,
D3DNTDP2OP_LINELIST = 15,
D3DNTDP2OP_LINESTRIP = 16,
D3DNTDP2OP_INDEXEDLINESTRIP = 17,
D3DNTDP2OP_TRIANGLELIST = 18,
D3DNTDP2OP_TRIANGLESTRIP = 19,
D3DNTDP2OP_INDEXEDTRIANGLESTRIP = 20,
D3DNTDP2OP_TRIANGLEFAN = 21,
D3DNTDP2OP_INDEXEDTRIANGLEFAN = 22,
D3DNTDP2OP_TRIANGLEFAN_IMM = 23,
D3DNTDP2OP_LINELIST_IMM = 24,
D3DNTDP2OP_TEXTURESTAGESTATE = 25,
D3DNTDP2OP_INDEXEDTRIANGLELIST2 = 26,
D3DNTDP2OP_INDEXEDLINELIST2 = 27,
D3DNTDP2OP_VIEWPORTINFO = 28,
D3DNTDP2OP_WINFO = 29,
D3DNTDP2OP_SETPALETTE = 30,
D3DNTDP2OP_UPDATEPALETTE = 31,
#if(DIRECT3D_VERSION >= 0x0700)
//new for DX7
D3DNTDP2OP_ZRANGE = 32,
D3DNTDP2OP_SETMATERIAL = 33,
D3DNTDP2OP_SETLIGHT = 34,
D3DNTDP2OP_CREATELIGHT = 35,
D3DNTDP2OP_SETTRANSFORM = 36,
D3DNTDP2OP_EXT = 37,
D3DNTDP2OP_TEXBLT = 38,
D3DNTDP2OP_STATESET = 39,
D3DNTDP2OP_SETPRIORITY = 40,
#endif /* DIRECT3D_VERSION >= 0x0700 */
D3DNTDP2OP_SETRENDERTARGET = 41,
D3DNTDP2OP_CLEAR = 42,
#if(DIRECT3D_VERSION >= 0x0700)
D3DNTDP2OP_SETTEXLOD = 43,
D3DNTDP2OP_SETCLIPPLANE = 44,
#endif /* DIRECT3D_VERSION >= 0x0700 */
} D3DNTHAL_DP2OPERATION;
//
// DrawPrimitives2 point primitives
//
typedef struct _D3DNTHAL_DP2POINTS
{
WORD wCount;
WORD wVStart;
} D3DNTHAL_DP2POINTS;
//
// DrawPrimitives2 line primitives
//
typedef struct _D3DNTHAL_DP2STARTVERTEX {
WORD wVStart;
} D3DNTHAL_DP2STARTVERTEX, *LPD3DNTHAL_DP2STARTVERTEX;
typedef struct _D3DNTHAL_DP2LINELIST
{
WORD wVStart;
} D3DNTHAL_DP2LINELIST;
typedef struct _D3DNTHAL_DP2INDEXEDLINELIST
{
WORD wV1;
WORD wV2;
} D3DNTHAL_DP2INDEXEDLINELIST;
typedef struct _D3DNTHAL_DP2LINESTRIP
{
WORD wVStart;
} D3DNTHAL_DP2LINESTRIP;
typedef struct _D3DNTHAL_DP2INDEXEDLINESTRIP
{
WORD wV[2];
} D3DNTHAL_DP2INDEXEDLINESTRIP;
//
// DrawPrimitives2 triangle primitives
//
typedef struct _D3DNTHAL_DP2TRIANGLELIST
{
WORD wVStart;
} D3DNTHAL_DP2TRIANGLELIST;
typedef struct _D3DNTHAL_DP2INDEXEDTRIANGLELIST
{
WORD wV1;
WORD wV2;
WORD wV3;
WORD wFlags;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -