次の方法で共有


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_PARAMETERShDeviceWindow メンバーを使用します。

手記D3DSWAPEFFECT_FLIPEXでスワップ チェーンを作成する場合は、hDestWindowOverrideNULL を渡す必要があります
 

[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 を参照) またはS_PRESENT_OCCLUDED、またはS_PRESENT_MODE_CHANGED ( S_PRESENTを参照) です。 紛失、ハング、および削除されたデバイスの詳細については、「紛失 したデバイスの動作の変更」 を参照してください。

Direct3D 9 と Direct3D 9Ex の違い:

D3DSWAPEFFECT_FLIPEX は、Windows 7 (またはそれ以上の現在のオペレーティング システム) で実行されている Direct3D9Ex でのみ使用できます。

注釈

IDirect3DDevice9::P resent メソッドと同様に、PresentEx は、wlanlags パラメーターを追加します。

D3DSWAPEFFECT_FLIPEX フラグを使用してスワップチェーンを作成する場合は、pSourceRectpDestRectおよび pDirtyRegion の値を NULL に設定する必要があります。

Requirements

Requirement 価値
ターゲット プラットフォーム ウィンドウズ
Header d3d9.h
Library D3D9.lib

こちらも参照ください

IDirect3DDevice9Ex