次の方法で共有


IDirect3DSwapChain9::Present

スワップ チェーンが所有するバック バッファーのシーケンスにおける、次のバッファーのコンテンツを提示します。

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

パラメータ

  • pSourceRect
    ソース矩形(「RECT」を参照) へのポインター。サーフェス全体を提示するには、NULL を指定します。D3DSWAPEFFECT_COPY を使用してスワップ チェーンが作成されていない場合、この値は NULL でなければなりません。矩形は、ソース サーフェスを超える場合、ソース サーフェスに合わせて切り取られます。
  • pDestRect
    クライアント座標内のデスティネーション矩形(「RECT」を参照) へのポインター。D3DSWAPEFFECT_COPY を使用してスワップ チェーンが作成されていない場合、この値は NULL でなければなりません。クライアント データ全体を格納するには NULL を指定します。矩形は、デスティネーション クライアント領域を超える場合、デスティネーション クライアント領域に合わせて切り取られます。
  • hDestWindowOverride
    クライアント領域がこのプレゼンテーションのターゲットとなるデスティネーション ウィンドウ。この値が NULL の場合は、D3DPRESENT_PARAMETERS の hWndDeviceWindow メンバーが使用されます。
  • pDirtyRegion
    D3DSWAPEFFECT_COPY を使用してスワップ チェーンが作成されていない場合、この値は NULL でなければなりません。「サーフェスの反転 (Direct3D 9)」を参照してください。 この値が NULL 以外の場合、含まれる領域はバック バッファー座標で表されます。領域内の矩形は、更新する必要があるピクセルの最小セットです。このメソッドでは、プレゼンテーションを最適化する際、領域内のピクセルまたは適切に拡張された一連の矩形だけをコピーすることにより、これらの矩形が考慮されます。これは、最適化の補助のみを目的としています。アプリケーションでは、コピーされる領域そのものに依存しない必要があります。実装によっては、ソース矩形全体がコピーされる場合もあります。
  • dwFlags
    プレゼンテーションをスケジューリングできないことがドライバーから報告されたときにすぐにリターンするよう、アプリケーションはこのメソッドに要求できます。有効な値は 0、または D3DPRESENT_DONOTWAIT と D3DPRESENT_LINEAR_CONTENT の任意の組み合わせ (「D3DPRESENT」を参照) です。
    • dwFlags = 0 の場合、このメソッドは Direct3D 9 より前と同じ動作をします。プレゼンテーションはハードウェアが解放されるまで空回りし、エラーは返されません。
    • dwFlags = D3DPRESENT_DONOTWAIT で、ハードウェアがビジーであるか垂直同期期間の待機中である場合、このメソッドは D3DERR_WASSTILLDRAWING を返します。
    • dwFlags = D3DPRESENT_LINEAR_CONTENT の場合は、ウィンドウ表示されたスワップ チェーンに対し、線形空間から sRGB へのガンマ補正が実行されます。このフラグは、ドライバーが D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION(「ガンマ (Direct3D 9)」を参照) を公開している場合にだけ有効です。全画面のガンマ動作と一致するウィンドウ モード表示とするために、バックバッファー フォーマットが 16 ビット浮動小数点である場合は、アプリケーションでこのフラグを指定する必要があります。

戻り値

メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、次の戻り値のいずれかを返します。D3DERR_DEVICELOST、D3DERR_DRIVERINTERNALERROR、D3DERR_INVALIDCALL、D3DERR_OUTOFVIDEOMEMORY、E_OUTOFMEMORY。

解説 

IDirect3DDevice9::Present は Present に対するショートカットです。Present は更新されていて、新しいフラグを使用すると、プレゼンテーションをスケジューリングできないことがドライバーから報告されたときにすぐにリターンするよう、アプリケーションはメソッドに要求できます。

必要に応じて、引き伸ばし操作を適用して、ソース矩形内のピクセルをターゲット ウィンドウのクライアント領域のデスティネーション矩形に転送します。

Present は、レンダー ターゲットが現在のレンダー ターゲット (別のスワップ チェーンの作成から得られたバック バッファーなど) である場合、IDirect3DDevice9::BeginSceneIDirect3DDevice9::EndScene 間で呼び出されると、失敗します。これは、Direct3D 9 の新しい動作です。

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

IDirect3DDevice9::Reset