Platform SDK: DirectX

IDirect3DDevice7::SetRenderTarget

IDirect3DDevice7::SetRenderTarget メソッドは、レンダリング ターゲットとして新しい DirectDraw サーフェスの方向に、レンダリング出力を簡単に指定することをアプリケーションに許可する。

HRESULT SetRenderTarget(
  LPDIRECTDRAWSURFACE7 lpNewRenderTarget,  
  DWORD dwFlags                            
);

パラメータ

lpNewRenderTarget
新しいレンダリング ターゲットとなるサーフェス オブジェクトの IDirectDrawSurface7 インターフェイスのアドレス。このサーフェスは DDSCAPS_3DDEVICE 能力と共に、生成されなければならない。
dwFlags
現在は使用されていない。ゼロを設定する。

戻り値

成功すれば D3D_OK を返す。

失敗すればエラーを返す。エラーは次の値のいずれかである。

DDERR_INVALIDPARAMS
DDERR_INVALIDSURFACETYPE

注意

現在のレンダリング ターゲットに深度バッファがない場合、深度バッファがある新しいレンダリング ターゲット サーフェスを設定するためにこのメソッドを使用することはできない。同様に、このメソッドは、深度バッファがないレンダリング ターゲットから深度バッファがあるレンダリング ターゲットに切り替えるために使用することもできない。このような処理を実行しようとするとデバッグ ビルドで失敗し、リテール ビルドでは信頼できない動作が発生することがある。新旧のレンダリング ターゲットでは共に深度バッファを使用するため、新しいレンダリング ターゲットに深度バッファをアタッチすると、その深度バッファは内容が古い深度バッファを置き換える。

従来のインターフェイスにおけるこのメソッドの実装とは異なり、IDirect3DDevice7::SetRenderTarget はデバイスの現在のマテリアルまたはビューポートを無効にしない。

能力は、レンダリング ターゲット サーフェスのプロパティの変化によっては変わらない。Direct3D HAL およびソフトウェア ラスタライザは、アプリケーションに対して一度だけ能力を公開する。システムは、目的のサーフェスのフォーマットにより異なる能力セットを提示することはできない。

複数の深度バッファがレンダリング ターゲットにアタッチされていると、この関数は失敗する。

IDirect3DDevice3 インターフェイスでは、このメソッドは従来の IDirect3DrawSurface4 インターフェイスへのポインタを受け取った。

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  バージョン :DirectX 7.0 が必要。
  ヘッダー : d3d.h で宣言。

参照

IDirect3DDevice7::GetRenderTarget