ID3D11DeviceContext1::D SGetConstantBuffers1 方法 (d3d11_1.h)

获取域着色器阶段使用的常量缓冲区。

语法

void DSGetConstantBuffers1(
  [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 未指定每个缓冲区中的常量数,则运行时会将 pNumConstants 设置为 NULL

返回值

备注

如果槽中没有绑定缓冲区, 则 pFirstConstConstantpNumConstants 对于该槽为 NULL

要求

要求
最低受支持的客户端 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 适用于 Windows Server 2008 R2 的Windows Server 2012和平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 d3d11_1.h
Library D3D11.lib

另请参阅

ID3D11DeviceContext1