net9.0-ios17.2
namespace Metal
{
    [Protocol(Name = "MTLIndirectRenderCommand", WrapperType = typeof(MTLIndirectRenderCommandWrapper))]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "Reset", Selector = "reset")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SetBarrier", Selector = "setBarrier")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "ClearBarrier", Selector = "clearBarrier")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetRenderPipelineState", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(IMTLRenderPipelineState) }, Selector = "setRenderPipelineState:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetVertexBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setVertexBuffer:offset:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetFragmentBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setFragmentBuffer:offset:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "DrawPatches", ParameterByRef = new[] { false, false, false, false, false, false, false, false, false, false }, ParameterType = new[] { typeof(UIntPtr), typeof(UIntPtr), typeof(UIntPtr), typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr), typeof(UIntPtr), typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "drawPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "DrawIndexedPatches", ParameterByRef = new[] { false, false, false, false, false, false, false, false, false, false, false, false }, ParameterType = new[] { typeof(UIntPtr), typeof(UIntPtr), typeof(UIntPtr), typeof(IMTLBuffer), typeof(UIntPtr), typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr), typeof(UIntPtr), typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "drawIndexedPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:controlPointIndexBuffer:controlPointIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "DrawPrimitives", ParameterByRef = new[] { false, false, false, false, false }, ParameterType = new[] { typeof(MTLPrimitiveType), typeof(UIntPtr), typeof(UIntPtr), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "drawPrimitives:vertexStart:vertexCount:instanceCount:baseInstance:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "DrawIndexedPrimitives", ParameterByRef = new[] { false, false, false, false, false, false, false, false }, ParameterType = new[] { typeof(MTLPrimitiveType), typeof(UIntPtr), typeof(MTLIndexType), typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr), typeof(IntPtr), typeof(UIntPtr) }, Selector = "drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:baseVertex:baseInstance:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SetVertexBuffer", ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setVertexBuffer:offset:attributeStride:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SetObjectThreadgroupMemoryLength", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setObjectThreadgroupMemoryLength:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SetObjectBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setObjectBuffer:offset:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SetMeshBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setMeshBuffer:offset:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "DrawMeshThreadgroups", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLSize), typeof(MTLSize), typeof(MTLSize) }, Selector = "drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "DrawMeshThreads", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLSize), typeof(MTLSize), typeof(MTLSize) }, Selector = "drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup:")]
    [SupportedOSPlatform("maccatalyst")]
    [SupportedOSPlatform("ios")]
    [SupportedOSPlatform("macos")]
    [SupportedOSPlatform("tvos")]
    public interface IMTLIndirectRenderCommand : INativeObject, IDisposable
    {
        [BindingImpl(BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
        [Export("drawPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride:")]
        [Preserve(Conditional = true)]
        [SupportedOSPlatform("tvos14.5")]
        [SupportedOSPlatform("maccatalyst")]
        [SupportedOSPlatform("ios")]
        [SupportedOSPlatform("macos")]
        void DrawPatches(UIntPtr numberOfPatchControlPoints, UIntPtr patchStart, UIntPtr patchCount, IMTLBuffer? patchIndexBuffer, UIntPtr patchIndexBufferOffset, UIntPtr instanceCount, UIntPtr baseInstance, IMTLBuffer! buffer, UIntPtr offset, UIntPtr instanceStride);
    }
}
.NET 6.07.08.09.0
Information specific to net9.0
Platforms This API is only available when you target a specific platform:
iOS 10.010.110.210.311.011.111.211.311.412.012.112.212.312.413.013.113.213.313.413.513.614.014.114.214.314.414.515.015.215.416.016.116.216.417.017.2
Mac Catalyst 13.113.213.313.413.514.214.314.414.515.015.215.416.116.216.417.017.2
macOS 10.1410.1510.1611.011.111.211.312.012.112.313.013.113.314.014.2
tvOS 10.010.110.211.011.111.211.311.412.012.112.212.312.413.013.213.313.414.014.214.314.414.515.015.215.416.016.116.417.017.2
Information specific to net9.0-ios17.2
Assembly

Microsoft.iOS , Version=17.2.0.0, PublicKeyToken=84e04ff9cfb79065

Referencing

The API is automatically referenced.

Platform Restrictions

This API is only supported on the following platforms:

  • iOS
  • Mac Catalyst
  • macOS
  • tvOS >= 14.5
  • Built-in API
  • Package-provided API

11/26/2024
An error has occurred. This application may no longer respond until reloaded. Reload 🗙