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

PDD_CANCREATESURFACE

コールバック

シグネチャ

DWORD PDD_CANCREATESURFACE(
    DD_CANCREATESURFACEDATA* param0
);

パラメーター

フィールド型説明
param0DD_CANCREATESURFACEDATA*DD_CANCREATESURFACEDATA 構造体へのポインターです。この構造体には、コマンドバッファーまたは頂点バッファーを作成できるかどうかをドライバーが判断するために必要な情報が格納されます。

公式ドキュメント

CanCreateD3DBuffer コールバック関数は、指定された記述のドライバーレベルのコマンドバッファーまたは頂点バッファーをドライバーが作成できるかどうかを判断します。

戻り値

CanCreateD3DBuffer はコールバックコードを返します。

解説(Remarks)

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

CanCreateD3DBuffer は、lpCanCreateD3DBuffer が指す DD_CANCREATESURFACEDATA 構造体の lpDDSurfaceDesc メンバーが指すサーフェス記述を調べ、要求されたバッファーの形式と機能を現在のモードでドライバーがサポートできるかどうかを判断する必要があります。ドライバーは、その種類のバッファーをサポートする場合、同じ構造体の ddRVal メンバーに DD_OK を返します。サポートしない場合は、サポートしない理由を最もよく表す DDERR_Xxx エラーコードを返します。

この呼び出しは DdCanCreateSurface と同じプロトタイプを持ちます。ただし CanCreateD3DBuffer コールバックは、対象のサーフェスが DD_SURFACE_LOCAL 構造体の ddsCaps メンバーで DDSCAPS_EXECUTEBUFFER フラグを設定している場合に使用されます。

ドライバーは、DD_SURFACE_LOCAL 構造体の ddsCaps メンバーで次のフラグを調べることにより、要求されているバッファーの種類を判断します。

フラグ 意味
DDSCAPS2_COMMANDBUFFER ドライバーはコマンドバッファーを割り当てる必要があります。
DDSCAPS2_VERTEXBUFFER ドライバーは明示的な頂点バッファーを割り当てる必要があります。
注意 どちらのフラグも設定されていない場合、ドライバーは暗黙的な頂点バッファーを割り当てる必要があります。暗黙的な頂点バッファーは読み取り/書き込みが想定されるため、ビデオメモリに配置しないでください。ビデオメモリに安全に配置できるのは、DDSCAPS_WRITEONLY フラグが設定された明示的な頂点バッファーだけです。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)