PDD_SURFCB_DESTROYSURFACE
コールバックシグネチャ
DWORD PDD_SURFCB_DESTROYSURFACE(
DD_DESTROYSURFACEDATA* param0
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| param0 | DD_DESTROYSURFACEDATA* | サーフェスの破棄に必要な情報を格納した DD_DESTROYSURFACEDATA 構造体を指します。 |
公式ドキュメント
DdDestroySurface コールバック関数は、DirectDraw サーフェスを破棄します。
戻り値
DdDestroySurface は、次のいずれかのコールバックコードを返します:
解説(Remarks)
サーフェスの作成時に DirectDraw がメモリの割り当てを行い、ドライバーがその割り当てに関与していなかった場合、DirectDraw はサーフェスを破棄するためにドライバーの DdDestroySurface 関数を呼び出しません。
ドライバー自身がサーフェスメモリの管理を行っている場合、DdDestroySurface はサーフェスメモリを解放し、DD_SURFACE_GLOBAL 構造体および DD_SURFACE_LOCAL 構造体の dwReserved1 メンバーに格納されたプライベートデータの解放など、その他のクリーンアップを実行する必要があります。
ドライバー管理のサーフェスでは、そのサーフェスが永続的である場合(つまり、そのサーフェスの DDSCAPS2 構造体の dwCaps2 メンバーで DDSCAPS2_DONOTPERSIST フラグが設定されていない場合)、サーフェスをビデオメモリから追い出す目的で DdDestroySurface が呼び出されることがあります。この場合、ディスプレイドライバーは、サーフェスを実際に破棄するために DdDestroySurface が呼び出されるまで、dwReserved1 メンバーのプライベートデータを保持し続けることができます。
DdDestroySurface は、無効化された PDEV の状態で呼び出されることがあります。PDEV の無効化または有効化は、ディスプレイドライバーの DrvAssertMode 関数を呼び出すことによって行われます。詳細については、Managing PDEVs を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)