IDirect3DDevice9::SetStreamSource 方法 (d3d9helper.h)

将顶点缓冲区绑定到设备数据流。 有关详细信息,请参阅将 Stream Source (Direct3D 9)

语法

HRESULT SetStreamSource(
  [in] UINT                   StreamNumber,
  [in] IDirect3DVertexBuffer9 *pStreamData,
  [in] UINT                   OffsetInBytes,
  [in] UINT                   Stride
);

参数

[in] StreamNumber

类型: UINT

指定数据流,范围为 0 到最大流数 -1。

[in] pStreamData

类型: IDirect3DVertexBuffer9*

指向 IDirect3DVertexBuffer9 接口的指针,表示要绑定到指定数据流的顶点缓冲区。

[in] OffsetInBytes

类型: UINT

从流开头到顶点数据开头的偏移量(以字节为单位)。 若要了解设备是否支持流偏移量,请参阅D3DDEVCAPS2中的 D3DDEVCAPS2_STREAMOFFSET常量。

[in] Stride

类型: UINT

组件的步幅(以字节为单位)。 请参阅“备注”。

返回值

类型: HRESULT

如果该方法成功,则返回值D3D_OK。 如果方法失败,则可以D3DERR_INVALIDCALL返回值。

注解

使用 FVF 顶点着色器时,顶点流的步幅必须与从 FVF 计算的顶点大小匹配。 使用声明时,步幅应大于或等于从声明计算的流大小。

调用 SetStreamSource 时,步幅通常需要等于顶点大小。 但是,有时可能需要绘制相同或类似几何图形 (的多个实例,例如使用实例绘制) 。 对于这种情况,请使用零步幅告知运行时不要递增顶点缓冲区偏移量 (即:对) 的所有实例使用相同的顶点数据。 有关实例化的详细信息,请参阅 高效绘制几何图形的多个实例 (Direct3D 9)

要求

要求
目标平台 Windows
标头 d3d9helper.h (包括 D3D9.h)
Library D3D9.lib

另请参阅

IDirect3DDevice9

IDirect3DDevice9::DrawIndexedPrimitive

IDirect3DDevice9::DrawIndexedPrimitiveUP

IDirect3DDevice9::DrawPrimitive

IDirect3DDevice9::DrawPrimitiveUP

IDirect3DDevice9::GetStreamSource

(Direct3D 9) 顶点缓冲区