ID3D12GraphicsCommandList::OMSetRenderTargets 方法 (d3d12.h)
设置呈现目标和深度模具的 CPU 描述符句柄。
语法
void OMSetRenderTargets(
[in] UINT NumRenderTargetDescriptors,
[in, optional] const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors,
[in] BOOL RTsSingleHandleToDescriptorRange,
[in, optional] const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor
);
参数
[in] NumRenderTargetDescriptors
类型: UINT
pRenderTargetDescriptors 数组中的条目数 (范围为 0 到 D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT) 。 如果此参数不为零,则 pRenderTargetDescriptors 指向的数组中的条目数必须等于此参数中的数目。
[in, optional] pRenderTargetDescriptors
类型: const D3D12_CPU_DESCRIPTOR_HANDLE*
指定 D3D12_CPU_DESCRIPTOR_HANDLE 结构的数组,这些结构描述 CPU 描述符句柄表示呈现器目标描述符堆的开头。 如果此参数为 NULL 且 NumRenderTargetDescriptors 为 0,则不绑定呈现器目标。
[in] RTsSingleHandleToDescriptorRange
类型: BOOL
True 表示传入的句柄是指向 NumRenderTargetDescriptors 描述符 连续范围的指针。 如果要绑定的描述符集恰好在内存 (中是连续的,因此只需要) 第一个描述符的句柄,则这种情况非常有用。 例如,如果 NumRenderTargetDescriptors 为 3,则内存布局如下所示:
在这种情况下,驱动程序取消引用句柄,然后递增指向的内存。False 表示句柄是 NumRenderTargetDescriptors 句柄 数组中的第一个。 假大小写允许应用程序一次从不同位置绑定一组描述符。 同样,假设 NumRenderTargetDescriptors 为 3,内存布局如下所示:
在这种情况下,驱动程序取消引用三个应在内存中彼此相邻的句柄。[in, optional] pDepthStencilDescriptor
类型: const D3D12_CPU_DESCRIPTOR_HANDLE*
指向 D3D12_CPU_DESCRIPTOR_HANDLE 结构的指针,该结构描述 CPU 描述符句柄表示保存深度模具描述符的堆的开头。 如果此参数为 NULL,则不绑定深度模具描述符。
返回值
无
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d12.h |
Library | D3d12.lib |
DLL | D3d12.dll |