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 内容