⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d3dnthal.h

📁 本源码是vc环境下的usb程序
💻 H
📖 第 1 页 / 共 5 页
字号:
{
    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 + -