Instance Method

drawPrimitives:vertexStart:vertexCount:instanceCount:

Encodes a command to render a number of instances of primitives using vertex data in contiguous array elements.

Required.

Declaration

- (void)drawPrimitives:(MTLPrimitiveType)primitiveType vertexStart:(NSUInteger)vertexStart vertexCount:(NSUInteger)vertexCount instanceCount:(NSUInteger)instanceCount;

Parameters

primitiveType

The type of primitives that the vertices are assembled into.

vertexStart

The first vertex to draw.

vertexCount

The number of vertices to draw.

instanceCount

The number of instances to draw.

Discussion

An instance starts with the first vertex at the array element with index vertexStart and ends at the array element with index vertexStart + vertexCount - 1. The value of instanceCount determines the number of instances to draw.

When a draw command is encoded, any necessary references to rendering state or resources previously set on the encoder are recorded as part of the command. After encoding a command, you can safely change the encoding state to set up parameters needed to encode other commands.

See Also

Drawing Geometric Primitives and Tessellated Patches

- drawPrimitives:vertexStart:vertexCount:instanceCount:baseInstance:

Encodes a command to render a number of instances of primitives using vertex data in contiguous array elements, starting from the base instance.

Required.

- drawPrimitives:vertexStart:vertexCount:

Encodes a command to render one instance of primitives using vertex data in contiguous array elements.

Required.

- drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:baseVertex:baseInstance:

Encodes a command to render a number of instances of primitives using an index list specified in a buffer, starting from the base vertex of the base instance.

Required.

- drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:

Encodes a command to render a number of instances of primitives using an index list specified in a buffer.

Required.

- drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:

Encodes a command to render one instance of primitives using an index list specified in a buffer.

Required.

- drawPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:instanceCount:baseInstance:

Encodes a command to render a number of instances of tessellated patches.

Required.

- drawIndexedPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:controlPointIndexBuffer:controlPointIndexBufferOffset:instanceCount:baseInstance:

Encodes a command to render a number of instances of tessellated patches, using a control point index buffer.

Required.

MTLPrimitiveType

The geometric primitive type for drawing commands.

MTLIndexType

The index type for an index buffer that references vertices of geometric primitives.

MTLQuadTessellationFactorsHalf

The per-patch tessellation factors for a quad patch.

MTLTriangleTessellationFactorsHalf

The per-patch tessellation factors for a triangle patch.