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

另请参阅

ID3D10Device 接口