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 方法時,才會使用偵錯執行時間來驗證這些限制。

Cube 紋理與其他表面不同,因為它們是表面集合。 若要使用 Cube 紋理呼叫 IDirect3DDevice9::SetRenderTarget ,您必須使用 IDirect3DCubeTexture9::GetCubeMapSurface 選取個別臉部,並將產生的表面傳遞至 IDirect3DDevice9::SetRenderTarget

需求

   
目標平台 Windows
標頭 d3d9helper.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

IDirect3DDevice9