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,则内存布局如下所示:

参数设置为 true 的内存布局 在这种情况下,驱动程序取消引用句柄,然后递增指向的内存。

False 表示句柄是 NumRenderTargetDescriptors 句柄 数组中的第一个。 假大小写允许应用程序一次从不同位置绑定一组描述符。 同样,假设 NumRenderTargetDescriptors 为 3,内存布局如下所示:

参数设置为 false 的内存布局 在这种情况下,驱动程序取消引用三个应在内存中彼此相邻的句柄。

[in, optional] pDepthStencilDescriptor

类型: const D3D12_CPU_DESCRIPTOR_HANDLE*

指向 D3D12_CPU_DESCRIPTOR_HANDLE 结构的指针,该结构描述 CPU 描述符句柄表示保存深度模具描述符的堆的开头。 如果此参数为 NULL,则不绑定深度模具描述符。

返回值

要求

要求
目标平台 Windows
标头 d3d12.h
Library D3d12.lib
DLL D3d12.dll

另请参阅

ID3D12GraphicsCommandList