📄 d3dnthal.h
字号:
{
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_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_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 */
#if(DIRECT3D_VERSION >= 0x0800)
D3DNTDP2OP_CREATEVERTEXSHADER = 45,
D3DNTDP2OP_DELETEVERTEXSHADER = 46,
D3DNTDP2OP_SETVERTEXSHADER = 47,
D3DNTDP2OP_SETVERTEXSHADERCONST = 48,
D3DNTDP2OP_SETSTREAMSOURCE = 49,
D3DNTDP2OP_SETSTREAMSOURCEUM = 50,
D3DNTDP2OP_SETINDICES = 51,
D3DNTDP2OP_DRAWPRIMITIVE = 52,
D3DNTDP2OP_DRAWINDEXEDPRIMITIVE = 53,
D3DNTDP2OP_CREATEPIXELSHADER = 54,
D3DNTDP2OP_DELETEPIXELSHADER = 55,
D3DNTDP2OP_SETPIXELSHADER = 56,
D3DNTDP2OP_SETPIXELSHADERCONST = 57,
D3DNTDP2OP_CLIPPEDTRIANGLEFAN = 58,
D3DNTDP2OP_DRAWPRIMITIVE2 = 59,
D3DNTDP2OP_DRAWINDEXEDPRIMITIVE2 = 60,
D3DNTDP2OP_DRAWRECTPATCH = 61,
D3DNTDP2OP_DRAWTRIPATCH = 62,
D3DNTDP2OP_VOLUMEBLT = 63,
D3DNTDP2OP_BUFFERBLT = 64,
D3DNTDP2OP_MULTIPLYTRANSFORM = 65,
D3DNTDP2OP_ADDDIRTYRECT = 66,
D3DNTDP2OP_ADDDIRTYBOX = 67,
#endif /* DIRECT3D_VERSION >= 0x0800 */
#if(DIRECT3D_VERSION >= 0x0900)
D3DNTDP2OP_CREATEVERTEXSHADERDECL = 71,
D3DNTDP2OP_DELETEVERTEXSHADERDECL = 72,
D3DNTDP2OP_SETVERTEXSHADERDECL = 73,
D3DNTDP2OP_CREATEVERTEXSHADERFUNC = 74,
D3DNTDP2OP_DELETEVERTEXSHADERFUNC = 75,
D3DNTDP2OP_SETVERTEXSHADERFUNC = 76,
D3DNTDP2OP_SETVERTEXSHADERCONSTI = 77,
D3DNTDP2OP_SETSCISSORRECT = 79,
D3DNTDP2OP_SETSTREAMSOURCE2 = 80,
D3DNTDP2OP_BLT = 81,
D3DNTDP2OP_COLORFILL = 82,
D3DNTDP2OP_SETVERTEXSHADERCONSTB = 83,
D3DNTDP2OP_CREATEQUERY = 84,
D3DNTDP2OP_SETRENDERTARGET2 = 85,
D3DNTDP2OP_SETDEPTHSTENCIL = 86,
D3DNTDP2OP_RESPONSECONTINUE = 87, // Can come only from driver
D3DNTDP2OP_RESPONSEQUERY = 88, // Can come only from driver
D3DNTDP2OP_GENERATEMIPSUBLEVELS = 89,
D3DNTDP2OP_DELETEQUERY = 90,
D3DNTDP2OP_ISSUEQUERY = 91,
D3DNTDP2OP_SETPIXELSHADERCONSTI = 93,
D3DNTDP2OP_SETPIXELSHADERCONSTB = 94,
D3DNTDP2OP_SETSTREAMSOURCEFREQ = 95,
D3DNTDP2OP_SURFACEBLT = 96,
#endif /* DIRECT3D_VERSION >= 0x0900 */
} 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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -