ID3D10Device::SOSetTargets 方法 (d3d10.h)
为 StreamOutput 阶段设置目标输出缓冲区,以启用/禁用流式传输数据的管道。
语法
void SOSetTargets(
[in] UINT NumBuffers,
[in] ID3D10Buffer * const *ppSOTargets,
[in] const UINT *pOffsets
);
参数
[in] NumBuffers
类型: UINT
要绑定到设备的缓冲区数。 最多可以设置四个输出缓冲区。 如果调用定义的少于 4 个,则剩余的缓冲区槽设置为 NULL。 请参阅“备注”。
[in] ppSOTargets
类型: ID3D10Buffer*
输出缓冲区的数组 (ID3D10Buffer) 绑定到设备。 缓冲区必须已使用 D3D10_BIND_STREAM_OUTPUT 标志创建。
[in] pOffsets
类型: const UINT*
从 ppSOTargets 到输出缓冲区的偏移量数组,每个缓冲区有一个偏移量。 偏移值必须以字节为单位。
返回值
无
备注
调用 ID3D10Device::SOSetTargets (之前,) 流式传输数据;使用 NULL 调用 SOSetTargets 以停止流式传输数据。有关示例,请参阅 GDC 2007 研讨会中的练习 01,该练习在调用 RenderInstanceToStream 函数中的绘制方法之前设置流输出呈现目标。
偏移量 -1 将导致追加流输出缓冲区,在上一个流输出传递中写入缓冲区的最后一个位置之后继续。
使用当前绑定写入的缓冲区调用此方法将有效地绑定 NULL ,因为缓冲区不能同时绑定为输入和输出。
每当阻止资源作为输入和输出同时绑定时, 调试层 都会生成警告,但这不会阻止运行时使用无效数据。
方法不会保存对传入的接口的引用。 因此,应用程序应小心不要释放设备当前正在使用的接口。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d10.h |
Library | D3D10.lib |