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 と同じプロトタイプがあります。 CreateD3DBuffer コールバックは、問題のサーフェスがDD_SURFACE_LOCAL構造体の ddsCaps メンバーにDDSCAPS_EXECUTEBUFFER フラグを設定している場合に代わりに使用されます。 バッファー作成フラグは、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 のメモリ領域のサイズ (バイト単位) も返す必要があります。 |
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | ddrawint.h (Winddi.h を含む) |