PDD_CREATESURFACE回呼函式 (ddrawint.h)
CreateD3DBuffer 回呼函式可用來建立指定描述的驅動程式層級命令或頂點緩衝區。
語法
PDD_CREATESURFACE PddCreatesurface;
DWORD PddCreatesurface(
PDD_CREATESURFACEDATA unnamedParam1
)
{...}
參數
unnamedParam1
指向包含建立緩衝區所需資訊的 DD_CREATESURFACEDATA 結構。
傳回值
CreateD3DBuffer 會傳回下列其中一個回呼代碼:
備註
只有在驅動程式管理驅動程式層級命令和頂點緩衝區時,才會使用此回呼。
根據預設,在 Windows 2000 和更新版本上建立主要介面時,不會通知驅動程式。 不過,如果驅動程式支援 DdGetDriverInfo 呼叫中的 GUID_NTPrivateDriverCaps GUID,而且DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION旗標是在 DD_NTPRIVATEDRIVERCAPS 結構的 dwPrivateCaps 成員中設定,則會通知驅動程式。
音調必須在 DD_SURFACE_GLOBAL 和 DDSURFACEDESC 結構的 lPitch 成員中傳回。 對於線性記憶體,驅動程式應該將 dwBlockSizeX 設定為記憶體區域的大小,以位元組為單位,並將 dwBlockSizeY 設定為 1。 兩者都是DD_SURFACE_GLOBAL結構的成員。
此呼叫的原型與 DdCreateSurface 相同。 當有問題的介面在DD_SURFACE_LOCAL 結構的 ddsCaps 成員中設定了 DDSCAPS_EXECUTEBUFFER 旗標時,會改用 CreateD3DBuffer 回呼。 緩衝區建立旗標DDSCAPS_WRITEONLY、DDSCAPS2_VERTEXBUFFER和DDSCAPS2_COMMANDBUFFER。
驅動程式會檢查DD_SURFACE_LOCAL結構的 ddsCaps 成員,以判斷所要求的緩衝區類型,以取得下列旗標:
旗標 | 意義 |
---|---|
DDSCAPS2_COMMANDBUFFER | 驅動程式應該配置命令緩衝區。 |
DDSCAPS2_VERTEXBUFFER | 驅動程式應該配置明確的頂點緩衝區。 |
或者,驅動程式可以在 fpVidMem 中傳回下列其中一個值,要求 DirectDraw 配置緩衝區:
值 | 意義 |
---|---|
DDHAL_PLEASEALLOC_BLOCKSIZE | DirectDraw 應該從螢幕外記憶體配置緩衝區內存。 |
DDHAL_PLEASEALLOC_USERMEM | DirectDraw 應該從用戶記憶體配置緩衝區內存。 驅動程式也必須傳回 dwUserMemSize 中記憶體區域的大小,以位元組為單位。 |
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | ddrawint.h (包含 Winddi.h) |