GraphicsDevice.DrawUserPrimitives Generic Method (PrimitiveType, T , Int32, Int32)

Draws primitives.

Syntax

'Declaration
Public Sub DrawUserPrimitives(Of T As ) ( _
         primitiveType As PrimitiveType, _
         vertexData As T(), _
         vertexOffset As Integer, _
         primitiveCount As Integer _
)
public void DrawUserPrimitives<T> (
         PrimitiveType primitiveType,
         T[] vertexData,
         int vertexOffset,
         int primitiveCount
) where T : 
public:
generic<typename T> where T : 
void DrawUserPrimitives(
         PrimitiveType primitiveType,
         T vertexData[],
         int vertexOffset,
         int primitiveCount
)

Type Parameters

  • T
    Per-vertex data type.

Parameters

  • primitiveType
    Type: PrimitiveType
    Describes the type of primitive to render.
  • vertexData
    Type: T
    The vertex data.
  • vertexOffset
    Type: Int32
    Offset (in vertices) from the beginning of the buffer to start reading data.
  • primitiveCount
    Type: Int32
    Number of primitives to render.

Exceptions

Exception type Condition
ArgumentException vertexOffset + numVertices is outside of the range of vertexData.
ArgumentNullException vertexData is null.
ArgumentOutOfRangeException

One of the following conditions is true:

  • primitiveCount is less than or equal to zero. When drawing, at least one primitive must be drawn.
  • vertexOffset is less than zero or greater than the length of vertexData.
InvalidOperationException

One of the following conditions is true:

  • A valid vertex shader and pixel shader was not set before calling DrawUserPrimitives. Both a valid vertex shader and pixel shader (or valid effect) must be set on the device before any draw operations may be performed.
  • vertexData is not a valid vertex buffer. A valid vertex buffer must be set on the device before any draw operations may be performed.

Remarks

This method is intended for use when drawing dynamic geometry specified by the user. It supports only a single vertex stream. The effect of this call is to use the provided vertex data pointer and stride for vertex stream 0. It is invalid to have the declaration of the current vertex shader refer to vertex streams other than stream 0.

The vertex data passed to DrawUserPrimitives does not need to persist after the call. Access to the data is completed before returning from the call.

Requirements

Namespace: Microsoft.Xna.Framework.Graphics

Assembly: Microsoft.Xna.Framework.Graphics (in microsoft.xna.framework.graphics.dll)

See Also

Reference

GraphicsDevice Class
GraphicsDevice Members
Microsoft.Xna.Framework.Graphics Namespace

Platforms

Windows Phone