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)

另请参阅

D3DHAL_CALLBACKS3

D3dContextCreate

D3dContextDestroy

D3dDrawPrimitives2

DdGetDriverInfo

DrvGetDirectDrawInfo