ID3D10Device::OMSetRenderTargets 方法 (d3d10.h)
将一个或多个呈现目标和深度模具缓冲区绑定到 输出合并阶段。
语法
void OMSetRenderTargets(
[in] UINT NumViews,
[in] ID3D10RenderTargetView * const *ppRenderTargetViews,
[in] ID3D10DepthStencilView *pDepthStencilView
);
参数
[in] NumViews
类型: UINT
要绑定的呈现目标数。
[in] ppRenderTargetViews
指向呈现目标数组的指针 (请参阅要绑定到设备的 ID3D10RenderTargetView) 。 如果此参数为 NULL,则不绑定呈现器目标。 请参阅“备注”。
[in] pDepthStencilView
指向深度模具视图的指针 (请参阅要绑定到设备的 ID3D10DepthStencilView) 。 如果此参数为 NULL,则不绑定深度模具状态。
返回值
无
备注
调用 OMSetRenderTargets 将覆盖所有边界呈现目标和深度模具目标,而不考虑 ppRenderTargetViews 中的呈现目标数。
设备在任何给定时间可以具有活动状态的最大呈现目标数由 D3D10.h 中的 #define 设置D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT。 尝试将同一 子资源 设置为多个呈现目标槽无效。
如果任何子资源当前也绑定用于读取或写入 (可能位于 管道) 的不同部分,则这些绑定点将为 NULL,以防止在单个呈现操作中同时读取和写入同一子资源。
方法不会保存对传入的接口的引用。 因此,应用程序应小心不要释放设备当前正在使用的接口。
有关 绑定资源 的详细信息,请参阅绑定资源和管道阶段。
像素着色器必须能够同时呈现到至少八个单独的呈现目标。 所有这些呈现目标都必须访问相同类型的资源: Buffer、 Texture1D、 Texture1DArray、 Texture2D、 Texture2DArray、 Texture3D 或 TextureCube。 所有呈现器目标在所有维度上的尺寸必须相同(宽度和高度,3D 深度或 *Array 类型的数组大小)。 如果呈现目标使用多重采样抗锯齿,则所有绑定的呈现目标和深度缓冲区必须是同一形式的多采样资源 (即,样本计数必须是相同的) 。 每个呈现目标可以具有不同的数据格式。 这些呈现目标格式不需要具有相同的每个元素的位计数。
呈现器目标的 8 个槽的任意组合都可以设置或未设置呈现器目标。
同一资源视图不能同时绑定到多个呈现目标槽。 但是,可以将单个资源的多个非重叠资源视图设置为同时多个呈现目标。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d10.h |
Library | D3D10.lib |