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 |