Interface MTLIndirectRenderCommand


  • public interface MTLIndirectRenderCommand
    Describes a CPU-recorded indirect render command API-Since: 12.0
    • Method Detail

      • drawIndexedPatchesPatchStartPatchCountPatchIndexBufferPatchIndexBufferOffsetControlPointIndexBufferControlPointIndexBufferOffsetInstanceCountBaseInstanceTessellationFactorBufferTessellationFactorBufferOffsetTessellationFactorBufferInstanceStride

        void drawIndexedPatchesPatchStartPatchCountPatchIndexBufferPatchIndexBufferOffsetControlPointIndexBufferControlPointIndexBufferOffsetInstanceCountBaseInstanceTessellationFactorBufferTessellationFactorBufferOffsetTessellationFactorBufferInstanceStride​(long numberOfPatchControlPoints,
                                                                                                                                                                                                                                                                   long patchStart,
                                                                                                                                                                                                                                                                   long patchCount,
                                                                                                                                                                                                                                                                   @Nullable
                                                                                                                                                                                                                                                                   @Nullable MTLBuffer patchIndexBuffer,
                                                                                                                                                                                                                                                                   long patchIndexBufferOffset,
                                                                                                                                                                                                                                                                   @NotNull
                                                                                                                                                                                                                                                                   @NotNull MTLBuffer controlPointIndexBuffer,
                                                                                                                                                                                                                                                                   long controlPointIndexBufferOffset,
                                                                                                                                                                                                                                                                   long instanceCount,
                                                                                                                                                                                                                                                                   long baseInstance,
                                                                                                                                                                                                                                                                   @NotNull
                                                                                                                                                                                                                                                                   @NotNull MTLBuffer buffer,
                                                                                                                                                                                                                                                                   long offset,
                                                                                                                                                                                                                                                                   long instanceStride)
      • drawIndexedPrimitivesIndexCountIndexTypeIndexBufferIndexBufferOffsetInstanceCountBaseVertexBaseInstance

        void drawIndexedPrimitivesIndexCountIndexTypeIndexBufferIndexBufferOffsetInstanceCountBaseVertexBaseInstance​(long primitiveType,
                                                                                                                     long indexCount,
                                                                                                                     long indexType,
                                                                                                                     @NotNull
                                                                                                                     @NotNull MTLBuffer indexBuffer,
                                                                                                                     long indexBufferOffset,
                                                                                                                     long instanceCount,
                                                                                                                     long baseVertex,
                                                                                                                     long baseInstance)
      • drawPatchesPatchStartPatchCountPatchIndexBufferPatchIndexBufferOffsetInstanceCountBaseInstanceTessellationFactorBufferTessellationFactorBufferOffsetTessellationFactorBufferInstanceStride

        void drawPatchesPatchStartPatchCountPatchIndexBufferPatchIndexBufferOffsetInstanceCountBaseInstanceTessellationFactorBufferTessellationFactorBufferOffsetTessellationFactorBufferInstanceStride​(long numberOfPatchControlPoints,
                                                                                                                                                                                                        long patchStart,
                                                                                                                                                                                                        long patchCount,
                                                                                                                                                                                                        @Nullable
                                                                                                                                                                                                        @Nullable MTLBuffer patchIndexBuffer,
                                                                                                                                                                                                        long patchIndexBufferOffset,
                                                                                                                                                                                                        long instanceCount,
                                                                                                                                                                                                        long baseInstance,
                                                                                                                                                                                                        @NotNull
                                                                                                                                                                                                        @NotNull MTLBuffer buffer,
                                                                                                                                                                                                        long offset,
                                                                                                                                                                                                        long instanceStride)
      • drawPrimitivesVertexStartVertexCountInstanceCountBaseInstance

        void drawPrimitivesVertexStartVertexCountInstanceCountBaseInstance​(long primitiveType,
                                                                           long vertexStart,
                                                                           long vertexCount,
                                                                           long instanceCount,
                                                                           long baseInstance)
      • reset

        void reset()
      • setFragmentBufferOffsetAtIndex

        void setFragmentBufferOffsetAtIndex​(@NotNull
                                            @NotNull MTLBuffer buffer,
                                            long offset,
                                            long index)
      • setRenderPipelineState

        void setRenderPipelineState​(@NotNull
                                    @NotNull MTLRenderPipelineState pipelineState)
        API-Since: 13.0
      • setVertexBufferOffsetAtIndex

        void setVertexBufferOffsetAtIndex​(@NotNull
                                          @NotNull MTLBuffer buffer,
                                          long offset,
                                          long index)
      • clearBarrier

        void clearBarrier()
        API-Since: 17.0
      • drawMeshThreadgroupsThreadsPerObjectThreadgroupThreadsPerMeshThreadgroup

        void drawMeshThreadgroupsThreadsPerObjectThreadgroupThreadsPerMeshThreadgroup​(MTLSize threadgroupsPerGrid,
                                                                                      MTLSize threadsPerObjectThreadgroup,
                                                                                      MTLSize threadsPerMeshThreadgroup)
        MTLIndirectCommandTypeDrawMeshThreadgroups API-Since: 17.0
      • drawMeshThreadsThreadsPerObjectThreadgroupThreadsPerMeshThreadgroup

        void drawMeshThreadsThreadsPerObjectThreadgroupThreadsPerMeshThreadgroup​(MTLSize threadsPerGrid,
                                                                                 MTLSize threadsPerObjectThreadgroup,
                                                                                 MTLSize threadsPerMeshThreadgroup)
        MTLIndirectCommandTypeDrawMeshThreads API-Since: 17.0
      • setBarrier

        void setBarrier()
        API-Since: 17.0
      • setMeshBufferOffsetAtIndex

        void setMeshBufferOffsetAtIndex​(@NotNull
                                        @NotNull MTLBuffer buffer,
                                        long offset,
                                        long index)
        API-Since: 17.0
      • setObjectBufferOffsetAtIndex

        void setObjectBufferOffsetAtIndex​(@NotNull
                                          @NotNull MTLBuffer buffer,
                                          long offset,
                                          long index)
        API-Since: 17.0
      • setObjectThreadgroupMemoryLengthAtIndex

        void setObjectThreadgroupMemoryLengthAtIndex​(long length,
                                                     long index)
        API-Since: 17.0
      • setVertexBufferOffsetAttributeStrideAtIndex

        void setVertexBufferOffsetAttributeStrideAtIndex​(@NotNull
                                                         @NotNull MTLBuffer buffer,
                                                         long offset,
                                                         long stride,
                                                         long index)
        sets vertex buffer at specified index with provided offset and stride. only call this when the buffer-index is part of the vertexDescriptor and has set its stride to `MTLBufferLayoutStrideDynamic` API-Since: 17.0