PDD_CANCREATESURFACE回呼函式 (ddrawint.h)
CanCreateD3DBuffer 回呼函式會決定驅動程式是否可以建立指定描述的驅動程式層級命令或頂點緩衝區。
語法
PDD_CANCREATESURFACE PddCancreatesurface;
DWORD PddCancreatesurface(
PDD_CANCREATESURFACEDATA unnamedParam1
)
{...}
參數
unnamedParam1
指向 DD_CANCREATESURFACEDATA 結構。 此結構包含驅動程式所需的資訊,以判斷是否可以建立命令或頂點緩衝區。
傳回值
CanCreateD3DBuffer 會傳回回呼碼。
備註
只有在驅動程式管理驅動程式層級命令和頂點緩衝區時,才會使用此回呼。
CanCreateD3DBuffer 應該檢查 lpDDSurfaceDesc 結構之 DD_CANCREATESURFACEDATA lpDDSurfaceDesc 成員在 lpCanCreateD3DBuffer 指向的介面描述,以判斷驅動程式是否可以針對驅動程式目前所在的模式支援要求的緩衝區格式和功能。 如果驅動程式支援該緩衝區類型,驅動程式應該會在相同結構的 ddRVal 成員中傳回DD_OK。 否則,它應該會傳回DDERR_Xxx 錯誤碼,以最能描述它不支援緩衝區的原因。
此呼叫的原型與 DdCanCreateSurface 相同。 不過,當有問題的介面在DD_SURFACE_LOCAL 結構的 ddsCaps 成員中設定DDSCAPS_EXECUTEBUFFER旗標時,就會使用 CanCreateD3DBuffer 回呼。
驅動程式會檢查下列旗標之 DD_SURFACE_LOCAL 結構的 ddsCaps 成員,以判斷所要求的緩衝區類型:
旗標 | 意義 |
---|---|
DDSCAPS2_COMMANDBUFFER | 驅動程式應該配置命令緩衝區。 |
DDSCAPS2_VERTEXBUFFER | 驅動程式應該配置明確的頂點緩衝區。 |
注意 如果未設定旗標,驅動程式應該配置隱含頂點緩衝區。 隱含頂點緩衝區不應該放在視訊記憶體中,因為它們必須是讀取/寫入。 只有具有DDSCAPS_WRITEONLY旗標集的明確頂點緩衝區可以安全地放在視訊記憶體中。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | ddrawint.h (包括 Winddi.h) |