IDirect3DDevice9::SetRenderTarget

デバイスに新しいカラー バッファーを設定します。

HRESULT 
SetRenderTarget(
  DWORD RenderTargetIndex,
  IDirect3DSurface9 * pRenderTarget
);

パラメータ

  • RenderTargetIndex
    レンダー ターゲットのインデックス。「解説」を参照してください。
  • pRenderTarget
    新しいカラー バッファーへのポインター。NULL の場合、対応する RenderTargetIndex のカラー バッファーは無効です。デバイスは必ずカラー バッファーに関連付ける必要があります。新しいレンダー ターゲット サーフェスには、少なくとも D3DUSAGE_RENDERTARGET が指定されている必要があります。

戻り値

メソッドが成功した場合は、D3D_OK を返します。次のいずれかの場合、D3DERR_INVALIDCALL を返します。

  • pRenderTarget = NULL および RenderTargetIndex = 0
  • pRenderTarget is != NULL およびレンダー ターゲットが無効。

解説 

デバイスは複数のレンダー ターゲットをサポートできます。デバイスでサポートされるレンダー ターゲットの数は、D3DCAPS9 の NumSimultaneousRTs メンバーに含まれています。「複数のレンダー ターゲット (Direct3D 9)」を参照してください。

新しいレンダー ターゲットを設定すると、ビューポート (「ビューポートとクリッピング (Direct3D 9)」を参照) はフルサイズの新しいレンダー ターゲットに設定されます。

一部のハードウェアは、深度ステンシル バッファーとカラー バッファーとの互換性をテストします。これが実行される場合、デバッグ ビルドでのみ実行されます。

このメソッドを使用する際の制限事項を次に示します。

  • レンダー ターゲットと深度ステンシル サーフェスで、マルチサンプリング タイプが一致する必要があります。
  • レンダー ターゲットと深度ステンシル サーフェスのフォーマットは互換性がある必要があります。「IDirect3D9::CheckDepthStencilMatch」を参照してください。
  • 深度ステンシル サーフェスのサイズは、レンダー ターゲットのサイズ以上である必要があります。

これらの制限は、任意の IDirect3DDevice9 のときに、デバッグ ランタイムを使用する場合にのみ検証されます。 Draw メソッドが呼び出されます。

キューブ テクスチャーは他のサーフェスと異なり、サーフェスのコレクションになります。キューブ テクスチャーで IDirect3DDevice9::SetRenderTarget を呼び出すには、IDirect3DCubeTexture9::GetCubeMapSurface メソッドを使用して個別の面を選択し、その結果のサーフェスを IDirect3DDevice9::SetRenderTarget に渡す必要があります。

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容