D3DHAL_CALLBACKS 结构 (d3dhal.h)
D3DHAL_CALLBACKS是描述驱动程序提供的 Direct3D 支持的多个回调结构之一。
语法
typedef struct _D3DHAL_CALLBACKS {
DWORD dwSize;
LPD3DHAL_CONTEXTCREATECB ContextCreate;
LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
LPD3DHAL_SCENECAPTURECB SceneCapture;
LPVOID lpReserved10;
LPVOID lpReserved11;
LPD3DHAL_RENDERSTATECB RenderState;
LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
DWORD dwReserved;
LPD3DHAL_TEXTURECREATECB TextureCreate;
LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
LPD3DHAL_TEXTURESWAPCB TextureSwap;
LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
LPVOID lpReserved12;
LPVOID lpReserved13;
LPVOID lpReserved14;
LPVOID lpReserved15;
LPVOID lpReserved16;
LPVOID lpReserved17;
LPVOID lpReserved18;
LPVOID lpReserved19;
LPVOID lpReserved20;
LPVOID lpReserved21;
LPD3DHAL_GETSTATECB GetState;
DWORD dwReserved0;
DWORD dwReserved1;
DWORD dwReserved2;
DWORD dwReserved3;
DWORD dwReserved4;
DWORD dwReserved5;
DWORD dwReserved6;
DWORD dwReserved7;
DWORD dwReserved8;
DWORD dwReserved9;
} D3DHAL_CALLBACKS, *LPD3DHAL_CALLBACKS;
成员
dwSize
指定此D3DHAL_CALLBACKS结构的大小(以字节为单位)。
ContextCreate
指向驱动程序提供的 D3dContextCreate 回调 。 驱动程序必须实现此成员指向的回调。
ContextDestroy
指向驱动程序提供的 D3dContextDestroy 回调。 驱动程序必须实现此成员指向的回调。
ContextDestroyAll
在 Windows 2000 及更高版本的驱动程序中,必须设置为 NULL 。
SceneCapture
在 Windows 2000 及更高版本的驱动程序中,必须设置为 NULL 。 对于 DirectX 6.0,这是指向驱动程序提供的 D3dSceneCapture 回调的指针。 对于 DirectX 7.0 及更高版本,此回调已被 处理 D3dDrawPrimitives2 函数中的D3DRENDERSTATE_SCENECAPTURE呈现状态所取代。
lpReserved10
必须为零。
lpReserved11
必须为零。
RenderState
指向驱动程序提供的D3DHAL_RENDERSTATEDATA回调。 驱动程序必须实现此成员指向的回调。
RenderPrimitive
指向驱动程序提供的D3DHAL_RENDERPRIMITIVEDATA回调。 驱动程序必须实现此成员指向的回调。
dwReserved
指定保留字段,并且必须设置为零。
TextureCreate
在 Windows 2000 及更高版本的驱动程序中,必须设置为 NULL 。 对于 DirectX 6.0,这是指向驱动程序提供的 D3dTextureCreate 回调或 NULL 的指针。
TextureDestroy
在 Windows 2000 及更高版本的驱动程序中,必须设置为 NULL 。 对于 DirectX 6.0,这是指向驱动程序提供的 D3dTextureDestroy 回调或 NULL 的指针。
TextureSwap
在 Windows 2000 及更高版本的驱动程序中,必须设置为 NULL 。 对于 DirectX 6.0,这是指向驱动程序提供的 D3dTextureSwap 回调或 NULL 的指针。
TextureGetSurf
在 Windows 2000 及更高版本的驱动程序中,必须设置为 NULL 。 对于 DirectX 6.0,这是指向驱动程序提供的 D3dTextureGetSurf 回调或 NULL 的指针。
lpReserved12
必须为零。
lpReserved13
必须为零。
lpReserved14
必须为零。
lpReserved15
必须为零。
lpReserved16
必须为零。
lpReserved17
必须为零。
lpReserved18
必须为零。
lpReserved19
必须为零。
lpReserved20
必须为零。
lpReserved21
必须为零。
GetState
指向驱动程序提供的D3DHAL_GETSTATEDATA回调。 驱动程序必须实现此成员指向的回调。
dwReserved0
必须为零。
dwReserved1
必须为零。
dwReserved2
必须为零。
dwReserved3
必须为零。
dwReserved4
必须为零。
dwReserved5
必须为零。
dwReserved6
必须为零。
dwReserved7
必须为零。
dwReserved8
必须为零
dwReserved9
必须为零。
注解
驱动程序分配此结构并在所有成员中设置适当的值。 驱动程序的 DrvGetDirectDrawInfo 函数在 DD_HALINFO 结构的 lpD3DHALCallbacks 成员中返回指向此结构的指针。
现在,通过 D3dDrawPrimitives2 驱动程序实现中管理的 opcode 来处理纹理管理。
要求
要求 | 值 |
---|---|
Header | d3dhal.h (包括 D3dhal.h) |