IDirect3DDevice9::SetRenderTarget メソッド (d3d9helper.h)
デバイスの新しいカラー バッファーを設定します。
構文
HRESULT SetRenderTarget(
[in] DWORD RenderTargetIndex,
[in] IDirect3DSurface9 *pRenderTarget
);
パラメーター
[in] RenderTargetIndex
種類: DWORD
レンダー ターゲットのインデックス。 「解説」を参照してください。
[in] pRenderTarget
種類: IDirect3DSurface9*
新しいカラー バッファーへのポインター。 NULL の場合、対応する RenderTargetIndex のカラー バッファーは無効になります。 デバイスは常にカラー バッファーに関連付けられている必要があります。 新しいレンダー ターゲット サーフェスには、少なくともD3DUSAGE_RENDERTARGET指定する必要があります。
戻り値
種類: HRESULT
メソッドが成功した場合、戻り値はD3D_OK。 このメソッドは、次のいずれかの場合にD3DERR_INVALIDCALLを返します。
- pRenderTarget = NULL および RenderTargetIndex = 0
- pRenderTarget が != NULL で、レンダー ターゲットが無効です。
解説
デバイスでは、複数のレンダー ターゲットをサポートできます。 デバイスでサポートされるレンダー ターゲットの数は、 D3DCAPS9 の NumSimultaneousRTs メンバーに含まれています。 「複数のレンダー ターゲット (Direct3D 9)」を参照してください。
新しいレンダー ターゲットを設定すると、ビューポート( ビューポートとクリッピング(Direct3D 9)を参照)が新しいレンダー ターゲットのフル サイズに設定されます。
一部のハードウェアでは、深度ステンシル バッファーとカラー バッファーの互換性がテストされます。 これを行う場合は、デバッグ ビルドでのみ行われます。
このメソッドの使用に関する制限事項は次のとおりです。
- マルチサンプルの種類は、レンダー ターゲットと深度ステンシル サーフェスで同じである必要があります。
- 書式は、レンダー ターゲットと深度ステンシル サーフェスに対応している必要があります。 「IDirect3D9::CheckDepthStencilMatch」を参照してください。
- 深度ステンシル サーフェスのサイズは、レンダー ターゲットのサイズ以上である必要があります。
キューブ テクスチャは、サーフェスのコレクションであるという点で、他のサーフェスとは異なります。 キューブ テクスチャで IDirect3DDevice9::SetRenderTarget を 呼び出すには、 IDirect3DCubeTexture9::GetCubeMapSurface を使用して個々の面を選択し、結果のサーフェスを IDirect3DDevice9::SetRenderTarget に渡す必要があります。
要件
対象プラットフォーム | Windows |
ヘッダー | d3d9helper.h (D3D9.h を含む) |
Library | D3D9.lib |