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。
- 深度模具图面的大小必须大于或等于呈现器目标的大小。
立方体纹理与其他表面的不同之处在于,它们是表面的集合。 若要使用多维数据集纹理调用 IDirect3DDevice9::SetRenderTarget ,必须使用 IDirect3DCubeTexture9::GetCubeMapSurface 选择单个人脸,并将生成的表面传递到 IDirect3DDevice9::SetRenderTarget。
要求
目标平台 | Windows |
标头 | d3d9helper.h (包括 D3D9.h) |
Library | D3D9.lib |