- IMTLArgumentEncoder - Alignment 
- Device 
- EncodedLength 
- Label 
- CreateArgumentEncoder(nuint) 
- CreateArgumentEncoder(nuint) 
- GetConstantData(nuint) 
- GetConstantData(nuint) 
- SetAccelerationStructure(IMTLAccelerationStructure, nuint) 
- SetArgumentBuffer(IMTLBuffer, nuint) 
- SetArgumentBuffer(IMTLBuffer, nuint) 
- SetArgumentBuffer(IMTLBuffer, nuint, nuint) 
- SetArgumentBuffer(IMTLBuffer, nuint, nuint) 
- SetBuffer(IMTLBuffer, nuint, nuint) 
- SetBuffer(IMTLBuffer, nuint, nuint) 
- SetBuffers(IMTLBuffer[], IntPtr, NSRange) 
- SetBuffers(nint, nint, NSRange) 
- SetComputePipelineState(IMTLComputePipelineState, nuint) 
- SetComputePipelineStates(IMTLComputePipelineState[], NSRange) 
- SetIndirectCommandBuffer(IMTLIndirectCommandBuffer, nuint) 
- SetIndirectCommandBuffers(IMTLIndirectCommandBuffer[], NSRange) 
- SetIntersectionFunctionTable(IMTLIntersectionFunctionTable, nuint) 
- SetIntersectionFunctionTables(IMTLIntersectionFunctionTable[], NSRange) 
- SetRenderPipelineState(IMTLRenderPipelineState, nuint) 
- SetRenderPipelineStates(IMTLRenderPipelineState[], NSRange) 
- SetSamplerState(IMTLSamplerState, nuint) 
- SetSamplerState(IMTLSamplerState, nuint) 
- SetSamplerStates(IMTLSamplerState[], NSRange) 
- SetTexture(IMTLTexture, nuint) 
- SetTexture(IMTLTexture, nuint) 
- SetTextures(IMTLTexture[], NSRange) 
- SetVisibleFunctionTable(IMTLVisibleFunctionTable, nuint) 
- SetVisibleFunctionTables(IMTLVisibleFunctionTable[], NSRange) 
- CreateArgumentEncoder(IMTLArgumentEncoder, nuint) 
- SetAccelerationStructure(IMTLArgumentEncoder, IMTLAccelerationStructure, nuint) 
- SetBuffers(IMTLArgumentEncoder, IMTLBuffer[], nint[], NSRange) 
- SetBuffers(IMTLArgumentEncoder, IMTLBuffer[], nuint[], NSRange) 
- SetComputePipelineState(IMTLArgumentEncoder, IMTLComputePipelineState, nuint) 
- SetComputePipelineStates(IMTLArgumentEncoder, IMTLComputePipelineState[], NSRange) 
- SetIndirectCommandBuffer(IMTLArgumentEncoder, IMTLIndirectCommandBuffer, nuint) 
- SetIndirectCommandBuffers(IMTLArgumentEncoder, IMTLIndirectCommandBuffer[], NSRange) 
- SetIntersectionFunctionTable(IMTLArgumentEncoder, IMTLIntersectionFunctionTable, nuint) 
- SetIntersectionFunctionTables(IMTLArgumentEncoder, IMTLIntersectionFunctionTable[], NSRange) 
- SetRenderPipelineState(IMTLArgumentEncoder, IMTLRenderPipelineState, nuint) 
- SetRenderPipelineStates(IMTLArgumentEncoder, IMTLRenderPipelineState[], NSRange) 
- SetVisibleFunctionTable(IMTLArgumentEncoder, IMTLVisibleFunctionTable, nuint) 
- SetVisibleFunctionTables(IMTLArgumentEncoder, IMTLVisibleFunctionTable[], NSRange) 
 
net9.0-ios17.2
    namespace Metal
{
    [Protocol(Name = "MTLArgumentEncoder", WrapperType = typeof(MTLArgumentEncoderWrapper))]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetArgumentBuffer", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr) }, Selector = "setArgumentBuffer:offset:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetArgumentBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setArgumentBuffer:startOffset:arrayElement:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLBuffer), typeof(UIntPtr), typeof(UIntPtr) }, Selector = "setBuffer:offset:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetBuffers", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(IntPtr), typeof(NSRange) }, Selector = "setBuffers:offsets:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetTexture", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLTexture), typeof(UIntPtr) }, Selector = "setTexture:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetTextures", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLTexture[]), typeof(NSRange) }, Selector = "setTextures:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetSamplerState", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLSamplerState), typeof(UIntPtr) }, Selector = "setSamplerState:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetSamplerStates", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLSamplerState[]), typeof(NSRange) }, Selector = "setSamplerStates:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetRenderPipelineState", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLRenderPipelineState), typeof(UIntPtr) }, Selector = "setRenderPipelineState:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetRenderPipelineStates", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLRenderPipelineState[]), typeof(NSRange) }, Selector = "setRenderPipelineStates:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetIndirectCommandBuffer", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLIndirectCommandBuffer), typeof(UIntPtr) }, Selector = "setIndirectCommandBuffer:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetIndirectCommandBuffers", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLIndirectCommandBuffer[]), typeof(NSRange) }, Selector = "setIndirectCommandBuffers:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetComputePipelineState", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLComputePipelineState), typeof(UIntPtr) }, Selector = "setComputePipelineState:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetComputePipelineStates", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLComputePipelineState[]), typeof(NSRange) }, Selector = "setComputePipelineStates:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetAccelerationStructure", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLAccelerationStructure), typeof(UIntPtr) }, Selector = "setAccelerationStructure:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetVisibleFunctionTable", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLVisibleFunctionTable), typeof(UIntPtr) }, Selector = "setVisibleFunctionTable:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetVisibleFunctionTables", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLVisibleFunctionTable[]), typeof(NSRange) }, Selector = "setVisibleFunctionTables:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetIntersectionFunctionTable", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLIntersectionFunctionTable), typeof(UIntPtr) }, Selector = "setIntersectionFunctionTable:atIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SetIntersectionFunctionTables", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLIntersectionFunctionTable[]), typeof(NSRange) }, Selector = "setIntersectionFunctionTables:withRange:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "GetConstantData", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(UIntPtr) }, ReturnType = typeof(IntPtr), Selector = "constantDataAtIndex:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateArgumentEncoder", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(UIntPtr) }, ReturnType = typeof(IMTLArgumentEncoder), Selector = "newArgumentEncoderForBufferAtIndex:")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "device", IsProperty = true, IsRequired = true, IsStatic = false, Name = "Device", PropertyType = typeof(IMTLDevice), Selector = "device")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "encodedLength", IsProperty = true, IsRequired = true, IsStatic = false, Name = "EncodedLength", PropertyType = typeof(UIntPtr), Selector = "encodedLength")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "alignment", IsProperty = true, IsRequired = true, IsStatic = false, Name = "Alignment", PropertyType = typeof(UIntPtr), Selector = "alignment")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "label", IsProperty = true, IsRequired = true, IsStatic = false, Name = "Label", PropertyType = typeof(string), Selector = "label", SetterSelector = "setLabel:")]
    [SupportedOSPlatform("maccatalyst")]
    [SupportedOSPlatform("ios")]
    [SupportedOSPlatform("macos")]
    [SupportedOSPlatform("tvos")]
    public interface IMTLArgumentEncoder : INativeObject, IDisposable
    {
        [Preserve(Conditional = true)]
        UIntPtr Alignment
        {
            [Export("alignment")]
            get;
        }
    }
}
            | .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 | The property getter is only supported on the following platforms: 
 | 
- Built-in API
- Package-provided API