ID3D10Device::OMSetRenderTargets 方法 (d3d10.h)

将一个或多个呈现目标和深度模具缓冲区绑定到 输出合并阶段

语法

void OMSetRenderTargets(
  [in] UINT                   NumViews,
  [in] ID3D10RenderTargetView * const *ppRenderTargetViews,
  [in] ID3D10DepthStencilView *pDepthStencilView
);

参数

[in] NumViews

类型: UINT

要绑定的呈现目标数。

[in] ppRenderTargetViews

类型: ID3D10RenderTargetView*

指向呈现目标数组的指针 (请参阅要绑定到设备的 ID3D10RenderTargetView) 。 如果此参数为 NULL,则不绑定呈现器目标。 请参阅“备注”。

[in] pDepthStencilView

类型: ID3D10DepthStencilView*

指向深度模具视图的指针 (请参阅要绑定到设备的 ID3D10DepthStencilView) 。 如果此参数为 NULL,则不绑定深度模具状态。

返回值

备注

调用 OMSetRenderTargets 将覆盖所有边界呈现目标和深度模具目标,而不考虑 ppRenderTargetViews 中的呈现目标数。

设备在任何给定时间可以具有活动状态的最大呈现目标数由 D3D10.h 中的 #define 设置D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT。 尝试将同一 子资源 设置为多个呈现目标槽无效。

如果任何子资源当前也绑定用于读取或写入 (可能位于 管道) 的不同部分,则这些绑定点将为 NULL,以防止在单个呈现操作中同时读取和写入同一子资源。

方法不会保存对传入的接口的引用。 因此,应用程序应小心不要释放设备当前正在使用的接口。

有关 绑定资源 的详细信息,请参阅绑定资源和管道阶段。

像素着色器必须能够同时呈现到至少八个单独的呈现目标。 所有这些呈现目标都必须访问相同类型的资源: BufferTexture1DTexture1DArrayTexture2DTexture2DArrayTexture3DTextureCube。 所有呈现器目标在所有维度上的尺寸必须相同(宽度和高度,3D 深度或 *Array 类型的数组大小)。 如果呈现目标使用多重采样抗锯齿,则所有绑定的呈现目标和深度缓冲区必须是同一形式的多采样资源 (即,样本计数必须是相同的) 。 每个呈现目标可以具有不同的数据格式。 这些呈现目标格式不需要具有相同的每个元素的位计数。

呈现器目标的 8 个槽的任意组合都可以设置或未设置呈现器目标。

同一资源视图不能同时绑定到多个呈现目标槽。 但是,可以将单个资源的多个非重叠资源视图设置为同时多个呈现目标。

要求

要求
目标平台 Windows
标头 d3d10.h
Library D3D10.lib

另请参阅

ID3D10Device 接口