DD_D3DBUFCALLBACKS結構 (ddrawint.h)
只有實作命令和頂點緩衝區之驅動程式層級配置的驅動程式才會使用DD_D3DBUFCALLBACKS結構。
語法
typedef struct _DD_D3DBUFCALLBACKS {
DWORD dwSize;
DWORD dwFlags;
PDD_CANCREATESURFACE CanCreateD3DBuffer;
PDD_CREATESURFACE CreateD3DBuffer;
PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
PDD_SURFCB_LOCK LockD3DBuffer;
PDD_SURFCB_UNLOCK UnlockD3DBuffer;
} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
成員
dwSize
指定這個 DD_D3DBUFCALLBACKS 結構的大小,以位元組為單位。
dwFlags
保留的。
CanCreateD3DBuffer
指向驅動程式的 CanCreateD3DBuffer 回呼。
CreateD3DBuffer
指向驅動程式的 CreateD3DBuffer 回呼。
DestroyD3DBuffer
指向驅動程式的 DestroyD3DBuffer 回呼。
LockD3DBuffer
指向驅動程式的 LockD3DBuffer 回呼。
UnlockD3DBuffer
指向驅動程式的 UnlockD3DBuffer 回呼。
備註
管理自己的命令和頂點緩衝區的驅動程式必須填寫DD_D3DBUFCALLBACKS結構,並將DD_HALINFO的lpD3DBufCallbacks成員指向它。
驅動程式也必須支援DD_D3DBUFCALLBACKS結構中所報告的回呼函式。 這些 XxxD3DBuffer 回呼分別類似于類似名稱的 DdXxxSurface 回呼;它們具有相同的原型,並使用相同的輸入參數來呼叫。 只有當有問題的表面在表面上設定了DDSCAPS_EXECUTEBUFFER旗標時,才會呼叫這些新的回呼。 緩衝區建立旗標DDSCAPS_WRITEONLY、DDSCAPS2_VERTEXBUFFER和DDSCAPS2_COMMANDBUFFER。
驅動程式會檢查傳遞給CanCreateD3DBuffer和CreateD3DBuffer之DD_SURFACE_LOCAL結構的ddsCaps成員,以判斷所要求的緩衝區類型:下列旗標:
-
DDSCAPS_VERTEXBUFFER
表示驅動程式應該配置明確的頂點緩衝區。
-
DDSCAPS_COMMANDBUFFER
表示驅動程式應該配置命令緩衝區。
-
缺少這兩個旗標
表示驅動程式應該配置隱含頂點緩衝區。
需求
標頭 | ddrawint.h (包含 Winddi.h) |