DirectX 中绘制图元有两种类型的函数,一个是DrawPrimitiveUp,一个是DrawPrimitive,当然跟索引相关的也有两个类似的函
数,一个DrawIndexedPrimitiveUp,一个是DrawIndexedPrimitive;
HRESULT DrawPrimitiveUP(
[in] D3DPRIMITIVETYPE PrimitiveType,
[in] UINT PrimitiveCount,
[in] const void *pVertexStreamZeroData,
[in] UINT VertexStreamZeroStride
);
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
);
这个方法就是用数组来保存顶点的数据,而不是顶点缓存。它的缺点是要求所有的数据都放在stream 0中,因此不能够使用多流。优点是用这个函数去绘制图元时候,顶点的数据不用保存,原因是IDirect3DD
数,一个DrawIndexedPrimitiveUp,一个是DrawIndexedPrimitive;
HRESULT DrawPrimitiveUP(
[in] D3DPRIMITIVETYPE PrimitiveType,
[in] UINT PrimitiveCount,
[in] const void *pVertexStreamZeroData,
[in] UINT VertexStreamZeroStride
);
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
);
这个方法就是用数组来保存顶点的数据,而不是顶点缓存。它的缺点是要求所有的数据都放在stream 0中,因此不能够使用多流。优点是用这个函数去绘制图元时候,顶点的数据不用保存,原因是IDirect3DD