Win32 API 日本語リファレンス
ホーム › Graphics.DirectDraw › PDD_CREATESURFACE

PDD_CREATESURFACE

コールバック

シグネチャ

DWORD PDD_CREATESURFACE(
    DD_CREATESURFACEDATA* param0
);

パラメーター

フィールド型説明
param0DD_CREATESURFACEDATA*バッファーの作成に必要な情報を格納する DD_CREATESURFACEDATA 構造体へのポインターです。

公式ドキュメント

CreateD3DBuffer コールバック関数は、指定された記述のドライバーレベルのコマンドバッファーまたは頂点バッファーを作成するために使用されます。

戻り値

CreateD3DBuffer は、次のいずれかのコールバックコードを返します:

解説(Remarks)

このコールバックは、ドライバーがドライバーレベルのコマンドバッファーおよび頂点バッファーを管理する場合にのみ使用されます。

既定では、Windows 2000 以降のバージョンでプライマリサーフェスが作成されても、ドライバーには通知されません。ただし、ドライバーが DdGetDriverInfo の呼び出しで GUID_NTPrivateDriverCaps GUID をサポートし、DD_NTPRIVATEDRIVERCAPS 構造体の dwPrivateCaps メンバーに DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION フラグが設定されている場合は、ドライバーに通知されます。

ピッチは、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 ドライバーは明示的な頂点バッファーを割り当てます。
注 どちらのフラグも設定されていない場合、ドライバーは暗黙的な頂点バッファーを割り当てます。暗黙的な頂点バッファーは読み取り/書き込みが想定されるため、ビデオメモリに配置しないでください。ビデオメモリに安全に配置できるのは、DDSCAPS_WRITEONLY フラグが設定された明示的な頂点バッファーだけです。
ドライバーは、バッファーメモリを自身で割り当てることも、Microsoft DirectDraw にメモリ管理を要求することもできます。ドライバーが割り当てを行う場合は、DD_SURFACE_GLOBAL 構造体の fpVidMem メンバーに、そのメモリへの有効なポインターを書き込む必要があります。

あるいは、ドライバーは fpVidMem に次のいずれかの値を返すことで、DirectDraw にバッファーの割り当てを要求できます:

値 意味
DDHAL_PLEASEALLOC_BLOCKSIZE DirectDraw はオフスクリーンメモリからバッファーメモリを割り当てます。
DDHAL_PLEASEALLOC_USERMEM DirectDraw はユーザーメモリからバッファーメモリを割り当てます。ドライバーは、メモリ領域のサイズ (バイト単位) を dwUserMemSize で返す必要もあります。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)