次の方法で共有


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」を参照してください。
  • 深度ステンシル サーフェスのサイズは、レンダー ターゲットのサイズ以上である必要があります。
これらの制限は、 IDirect3DDevice9Draw メソッドのいずれかが呼び出されたときにデバッグ ランタイムを使用する場合にのみ検証されます。

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

要件

   
対象プラットフォーム Windows
ヘッダー d3d9helper.h (D3D9.h を含む)
Library D3D9.lib

関連項目

IDirect3DDevice9