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 來處理紋理管理。
規格需求
需求 | 值 |
---|---|
標頭 | d3dhal.h (包含 D3dhal.h) |