ID3D11DeviceContext::SOSetTargets 方法 (d3d11.h)
为管道的流输出阶段设置目标输出缓冲区。
语法
void SOSetTargets(
[in] UINT NumBuffers,
[in, optional] ID3D11Buffer * const *ppSOTargets,
[in, optional] const UINT *pOffsets
);
参数
[in] NumBuffers
类型: UINT
要绑定到设备的缓冲区数。 最多可以设置四个输出缓冲区。 如果调用定义的少于 4 个,则剩余的缓冲区槽设置为 NULL。 请参阅“备注”。
[in, optional] ppSOTargets
类型: ID3D11Buffer*
输出缓冲区的数组 (请参阅要绑定到设备的 ID3D11Buffer) 。 缓冲区必须已使用 D3D11_BIND_STREAM_OUTPUT 标志创建。
[in, optional] pOffsets
类型: const UINT*
从 ppSOTargets 到输出缓冲区的偏移量数组,每个缓冲区有一个偏移量。 偏移值必须以字节为单位。
返回值
无
备注
偏移量 -1 将导致追加流输出缓冲区,在上一个流输出传递中写入缓冲区的最后一个位置之后继续。
使用当前绑定写入的缓冲区调用此方法将有效地绑定 NULL ,因为缓冲区不能同时绑定为输入和输出。
每当阻止资源作为输入和输出同时绑定时,调试层都会生成警告,但这不会阻止运行时使用无效数据。
方法将保存对传入的接口的引用。 这与 Direct3D 10 中的设备状态行为不同。
请注意,与 Direct3D 中的某些其他资源方法不同,所有当前绑定的目标都将通过调用 SOSetTargets(0, nullptr, nullptr);
取消绑定。
Windows Phone 8:支持此 API。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d11.h |
Library | D3D11.lib |