IDirect3DDevice9Ex::P resentEx メソッド (d3d9.h)
スワップチェーンの次のバッファーをフロント バッファーにスワップします。
構文
HRESULT PresentEx(
[in] const RECT *pSourceRect,
[in] const RECT *pDestRect,
[in] HWND hDestWindowOverride,
[in] const RGNDATA *pDirtyRegion,
[in] DWORD dwFlags
);
パラメーター
[in] pSourceRect
型: const RECT*
ウィンドウ クライアント座標でコピーするソースサーフェイス上の領域を示す RECT 構造体へのポインター。 スワップチェーンが D3DSWAPEFFECT_COPY フラグを使用して作成された場合にのみ適用されます。 NULL の場合、ソース サーフェス全体が表示されます。 四角形がソース サーフェスを超える場合は、ソース サーフェスにクリップされます。
[in] pDestRect
型: const RECT*
ウィンドウ クライアント座標内の宛先サーフェス上のターゲット領域を示す RECT 構造体へのポインター。 スワップチェーンが D3DSWAPEFFECT_COPY フラグを使用して作成された場合にのみ適用されます。 NULL の場合、クライアント領域全体が塗りつぶされます。 四角形が宛先クライアント領域を超える場合、その四角形は宛先クライアント領域にクリップされます。
[in] hDestWindowOverride
種類: HWND
このプレゼンテーションのターゲットとしてクライアント領域が取得される移動先ウィンドウへのポインター。 この値が NULL の場合、ランタイムはプレゼンテーションに D3DPRESENT_PARAMETERS の hDeviceWindow メンバーを使用します。
[in] pDirtyRegion
型: const RGNDATA*
転送する必要がある最小のピクセル セットを示す RGNDATA 構造体へのポインター。 スワップチェーンが D3DSWAPEFFECT_COPY フラグで作成されていない限り、この値は NULL である必要があります。 スワップチェーンの詳細については、「 サーフェスの反転 (Direct3D 9)」を参照してください。
この値が NULL 以外の場合、含まれている領域はバック バッファー座標で表されます。 メソッドは、領域内のピクセルのみをコピーしてプレゼンテーションを最適化するとき、または適切に展開された一連の四角形をコピーするときに、これらの四角形を考慮します。 これは最適化にのみ役立ちます。アプリケーションは、コピーされるリージョンに正確に依存しないようにする必要があります。 実装では、ソースの四角形全体をコピーすることを選択できます。
[in] dwFlags
型: DWORD
ドライバーがプレゼンテーションをスケジュールできないことを報告したときに、アプリケーションがメソッドをすぐに返すように要求できるようにします。 有効な値は 0、または D3DPRESENT フラグの任意の組み合わせです。
- dwFlags = 0 の場合、このメソッドは Direct3D 9 より前と同じように動作します。 Present は、エラーを返さずに、ハードウェアが無料になるまでスピンします。
- dwFlags = D3DPRESENT_DONOTFLIP 場合、ディスプレイ ドライバーは、ソースとターゲットの両方のサーフェスとしてフロント バッファーを使用して呼び出されます。 ドライバーはフレーム同期をスケジュールすることによって応答しますが、表示されるサーフェスは変更しません。 このフラグは、全画面表示モードまたはウィンドウ モードでD3DSWAPEFFECT_FLIPEXを使用している場合にのみ使用できます。
- dwFlags = D3DPRESENT_DONOTWAITで、ハードウェアが垂直方向の同期間隔の処理中または待機中である場合、メソッドはD3DERR_WASSTILLDRAWINGを返します。
- dwFlags = D3DPRESENT_FORCEIMMEDIATEの場合は、この Present 呼び出しにD3DPRESENT_INTERVAL_IMMEDIATEが適用されます。 このフラグは、D3DSWAPEFFECT_FLIPEXを使用する場合にのみ指定できます。 この動作は、ウィンドウモードと全画面表示モードでも同じです。
- dwFlags = D3DPRESENT_LINEAR_CONTENTの場合、ウィンドウ スワップ チェーンの線形空間から sRGB へのガンマ補正が実行されます。 このフラグは、ドライバーが D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION を公開している場合にのみ有効になります ( 「ガンマ (Direct3D 9)」を参照)。
戻り値
型: HRESULT
可能な戻り値は、S_OK、D3DERR_DEVICELOST、D3DERR_DEVICEHUNG、D3DERR_DEVICEREMOVED、またはD3DERR_OUTOFVIDEOMEMORYです ( D3DERR を参照)。 紛失、ハング、および削除されたデバイスの詳細については、「紛失 したデバイスの動作の変更」 を参照してください。
Direct3D 9 と Direct3D 9Ex の違い: D3DSWAPEFFECT_FLIPEX は、Windows 7 (またはそれ以上の現在のオペレーティング システム) で実行されている Direct3D9Ex でのみ使用できます。 |
注釈
IDirect3DDevice9::P resent メソッドと同様に、PresentEx は dwflags パラメーターを追加します。
D3DSWAPEFFECT_FLIPEX フラグを使用してスワップチェーンを作成する場合は、pSourceRect、pDestRect、および pDirtyRegion の値を NULL に設定する必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d9.h |
Library | D3D9.lib |