IDirect3DDevice9::D rawIndexedPrimitiveUP 方法 (d3d9.h)

使用用户内存指针指定的数据呈现指定的几何基元。

语法

HRESULT DrawIndexedPrimitiveUP(
  [in] D3DPRIMITIVETYPE PrimitiveType,
  [in] UINT             MinVertexIndex,
  [in] UINT             NumVertices,
  [in] UINT             PrimitiveCount,
  [in] const void       *pIndexData,
  [in] D3DFORMAT        IndexDataFormat,
  [in] const void       *pVertexStreamZeroData,
  [in] UINT             VertexStreamZeroStride
);

参数

[in] PrimitiveType

类型: D3DPRIMITIVETYPE

D3DPRIMITIVETYPE枚举类型的成员,描述要呈现的基元的类型。

[in] MinVertexIndex

类型: UINT

最小顶点索引。 这是一个从零开始的索引。

[in] NumVertices

类型: UINT

在此调用期间使用的顶点数。 第一个顶点位于索引处:MinVertexIndex。

[in] PrimitiveCount

类型: UINT

要呈现的基元数。 允许的最大基元数是通过检查 D3DCAPS9 结构的 MaxPrimitiveCount 成员来确定的, (索引数是基元计数的函数,基元类型) 。

[in] pIndexData

类型: const void*

指向索引数据的用户内存指针。

[in] IndexDataFormat

类型: D3DFORMAT

D3DFORMAT枚举类型的成员,用于描述索引数据的格式。 有效设置包括:

[in] pVertexStreamZeroData

类型: const void*

指向顶点数据的用户内存指针。 顶点数据必须位于流 0 中。

[in] VertexStreamZeroStride

类型: UINT

每个顶点的数据字节数。 此值不能为 0。

返回值

类型: HRESULT

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

注解

此方法适用于无法将其顶点数据存储在顶点缓冲区中的应用程序。 此方法仅支持单个顶点流,该流必须声明为流 0。

在任何 IDirect3DDevice9::D rawIndexedPrimitiveUP 调用之后, IDirect3DDevice9::GetStreamSource 引用的流 0 设置将设置为 NULL。 此外, IDirect3DDevice9::SetIndices 的 索引缓冲区设置为 NULL

传递到 IDirect3DDevice9::D rawIndexedPrimitiveUP 的顶点数据不需要在调用后保留。 Direct3D 在从调用返回之前完成对该数据的访问权限。

将旧应用程序转换为 Direct3D 9 时,必须添加对 IDirect3DDevice9::SetFVF 的调用以使用固定函数管道,或 添加对 IDirect3DDevice9::SetVertexDeclaration 的调用,以在进行任何 Draw 调用之前使用顶点着色器。

要求

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

另请参阅

IDirect3DDevice9

IDirect3DDevice9::DrawPrimitive

从顶点缓冲区和索引缓冲区呈现 (Direct3D 9)