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