DirectX SDK

IDirect3DDevice7::DrawPrimitiveStrided

The IDirect3DDevice7::DrawPrimitiveStrided method renders the specified array of strided vertices as a sequence of geometric primitives. For more information, see Strided Vertex Format.

HRESULT DrawPrimitiveStrided(
  D3DPRIMITIVETYPE dptPrimitiveType,  
  DWORD  dwVertexTypeDesc,            
  LPD3DDRAWPRIMITIVESTRIDEDDATA lpVertexArray,  
  DWORD  dwVertexCount,               
  DWORD  dwFlags                      
);

Parameters

dptPrimitiveType
Type of primitive to be rendered by this command. This must be one of the members of the D3DPRIMITIVETYPE enumerated type.
dwVertexTypeDesc
A combination of flexible vertex format flags that describes the vertex format.
lpVertexArray
Address of a D3DDRAWPRIMITIVESTRIDEDDATA structure that contains pointers and memory strides for the vertex components for this primitive, in the format specified by the flags in dwVertexTypeDesc.
dwVertexCount
Number of vertices in the array at lpVertexArray. The maximum number of vertices allowed is D3DMAXNUMVERTICES (0xFFFF).
dwFlags
Zero to render the primitive without waiting, or the following flag:
D3DDP_WAIT
Causes the method to wait until the polygons have been rendered before it returns, instead of returning as soon as the polygons have been sent to the card. (On scene-capture cards, the method returns as soon as the card responds.) This flag is typically used for debugging. Applications should not attempt to use this flag to ensure that a scene is up to date before continuing.

Return Values

If the method succeeds, the return value is DD_OK.

If the method fails, the return value can be one of the following values:

D3DERR_INVALIDRAMPTEXTURE
D3DERR_INVALIDPRIMITIVETYPE
D3DERR_INVALIDVERTEXTYPE
DDERR_INVALIDPARAMS
DDERR_WASSTILLDRAWING

Remarks

Be sure that the vertices being rendered match the vertex format that you specify. For performance reasons, Direct3D does not attempt to verify that vertex size and stride match the provided flexible vertex format. If a mismatch occurs, a memory fault is likely to result.

This method, unlike its predecessor in previous interfaces, does not accept the D3DDP_DONOTCLIP, D3DDP_DONOTLIGHT, and D3DDP_DONOTUPDATEEXTENTS flags in the dwFlags parameter. The functionality offered by these flags is now available through the D3DRENDERSTATE_CLIPPING, D3DRENDERSTATE_LIGHTING, and D3DRENDERSTATE_EXTENTS render states.

This method does not support transformed vertices. Therefore, if you include the D3DFVF_XYZRHW vertex format descriptor in the dwVertexTypeDesc parameter, the method fails, returning D3DERR_INVALIDVERTEXTYPE.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
  Windows CE: Unsupported.
  Version: Requires DirectX 7.0.
  Header: Declared in d3d.h.

See Also

IDirect3DDevice7::DrawPrimitive, IDirect3DDevice7::DrawPrimitiveVB, IDirect3DDevice7::DrawIndexedPrimitive, IDirect3DDevice7::DrawIndexedPrimitiveStrided, IDirect3DDevice7::DrawIndexedPrimitiveVB, Strided Vertex Format