ID3D11DeviceContext::CSSetConstantBuffers 方法 (d3d11.h)
设置计算着色器阶段使用的常量缓冲区。
语法
void CSSetConstantBuffers(
[in] UINT StartSlot,
[in] UINT NumBuffers,
[in, optional] ID3D11Buffer * const *ppConstantBuffers
);
参数
[in] StartSlot
类型: UINT
索引到从零开始的数组中,开始将常量缓冲区设置为 (范围为 0 到 D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1) 。
[in] NumBuffers
类型: UINT
要设置 (范围从 0 到 D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot) 的缓冲区数。
[in, optional] ppConstantBuffers
类型: ID3D11Buffer*
(向设备提供 ID3D11Buffer) 的常量缓冲区数组。
返回值
无
备注
方法将保存对传入的接口的引用。 这与 Direct3D 10 中的设备状态行为不同。
Direct3D 11.1 运行时(从 Windows 8 开始可用)可以将更多的 ID3D11Buffer 资源绑定到着色器,而不是着色器支持的最大常量缓冲区大小, (4096 个常量 – 每个) 4*32 位组件。 绑定如此大的缓冲区时,着色器只能访问缓冲区中的前 4096 个 4*32 位组件常量,就好像 4096 常量是缓冲区的完整大小一样。
如果应用程序希望着色器访问缓冲区的其他部分,则必须改为调用 CSSetConstantBuffers1 方法。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d11.h |
Library | D3D11.lib |