IDirect3DDevice9::SetRenderTarget メソッド

IDirect3DDevice9::SetRenderTarget メソッド

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

構文

HRESULT SetRenderTarget(      
    DWORD RenderTargetIndex,
    IDirect3DSurface9 *pRenderTarget
);

パラメータ

  • RenderTargetIndex
    [in] レンダリング ターゲットのインデックス。「注意」を参照すること。

  • pRenderTarget
    [in] 新しいカラー バッファへのポインタ。NULL の場合、対応する RenderTargetIndex のカラー バッファは無効になる。このパラメータが NULL 以外の場合は、新しいレンダリング ターゲットの参照カウントがインクリメントされる。デバイスには、常に、カラー バッファが関連付けられていなければならない。

    新しいレンダリング ターゲットのサーフェイスには、少なくとも D3DUSAGE_RENDERTARGET が指定されていなければならない。

戻り値

成功した場合は、D3D_OK を返す。

次のいずれかの場合は D3DERR_INVALIDCALL を返す。

  • pRenderTarget が NULL で RenderTargetIndex が 0 の場合。
  • pRenderTarget が NULL でなく、レンダリング ターゲットが無効の場合。

注意

デバイスは、複数のレンダリング ターゲットをサポートできるになった。デバイスがサポートするレンダリング ターゲットの数は、D3DCAPS9 の NumSimultaneousRTs メンバに格納されている。「複数のレンダリング ターゲット」を参照すること。

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

このメソッドの使用に関する制約を次に示す。

  • レンダリング ターゲットと深度ステンシル サーフェイスは、マルチサンプリング タイプが同じでなければならない。
  • レンダリング ターゲットと深度ステンシル サーフェイスは、フォーマットが互換でなければならない。「IDirect3D9::CheckDepthStencilMatch」を参照すること。
  • 深度ステンシル サーフェイスのサイズは、レンダリング ターゲットのサイズ以上でなければならない。

これらの制約は、デバッグ ランタイム使用時にのみ IDirect3DDevice9 の Draw メソッドを呼び出したときに検証される。

キューブ テクスチャは、サーフェイスの集合である点が他のサーフェイスと異なる。キューブ テクスチャを指定して IDirect3DDevice9::SetRenderTarget を呼び出すには、IDirect3DCubeTexture9::GetCubeMapSurface を使って特定の面を選択し、そのサーフェイスを IDirect3DDevice9::SetRenderTarget に渡す必要がある。