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。
- 深度樣板表面的大小必須大於或等於轉譯目標的大小。
Cube 紋理與其他表面不同,因為它們是表面集合。 若要使用 Cube 紋理呼叫 IDirect3DDevice9::SetRenderTarget ,您必須使用 IDirect3DCubeTexture9::GetCubeMapSurface 選取個別臉部,並將產生的表面傳遞至 IDirect3DDevice9::SetRenderTarget。
需求
目標平台 | Windows |
標頭 | d3d9helper.h (包含 D3D9.h) |
程式庫 | D3D9.lib |