IDirect3DSwapChain9::P resent メソッド (d3d9helper.h)
スワップ チェーンが所有するバック バッファーのシーケンス内の次のバッファーの内容を表示します。
構文
HRESULT Present(
[in] const RECT *pSourceRect,
[in] const RECT *pDestRect,
[in] HWND hDestWindowOverride,
[in] const RGNDATA *pDirtyRegion,
[in] DWORD dwFlags
);
パラメーター
[in] pSourceRect
型: const RECT*
ソース四角形へのポインター ( RECT を参照)。 NULL を使用してサーフェス全体を表示します。 スワップ チェーンが D3DSWAPEFFECT_COPY で作成されていない限り、この値は NULL である必要があります。 四角形がソースサーフェスを超える場合、四角形はソースサーフェスにクリップされます。
[in] pDestRect
型: const RECT*
クライアント座標内の移動先の四角形へのポインター ( RECT を参照)。 スワップ チェーンが D3DSWAPEFFECT_COPY で作成されていない限り、この値は NULL である必要があります。 NULL を使用して、クライアント領域全体を塗りつぶします。 四角形が宛先クライアント領域を超える場合、その四角形は宛先クライアント領域にクリップされます。
[in] hDestWindowOverride
種類: HWND
このプレゼンテーションのターゲットとしてクライアント領域が取得される宛先ウィンドウ。 この値が NULL の場合、ランタイムはプレゼンテーションに D3DPRESENT_PARAMETERS の hDeviceWindow メンバーを使用します。
[in] pDirtyRegion
型: const RGNDATA*
スワップ チェーンが D3DSWAPEFFECT_COPY で作成されていない限り、この値は NULL である必要があります。 「 サーフェスの反転 (Direct3D 9)」を参照してください。
この値が NULL 以外の場合、包含領域はバック バッファー座標で表されます。 領域内の四角形は、更新する必要がある最小限のピクセル セットです。 このメソッドは、領域内のピクセルのみをコピーするか、適切に拡張された一連の四角形をコピーしてプレゼンテーションを最適化するときに、これらの四角形を考慮します。 これは最適化のみに役立ち、アプリケーションは正確にコピーされるリージョンに依存しないでください。 実装では、ソースの四角形全体をコピーすることを選択できます。
[in] dwFlags
種類: DWORD
アプリケーションが、プレゼンテーションをスケジュールできないことをドライバーが報告したときに、メソッドがすぐに返すように要求できるようにします。 有効な値は 0、または D3DPRESENT_DONOTWAIT または D3DPRESENT_LINEAR_CONTENTの任意の組み合わせです。
- dwFlags = 0 の場合、このメソッドは Direct3D 9 より前と同じように動作します。 Present は、エラーを返さずに、ハードウェアが無料になるまでスピンします。
- dwFlags = D3DPRESENT_DONOTWAIT、ハードウェアが処理中または垂直同期間隔を待機している場合、メソッドはD3DERR_WASSTILLDRAWINGを返します。
- dwFlags = D3DPRESENT_LINEAR_CONTENT場合、ウィンドウ スワップ チェーンの線形空間から sRGB へのガンマ補正が実行されます。 このフラグは、ドライバーが D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION を公開している場合にのみ有効になります ( 「ガンマ (Direct3D 9)」を参照)。 バックバッファー形式が 16 ビット浮動小数点の場合、ウィンドウ モードが全画面表示ガンマ動作と一致するようにアプリケーションでこのフラグを指定する必要があります。
戻り値
種類: HRESULT
メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合、戻り値は次のいずれかになります:D3DERR_DEVICELOST、D3DERR_DRIVERINTERNALERROR、D3DERR_INVALIDCALL、D3DERR_OUTOFVIDEOMEMORY、E_OUTOFMEMORY。
注釈
Present メソッドは Present へのショートカットです。 Present が更新され、アプリケーションがプレゼンテーションのスケジュールを設定できないことをドライバーが報告したときに、メソッドが直ちに返すように要求できるようにフラグが設定されました。
必要に応じて、ストレッチ操作を適用して、ソース四角形内のピクセルをターゲット ウィンドウのクライアント領域のターゲット四角形に転送します。
レンダー ターゲットが現在のレンダー ターゲット (追加のスワップ チェーンの作成から取得したバック バッファーなど) でない限り、 BeginScene と EndScene のペアの間で呼び出されると、Present は失敗します。 これは、Direct3D 9 の新しい動作です。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d9helper.h (D3D9.h を含む) |
Library | D3D9.lib |