d3d9.dllDrawIndexedPrimitiveUP
Microsoft DirectX 9.0 SDK Update (October 2004)

IDirect3DDevice9::DrawIndexedPrimitiveUP Method


Renders the specified geometric primitive with data specified by a user memory pointer.

Syntax

HRESULT DrawIndexedPrimitiveUP(      

    D3DPRIMITIVETYPE PrimitiveType,     UINT MinVertexIndex,     UINT NumVertices,     UINT PrimitiveCount,     const void *pIndexData,     D3DFORMAT IndexDataFormat,     CONST void* pVertexStreamZeroData,     UINT VertexStreamZeroStride );

Parameters

PrimitiveType
[in] Member of the D3DPRIMITIVETYPE enumerated type, describing the type of primitive to render.
MinVertexIndex
[in] Minimum vertex index. This is a zero based index.
NumVertices
[in]  Number of vertices used during this call. The first vertex is located at index: MinVertexIndex.
PrimitiveCount
[in] Number of primitives to render. The maximum number of primitives allowed is determined by checking the MaxPrimitiveCount member of the D3DCAPS9 structure (the number of indices is a function of the primitive count and the primitive type),
pIndexData
[in] User memory pointer to the index data.
IndexDataFormat
[in] Member of the D3DFORMAT enumerated type, describing the format of the index data. The valid settings are either:
  • D3DFMT_INDEX16
  • D3DFMT_INDEX32
pVertexStreamZeroData
[in] User memory pointer to the vertex data. The vertex data must be in stream 0.
VertexStreamZeroStride
[in] The number of bytes of data for each vertex.

Return Value

If the method succeeds, the return value is D3D_OK.

If the method fails, the return value can be the following:

D3DERR_INVALIDCALLThe method call is invalid. For example, a method's parameter may have an invalid value.


Remarks

This method is intended for use in applications that are unable to store their vertex data in vertex buffers. This method supports only a single vertex stream, which must be declared as stream 0.

Following any IDirect3DDevice9::DrawIndexedPrimitiveUP call, the stream 0 settings, referenced by IDirect3DDevice9::GetStreamSource, are set to NULL. Also, the index buffer setting for IDirect3DDevice9::SetIndices is set to NULL.

The vertex data passed to IDirect3DDevice9::DrawIndexedPrimitiveUP does not need to persist after the call. Microsoft Direct3D completes its access to that data prior to returning from the call.

When converting a fixed-function legacy application to Microsoft DirectX 9.0, you must add a call to IDirect3DDevice9::SetFVF before making any Draw calls.

See Also

Rendering from Vertex and Index Buffers, IDirect3DDevice9::DrawPrimitive


© 2004 Microsoft Corporation. All rights reserved.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center.