ID3D11DeviceContext1::CSGetConstantBuffers1 方法 (d3d11_1.h)
获取计算着色器阶段使用的常量缓冲区。
语法
void CSGetConstantBuffers1(
[in] UINT StartSlot,
[in] UINT NumBuffers,
[out, optional] ID3D11Buffer **ppConstantBuffers,
[out, optional] UINT *pFirstConstant,
[out, optional] UINT *pNumConstants
);
参数
[in] StartSlot
索引到设备的从零开始的数组中,开始从 0 到 D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1) (范围检索常量缓冲区。
[in] NumBuffers
要检索的缓冲区数 (范围为 0 到 D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot) 。
[out, optional] ppConstantBuffers
方法要返回的常量缓冲区接口指针的数组。
[out, optional] pFirstConstant
指向数组的指针,该数组接收 ppConstantBuffers 指定的缓冲区中的偏移量。 每个偏移量指定从着色器的角度来看,每个常量缓冲区的开始位置。 每个偏移量以着色器常量度量,这些常量是 16 个字节 (4*32 位组件) 。 因此,偏移量为 2 表示关联常量缓冲区的开头为常量缓冲区的 32 个字节。 如果缓冲区没有偏移量,运行时会将 pFirstConstant 设置为 NULL 。
[out, optional] pNumConstants
指向数组的指针,该数组接收 ppConstantBuffers 指定的缓冲区中的常量数。 每个数字指定着色器使用的常量缓冲区中包含的常量数。 每个常量数从 pFirstConstant 数组中指定的相应偏移量开始。 如果运行时未指定每个缓冲区中的常量数,则运行时会将 pNumConstants 设置为 NULL 。
返回值
无
备注
如果槽中没有绑定缓冲区, 则 pFirstConstant 和 pNumConstants 对于该槽为 NULL 。
要求
最低受支持的客户端 | 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 和适用于 Windows Server 2008 R2 的平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d3d11_1.h |
Library | D3D11.lib |