Protocol

MTLIndirectRenderCommand

A render command in an indirect command buffer.

Declaration

@protocol MTLIndirectRenderCommand

Overview

Don’t implement this protocol; you get objects of this type by asking a MTLIndirectCommandBuffer for them.

Use this object to reset or encode a command. You must always reset a command before encoding a new command.

Topics

Setting Command Arguments

- setRenderPipelineState:

Sets the render pipeline state object used by the command.

Required.

- setVertexBuffer:offset:atIndex:

Sets a vertex buffer argument for the command.

Required.

- setFragmentBuffer:offset:atIndex:

Sets a fragment buffer argument for the command.

Required.

Encoding a Drawing Command

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

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

Resetting a Command

- reset

Resets the command to its default state.

Required.

Relationships

Inherits From

See Also

Essentials

Creating an Indirect Command Buffer

Configure a descriptor to specify the properties of an indirect command buffer.

MTLIndirectCommandBufferDescriptor

An object that configures new MTLIndirectCommandBuffer objects.

MTLIndirectCommandBuffer

A command buffer containing reusable commands, encoded either on the CPU or GPU.

MTLIndirectComputeCommand

A compute command in an indirect command buffer.

MTLIndirectCommandBufferExecutionRange

A range of commands in an indirect command buffer.

MTLIndirectCommandBufferExecutionRangeMake

Creates a command execution range.