IDirect3DDevice9::EndScene メソッド (d3d9.h)

IDirect3DDevice9::BeginScene を呼び出して開始されたシーンを終了します。

構文

HRESULT EndScene();

戻り値

型: HRESULT

メソッドが成功した場合、戻り値はD3D_OK。 IDirect3DDevice9::BeginScene が既に IDirect3DDevice9::BeginSceneIDirect3DDevice9::EndScene/ ペアにあるときに呼び出された場合、メソッドは D3DERR_INVALIDCALL で失敗します。 これは、IDirect3DDevice9::BeginScene が最初に IDirect3DDevice9::EndScene を呼び出さずに 2 回呼び出された場合にのみ発生します。

注釈

このメソッドが成功すると、ドライバーによるレンダリングのためにシーンがキューに入れられます。 これは同期メソッドではありません。そのため、このメソッドが戻ったときにシーンのレンダリングが完了することは保証されません。

アプリケーションはレンダリングを実行する前に IDirect3DDevice9::BeginScene を呼び出す必要があり、レンダリングが完了したら IDirect3DDevice9::EndScene を呼び出してから 、IDirect3DDevice9::BeginScene を再度呼び出す必要があります。

IDirect3DDevice9::BeginScene が失敗した場合、デバイスはシーンを開始できず、IDirect3DDevice9::EndScene を呼び出す必要はありません。 実際には、

前の IDirect3DDevice9::BeginScene が失敗した場合、 IDirect3DDevice9::EndScene は 失敗します。 これは、複数のスワップ チェーンを作成するすべてのアプリケーションに適用されます。

現在の連続する呼び出し (IDirect3DDevice9::P resent またはIDirect3DSwapChain9::P resent) の間には、最大で 1 つの IDirect3DDevice9::BeginScene IDirect3DDevice9::EndScene ペアが必要です。/ レンダリングを実行する前に IDirect3DDevice9::BeginScene を 1 回呼び出し、フレームのすべてのレンダリングがランタイムに送信された後に IDirect3DDevice9::EndScene を 1 回呼び出す必要があります。 CPU とグラフィックス アクセラレータの間で最大限の並列処理を有効にするには、可能な限り前に IDirect3DDevice9::EndScene を呼び出すと便利です。

要件

要件
対象プラットフォーム Windows
ヘッダー d3d9.h (D3D9.h を含む)
Library D3D9.lib

こちらもご覧ください

IDirect3DDevice9