Instance Method

drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:

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

Required.

Declaration

- (void)drawIndexedPrimitives:(MTLPrimitiveType)primitiveType indexCount:(NSUInteger)indexCount indexType:(MTLIndexType)indexType indexBuffer:(id<MTLBuffer>)indexBuffer indexBufferOffset:(NSUInteger)indexBufferOffset;

Parameters

primitiveType

The type of primitive that the vertices are assembled into.

indexCount

For each instance, the number of indices to read from the index buffer.

indexType

The data type of the indices.

indexBuffer

A buffer that contains indices to vertices.

indexBufferOffset

Byte offset within indexBuffer to start reading indices from.

Discussion

Primitive restart functionality is enabled with the largest unsigned integer index value, relative to indexType (0xFFFF for MTLIndexTypeUInt16 or 0xFFFFFFFF for MTLIndexTypeUInt32). This feature finishes drawing the current primitive at the specified index and starts drawing a new one with the next index.

indexBufferOffset must be aligned to 4 bytes.

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:instanceCount:

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

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.

- 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.