xamarinios
namespace Metal
{
    [Introduced(PlatformName.iOS, 8, 0, PlatformArchitecture.All, null)]
    [Introduced(PlatformName.MacOSX, 10, 11, PlatformArchitecture.All, null)]
    [Protocol(Name = "MTLDevice", WrapperType = typeof(MTLDeviceWrapper))]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateCommandQueue", ReturnType = typeof(IMTLCommandQueue), Selector = "newCommandQueue")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateDefaultLibrary", ReturnType = typeof(IMTLLibrary), Selector = "newDefaultLibrary")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateFence", ReturnType = typeof(IMTLFence), Selector = "newFence")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateEvent", ReturnType = typeof(IMTLEvent), Selector = "newEvent")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateSharedEvent", ReturnType = typeof(IMTLSharedEvent), Selector = "newSharedEvent")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "GetDefaultSamplePositions", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IntPtr), typeof(nuint) }, Selector = "getDefaultSamplePositions:count:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "ConvertSparseTileRegions", ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(IntPtr), typeof(MTLSize), typeof(nuint) }, Selector = "convertSparseTileRegions:toPixelRegions:withTileSize:numRegions:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "ConvertSparsePixelRegions", ParameterByRef = new[] { false, false, false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(IntPtr), typeof(MTLSize), typeof(MTLSparseTextureRegionAlignmentMode), typeof(nuint) }, Selector = "convertSparsePixelRegions:toTileRegions:withTileSize:alignmentMode:numRegions:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "GetHeapTextureSizeAndAlign", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLTextureDescriptor) }, ReturnType = typeof(MTLSizeAndAlign), Selector = "heapTextureSizeAndAlignWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "GetHeapBufferSizeAndAlignWithLength", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(nuint), typeof(MTLResourceOptions) }, ReturnType = typeof(MTLSizeAndAlign), Selector = "heapBufferSizeAndAlignWithLength:options:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateHeap", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLHeapDescriptor) }, ReturnType = typeof(IMTLHeap), Selector = "newHeapWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateCommandQueue", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(nuint) }, ReturnType = typeof(IMTLCommandQueue), Selector = "newCommandQueueWithMaxCommandBufferCount:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateBuffer", ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(nuint), typeof(MTLResourceOptions) }, ReturnType = typeof(IMTLBuffer), Selector = "newBufferWithLength:options:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(nuint), typeof(MTLResourceOptions) }, ReturnType = typeof(IMTLBuffer), Selector = "newBufferWithBytes:length:options:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateDepthStencilState", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLDepthStencilDescriptor) }, ReturnType = typeof(IMTLDepthStencilState), Selector = "newDepthStencilStateWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateTexture", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLTextureDescriptor) }, ReturnType = typeof(IMTLTexture), Selector = "newTextureWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateTexture", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLTextureDescriptor), typeof(IOSurface), typeof(nuint) }, ReturnType = typeof(IMTLTexture), Selector = "newTextureWithDescriptor:iosurface:plane:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateSharedTexture", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLTextureDescriptor) }, ReturnType = typeof(IMTLTexture), Selector = "newSharedTextureWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateSharedTexture", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLSharedTextureHandle) }, ReturnType = typeof(IMTLTexture), Selector = "newSharedTextureWithHandle:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateSamplerState", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLSamplerDescriptor) }, ReturnType = typeof(IMTLSamplerState), Selector = "newSamplerStateWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(string), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newLibraryWithFile:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(NSObject), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newLibraryWithData:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterByRef = new[] { false, false, true }, ParameterType = new[] { typeof(string), typeof(MTLCompileOptions), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newLibraryWithSource:options:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateLibrary", ParameterBlockProxy = new[] { null, null, typeof(NIDActionArity2V88) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(string), typeof(MTLCompileOptions), typeof(Action<IMTLLibrary, NSError>) }, Selector = "newLibraryWithSource:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(NSBundle), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newDefaultLibraryWithBundle:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRenderPipelineState", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(MTLRenderPipelineDescriptor), typeof(NSError) }, ReturnType = typeof(IMTLRenderPipelineState), Selector = "newRenderPipelineStateWithDescriptor:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRenderPipelineState", ParameterBlockProxy = new[] { null, typeof(NIDActionArity2V89) }, ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(MTLRenderPipelineDescriptor), typeof(Action<IMTLRenderPipelineState, NSError>) }, Selector = "newRenderPipelineStateWithDescriptor:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRenderPipelineState", ParameterByRef = new[] { false, false, true, true }, ParameterType = new[] { typeof(MTLRenderPipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLRenderPipelineReflection), typeof(NSError) }, ReturnType = typeof(IMTLRenderPipelineState), Selector = "newRenderPipelineStateWithDescriptor:options:reflection:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateRenderPipelineState", ParameterBlockProxy = new[] { null, null, typeof(NIDActionArity3V6) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLRenderPipelineDescriptor), typeof(MTLPipelineOption), typeof(Action<IMTLRenderPipelineState, MTLRenderPipelineReflection, NSError>) }, Selector = "newRenderPipelineStateWithDescriptor:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateComputePipelineState", ParameterByRef = new[] { false, false, true, true }, ParameterType = new[] { typeof(IMTLFunction), typeof(MTLPipelineOption), typeof(MTLComputePipelineReflection), typeof(NSError) }, ReturnType = typeof(IMTLComputePipelineState), Selector = "newComputePipelineStateWithFunction:options:reflection:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateComputePipelineState", ParameterBlockProxy = new[] { null, typeof(NIDActionArity2V90) }, ParameterByRef = new[] { false, false }, ParameterType = new[] { typeof(IMTLFunction), typeof(Action<IMTLComputePipelineState, NSError>) }, Selector = "newComputePipelineStateWithFunction:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateComputePipelineState", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(IMTLFunction), typeof(NSError) }, ReturnType = typeof(IMTLComputePipelineState), Selector = "newComputePipelineStateWithFunction:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateComputePipelineState", ParameterBlockProxy = new[] { null, null, typeof(NIDActionArity3V7) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(IMTLFunction), typeof(MTLPipelineOption), typeof(Action<IMTLComputePipelineState, MTLComputePipelineReflection, NSError>) }, Selector = "newComputePipelineStateWithFunction:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateComputePipelineState", ParameterByRef = new[] { false, false, true, true }, ParameterType = new[] { typeof(MTLComputePipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLComputePipelineReflection), typeof(NSError) }, ReturnType = typeof(IMTLComputePipelineState), Selector = "newComputePipelineStateWithDescriptor:options:reflection:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateComputePipelineState", ParameterBlockProxy = new[] { null, null, typeof(NIDMTLNewComputePipelineStateWithReflectionCompletionHandler) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLComputePipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLNewComputePipelineStateWithReflectionCompletionHandler) }, Selector = "newComputePipelineStateWithDescriptor:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "SupportsFeatureSet", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLFeatureSet) }, ReturnType = typeof(bool), Selector = "supportsFeatureSet:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SupportsTextureSampleCount", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(nuint) }, ReturnType = typeof(bool), Selector = "supportsTextureSampleCount:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateLibrary", ParameterByRef = new[] { false, true }, ParameterType = new[] { typeof(NSUrl), typeof(NSError) }, ReturnType = typeof(IMTLLibrary), Selector = "newLibraryWithURL:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "GetMinimumLinearTextureAlignment", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLPixelFormat) }, ReturnType = typeof(nuint), Selector = "minimumLinearTextureAlignmentForPixelFormat:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "GetMinimumTextureBufferAlignment", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLPixelFormat) }, ReturnType = typeof(nuint), Selector = "minimumTextureBufferAlignmentForPixelFormat:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateArgumentEncoder", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLArgumentDescriptor[]) }, ReturnType = typeof(IMTLArgumentEncoder), Selector = "newArgumentEncoderWithArguments:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateIndirectCommandBuffer", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLIndirectCommandBufferDescriptor), typeof(nuint), typeof(MTLResourceOptions) }, ReturnType = typeof(IMTLIndirectCommandBuffer), Selector = "newIndirectCommandBufferWithDescriptor:maxCommandCount:options:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateSharedEvent", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLSharedEventHandle) }, ReturnType = typeof(IMTLSharedEvent), Selector = "newSharedEventWithHandle:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateRenderPipelineState", ParameterByRef = new[] { false, false, true, true }, ParameterType = new[] { typeof(MTLTileRenderPipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLRenderPipelineReflection), typeof(NSError) }, ReturnType = typeof(IMTLRenderPipelineState), Selector = "newRenderPipelineStateWithTileDescriptor:options:reflection:error:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateRenderPipelineState", ParameterBlockProxy = new[] { null, null, typeof(NIDMTLNewRenderPipelineStateWithReflectionCompletionHandler) }, ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLTileRenderPipelineDescriptor), typeof(MTLPipelineOption), typeof(MTLNewRenderPipelineStateWithReflectionCompletionHandler) }, Selector = "newRenderPipelineStateWithTileDescriptor:options:completionHandler:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SupportsVertexAmplification", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(nuint) }, ReturnType = typeof(bool), Selector = "supportsVertexAmplificationCount:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SupportsRasterizationRateMap", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(nuint) }, ReturnType = typeof(bool), Selector = "supportsRasterizationRateMapWithLayerCount:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "GetSparseTileSize", ParameterByRef = new[] { false, false, false }, ParameterType = new[] { typeof(MTLTextureType), typeof(MTLPixelFormat), typeof(nuint) }, ReturnType = typeof(MTLSize), Selector = "sparseTileSizeWithTextureType:pixelFormat:sampleCount:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "CreateRasterizationRateMap", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLRasterizationRateMapDescriptor) }, ReturnType = typeof(IMTLRasterizationRateMap), Selector = "newRasterizationRateMapWithDescriptor:")]
    [ProtocolMember(IsProperty = false, IsRequired = false, IsStatic = false, Name = "SupportsFamily", ParameterByRef = new[] { false }, ParameterType = new[] { typeof(MTLGpuFamily) }, ReturnType = typeof(bool), Selector = "supportsFamily:")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "name", IsProperty = true, IsRequired = true, IsStatic = false, Name = "Name", PropertyType = typeof(string), Selector = "name")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "maxThreadsPerThreadgroup", IsProperty = true, IsRequired = false, IsStatic = false, Name = "MaxThreadsPerThreadgroup", PropertyType = typeof(MTLSize), Selector = "maxThreadsPerThreadgroup")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "readWriteTextureSupport", IsProperty = true, IsRequired = false, IsStatic = false, Name = "ReadWriteTextureSupport", PropertyType = typeof(MTLReadWriteTextureTier), Selector = "readWriteTextureSupport")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "argumentBuffersSupport", IsProperty = true, IsRequired = false, IsStatic = false, Name = "ArgumentBuffersSupport", PropertyType = typeof(MTLArgumentBuffersTier), Selector = "argumentBuffersSupport")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "areRasterOrderGroupsSupported", IsProperty = true, IsRequired = false, IsStatic = false, Name = "RasterOrderGroupsSupported", PropertyType = typeof(bool), Selector = "rasterOrderGroupsSupported")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "maxThreadgroupMemoryLength", IsProperty = true, IsRequired = false, IsStatic = false, Name = "MaxThreadgroupMemoryLength", PropertyType = typeof(nuint), Selector = "maxThreadgroupMemoryLength")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "maxArgumentBufferSamplerCount", IsProperty = true, IsRequired = false, IsStatic = false, Name = "MaxArgumentBufferSamplerCount", PropertyType = typeof(nuint), Selector = "maxArgumentBufferSamplerCount")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "areProgrammableSamplePositionsSupported", IsProperty = true, IsRequired = false, IsStatic = false, Name = "ProgrammableSamplePositionsSupported", PropertyType = typeof(bool), Selector = "programmableSamplePositionsSupported")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "maxBufferLength", IsProperty = true, IsRequired = false, IsStatic = false, Name = "MaxBufferLength", PropertyType = typeof(nuint), Selector = "maxBufferLength")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "registryID", IsProperty = true, IsRequired = false, IsStatic = false, Name = "RegistryId", PropertyType = typeof(ulong), Selector = "registryID")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "currentAllocatedSize", IsProperty = true, IsRequired = false, IsStatic = false, Name = "CurrentAllocatedSize", PropertyType = typeof(nuint), Selector = "currentAllocatedSize")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "sparseTileSizeInBytes", IsProperty = true, IsRequired = false, IsStatic = false, Name = "SparseTileSizeInBytes", PropertyType = typeof(nuint), Selector = "sparseTileSizeInBytes")]
    [ProtocolMember(ArgumentSemantic = ArgumentSemantic.None, GetterSelector = "hasUnifiedMemory", IsProperty = true, IsRequired = false, IsStatic = false, Name = "HasUnifiedMemory", PropertyType = typeof(bool), Selector = "hasUnifiedMemory")]
    [ProtocolMember(IsProperty = false, IsRequired = true, IsStatic = false, Name = "CreateBufferNoCopy", ParameterBlockProxy = new[] { null, null, null, typeof(NIDMTLDeallocator) }, ParameterByRef = new[] { false, false, false, false }, ParameterType = new[] { typeof(IntPtr), typeof(nuint), typeof(MTLResourceOptions), typeof(MTLDeallocator) }, ReturnType = typeof(IMTLBuffer), Selector = "newBufferWithBytesNoCopy:length:options:deallocator:")]
    public interface IMTLDevice : INativeObject, IDisposable
    {
        [BindingImpl(BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
        [Export("newBufferWithBytesNoCopy:length:options:deallocator:")]
        [Preserve(Conditional = true)]
        [return: Release]
        IMTLBuffer? CreateBufferNoCopy(IntPtr pointer, nuint length, MTLResourceOptions options, [BlockProxy(typeof(NIDMTLDeallocator))] MTLDeallocator! deallocator);
    }
}
Xamarin iOS 0.0
Xamarin macOS 0.0
Xamarin tvOS 0.0
Information specific to xamarinios
Assembly

Xamarin.iOS , Version=0.0.0.0, PublicKeyToken=84e04ff9cfb79065

Referencing

The API is automatically referenced.

Platform Restrictions

This framework does not have platform annotations.

  • Built-in API
  • Package-provided API

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