次の方法で共有


IDirect3DDevice9Ex::PresentEx

スワップチェーンの次のバッファーとフロント バッファーをスワップします。

HRESULT 
PresentEx(
  CONST RECT *pSourceRect,
  CONST RECT *pDestRect,
  HWND hDestWindowOverride,
  CONST RGNDATA *pDirtyRegion,
  DWORD dwFlags
);

パラメータ

  • pSourceRect
    ウィンドウ クライアント座標内のソース サーフェス上にある領域を示す RECT 構造体への参照。D3DSWAPEFFECT_COPY フラグを指定してスワップチェーンを作成した場合にのみ適用されます。NULL の場合、ソース サーフェス全体が示されます。矩形は、ソース サーフェスを超える場合、ソース サーフェスに合わせて切り取られます。
  • pDestRect
    ウィンドウ クライアント座標内のデスティネーション サーフェス上にあるターゲット領域を示す RECT 構造体への参照。D3DSWAPEFFECT_COPY フラグを指定してスワップチェーンを作成した場合にのみ適用されます。NULL の場合、クライアント領域全体が塗りつぶされます。矩形は、デスティネーション クライアント領域を超える場合、デスティネーション クライアント領域に合わせて切り取られます。
  • hDestWindowOverride
    クライアント領域がこのプレゼンテーションのターゲットになるデスティネーションのウィンドウ ハンドルへのポインター。この値が NULL の場合は、D3DPRESENT_PARAMETERShWndDeviceWindow メンバーが使用されます。
  • pDirtyRegion
    転送が必要な最小セットのピクセルを示す RGNDATA 構造体へのポインター。スワップチェーンが D3DSWAPEFFECT_COPY フラグを指定して作成したものでない場合、この値は NULL にする必要があります。スワップチェーンの詳細については、「サーフェスの反転 (Direct3D 9)」を参照してください。 この値が NULL 以外の場合、含まれる領域はバック バッファー座標で表されます。このメソッドでは、プレゼンテーションを最適化する際、領域内のピクセルまたは適切に拡張された一連の矩形だけをコピーすることにより、これらの矩形が考慮されます。これは、最適化の補助のみを目的としています。アプリケーションでは、コピーされる領域そのものに依存しない必要があります。実装では、ソース矩形全体をコピーできます。
  • dwFlags
    プレゼンテーションをスケジューリングできないことがドライバーから報告されたときにすぐにリターンするよう、アプリケーションはこのメソッドに要求できます。有効な値は 0、または D3DPRESENT フラグの任意の組み合わせです。
    • dwFlags = 0 の場合、このメソッドは Direct3D 9 より前と同じ動作をします。プレゼンテーションはハードウェアが解放されるまで空回りし、エラーは返されません。
    • 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)」を参照) を公開している場合にだけ有効です。

戻り値

返される可能性のある戻り値は次のとおりです。S_OK、D3DERR_DEVICELOST、D3DERR_DEVICEHUNG、D3DERR_DEVICEREMOVED、または D3DERR_OUTOFVIDEOMEMORY (D3DERR を参照)。消失、ハング、喪失したデバイスについての詳細は、「[喪失したデバイスの動作の変更」を参照してください。

Direct3D 9 と Direct3D 9Ex の違い

D3DSWAPEFFECT_FLIPEX は、Windows 7 以降のオペレーティング システムで実行している Direct3D 9Ex でのみ使用できます。

解説 

IDirect3DDevice9::Present メソッドの場合と同様に、PresentEx の場合も dwflags パラメーターが追加されています。

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

要件

ヘッダー: D3d9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

IDirect3DDevice9Ex