シーンのプレゼンテーションの概要 (Direct3D 9)
プレゼンテーション API は、ユーザーがモニターに表示する内容に影響を与えるデバイスの状態を制御する一連のメソッドです。 これらのメソッドには、ユーザーに画像を表示するために使用される表示モードとフレームごとに 1 回のメソッドの設定が含まれます。
- IDirect3DDevice9::Present
- IDirect3DDevice9::Reset
- IDirect3DDevice9::GetGammaRamp
- IDirect3DDevice9::SetGammaRamp
- IDirect3DDevice9::GetRasterStatus
プレゼンテーション API を理解するには、次の用語に関する知識が必要です。
- フロント バッファー。 グラフィックス アダプターによって変換され、モニターまたはその他の出力デバイスに表示されるメモリの四角形。
- バック バッファー。 コンテンツをフロント バッファーに昇格できるサーフェス。
- スワップ チェーン。 フロント バッファーにシリアル表示できるバック バッファーのコレクション。 通常、全画面表示スワップ チェーンは、反転デバイス ドライバー インターフェイス (DDI) を使用して後続のイメージを表示し、ウィンドウスワップ チェーンは blitting DDI を使用してイメージを表示します。
Direct3D 9 にはデバイスのプロパティとして 1 つのスワップ チェーンがあるため、デバイスごとに少なくとも 1 つのスワップ チェーンが常に存在します。 IDirect3DDevice9 インターフェイスには、暗黙的なスワップ チェーンを操作する一連のメソッドがあり、スワップ チェーン独自のインターフェイスのコピーです。 アプリケーションでは、追加のスワップ チェーンを作成できます。ただし、これは一般的な単一ウィンドウまたは全画面表示アプリケーションでは必要ありません。
フロント バッファーは Direct3D 9 では直接公開されません。 その結果、アプリケーションはフロント バッファーをロックしたり、フロント バッファーにレンダリングしたりすることはできません。 詳細については、「 カラー フロント バッファーへのアクセス (Direct3D 9)」を参照してください。
Note
DirectX 7 には、一緒に呼び出された多数のプレゼンテーション API が用意されています。 その良い例として、IDirectDraw7::SetCooperativeLevel、IDirectDraw7::SetDisplayMode、および IDirectDraw7::CreateSurface シーケンスがあります。 さらに、IDirectDrawSurface7::Flip メソッドと IDirectDrawSurface7::Blt メソッドは、レンダリングされたフレームのモニターへの転送を通知しました。 Direct3D 9 では、これらの API グループが Reset メソッドと Present メソッドの 2 つのメインに折りたたまれます。 Subsumes SetCooperativeLevel、SetDisplayMode、CreateSurface、および一部のパラメーターを反転するようにリセットします。 Present subsumes flip and the presentation uses of blit.
IDirect3D9::CreateDevice の呼び出しは、デバイスの暗黙的なリセットを表します。 Direct3D 9 API には、プライマリ サーフェスの概念はありません。プライマリ サーフェスを表すオブジェクトを作成することはできません。 これは、デバイスの内部プロパティと見なされます。
ガンマ ランプはスワップ チェーンに関連付けられて、 IDirect3DDevice9::GetGammaRamp メソッドと IDirect3DDevice9::SetGammaRamp メソッドで操作されます。
関連トピック