IDirect3DDevice9::Present メソッド

IDirect3DDevice9::Present メソッド

デバイスが所有するバック バッファのシーケンスの中で、次のバッファのコンテンツをプレゼンテーションする。

構文

HRESULT Present(      
    CONST RECT *pSourceRect,
    CONST RECT *pDestRect,
    HWND hDestWindowOverride,
    CONST RGNDATA *pDirtyRegion
);

パラメータ

  • pSourceRect
    [in] スワップ チェーンが D3DSWAPEFFECT_COPY で作成されている場合を除き、NULL を指定しなければならない値へのポインタ。pSourceRect は、転送元矩形を含む RECT 構造体へのポインタである。NULL の場合は、転送元サーフェイス全体が表示される。矩形が転送元サーフェイスを超えた場合、矩形は転送元サーフェイスにクリッピングされる。

  • pDestRect
    [in] スワップ チェーンが D3DSWAPEFFECT_COPY で作成されている場合を除き、NULL を指定しなければならない値へのポインタ。pDestRect は、ウィンドウ クライアント座標内での、転送先矩形を含む RECT 構造体へのポインタである。NULL の場合は、クライアント領域全体が転送先矩形で満たされる。矩形が転送先のクライアント領域を越えた場合、矩形は転送先のクライアント領域にクリッピングされる。

  • hDestWindowOverride
    [in] クライアント領域がこのプレゼンテーションの対象として扱われる転送先ウィンドウへのポインタ。このパラメータが NULL の場合は、D3DPRESENT_PARAMETERShWndDeviceWindow メンバが使われる。

  • pDirtyRegion
    [in] この値は、スワップ チェーンが D3DSWAPEFFECT_COPY で作成されていない限り、NULL でなければならない。スワップ チェーンの詳細については、「サーフェイスのフリップ」および「D3DSWAPEFFECT」を参照すること。

    この値が NULL でない場合、格納される範囲は、バック バッファ座標で表現される。範囲内の矩形は、更新の必要があるピクセルの最小セットである。範囲内のピクセルのみ、または適切に拡張された矩形セットのみをコピーしてプレゼンテーションを最適化する際、このメソッドはこれらの矩形を考慮する。これは、最適化の支援のみに使われるものであり、アプリケーションは、コピーされる範囲の正確さに依存すべきではない。実装時に、転送元矩形全体をコピーするよう選択することもできる。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、次のいずれかの値を返す。

D3DERR_DRIVERINTERNALERROR

内部ドライバ エラー。通常、このエラーを受け取ったら、アプリケーションはシャットダウンしなければならない。詳細については、「ドライバの内部エラー」を参照すること。

D3DERR_DEVICELOST デバイスは、消失しているが、現在リセットできない。したがって、レンダリングは不可能である。
D3DERR_INVALIDCALL メソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。

注意

必要に応じて、転送元矩形内のピクセルをターゲット ウィンドウのクライアント領域の転送先矩形に転送するために拡大処理が適用される。

レンダリング ターゲットが現在のレンダリング ターゲットではない**場合 (追加のスワップ チェーンを作成する際に取得したバック バッファなど) を除き、PresentBeginSceneEndScene のペアの間に呼び出すと、メソッドは失敗して D3DERR_INVALIDCALL を返す。これは、Microsoft® DirectX® 9.0 の新しい動作である。

参照

IDirect3DDevice9::Reset