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_HALINFOlpD3DBufCallbacks成員指向它。

驅動程式也必須支援DD_D3DBUFCALLBACKS結構中所報告的回呼函式。 這些 XxxD3DBuffer 回呼分別類似于類似名稱的 DdXxxSurface 回呼;它們具有相同的原型,並使用相同的輸入參數來呼叫。 只有當有問題的表面在表面上設定了DDSCAPS_EXECUTEBUFFER旗標時,才會呼叫這些新的回呼。 緩衝區建立旗標DDSCAPS_WRITEONLY、DDSCAPS2_VERTEXBUFFER和DDSCAPS2_COMMANDBUFFER。

驅動程式會檢查傳遞給CanCreateD3DBufferCreateD3DBufferDD_SURFACE_LOCAL結構的ddsCaps成員,以判斷所要求的緩衝區類型:下列旗標:

  • DDSCAPS_VERTEXBUFFER

    表示驅動程式應該配置明確的頂點緩衝區。

  • DDSCAPS_COMMANDBUFFER

    表示驅動程式應該配置命令緩衝區。

  • 缺少這兩個旗標

    表示驅動程式應該配置隱含頂點緩衝區。

隱含頂點緩衝區不應該放在視訊記憶體中,因為它們預期為讀取/寫入。 只有具有DDSCAPS_WRITEONLY旗標集的明確頂點緩衝區可以安全地放置在視訊記憶體中。

需求

   
標頭 ddrawint.h (包含 Winddi.h)

另請參閱

CanCreateD3DBuffer

CreateD3DBuffer

DD_HALINFO

DD_SURFACE_LOCAL

DestroyD3DBuffer

LockD3DBuffer

UnlockD3DBuffer