Share via


IMTLTexture Interface

Definition

System protocol for image data that is used by vertex shaders, fragment shaders, and compute kernels.

[Foundation.Protocol(Name="MTLTexture", WrapperType=typeof(Metal.MTLTextureWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:bytesPerImage:fromRegion:mipmapLevel:slice:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:fromRegion:mipmapLevel:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:slice:withBytes:bytesPerRow:bytesPerImage:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:withBytes:bytesPerRow:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateSharedTextureHandle", ReturnType=typeof(Metal.MTLSharedTextureHandle), Selector="newSharedTextureHandle")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Create", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange), typeof(Metal.MTLTextureSwizzleChannels) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:swizzle:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLTextureViewDescriptor) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithDescriptor:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="rootResource", IsProperty=true, IsRequired=true, IsStatic=false, Name="RootResource", PropertyType=typeof(Metal.IMTLResource), Selector="rootResource")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentTexture", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentTexture", PropertyType=typeof(Metal.IMTLTexture), Selector="parentTexture")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeLevel", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeLevel", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeLevel")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeSlice", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeSlice", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeSlice")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="buffer", IsProperty=true, IsRequired=true, IsStatic=false, Name="Buffer", PropertyType=typeof(Metal.IMTLBuffer), Selector="buffer")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferOffset", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferOffset", PropertyType=typeof(System.UIntPtr), Selector="bufferOffset")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferBytesPerRow", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferBytesPerRow", PropertyType=typeof(System.UIntPtr), Selector="bufferBytesPerRow")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="textureType", IsProperty=true, IsRequired=true, IsStatic=false, Name="TextureType", PropertyType=typeof(Metal.MTLTextureType), Selector="textureType")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="pixelFormat", IsProperty=true, IsRequired=true, IsStatic=false, Name="PixelFormat", PropertyType=typeof(Metal.MTLPixelFormat), Selector="pixelFormat")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="width", IsProperty=true, IsRequired=true, IsStatic=false, Name="Width", PropertyType=typeof(System.UIntPtr), Selector="width")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="height", IsProperty=true, IsRequired=true, IsStatic=false, Name="Height", PropertyType=typeof(System.UIntPtr), Selector="height")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="depth", IsProperty=true, IsRequired=true, IsStatic=false, Name="Depth", PropertyType=typeof(System.UIntPtr), Selector="depth")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="mipmapLevelCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="MipmapLevelCount", PropertyType=typeof(System.UIntPtr), Selector="mipmapLevelCount")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sampleCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="SampleCount", PropertyType=typeof(System.UIntPtr), Selector="sampleCount")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="arrayLength", IsProperty=true, IsRequired=true, IsStatic=false, Name="ArrayLength", PropertyType=typeof(System.UIntPtr), Selector="arrayLength")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isFramebufferOnly", IsProperty=true, IsRequired=true, IsStatic=false, Name="FramebufferOnly", PropertyType=typeof(System.Boolean), Selector="framebufferOnly")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="allowGPUOptimizedContents", IsProperty=true, IsRequired=true, IsStatic=false, Name="AllowGpuOptimizedContents", PropertyType=typeof(System.Boolean), Selector="allowGPUOptimizedContents")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="compressionType", IsProperty=true, IsRequired=true, IsStatic=false, Name="CompressionType", PropertyType=typeof(Metal.MTLTextureCompressionType), Selector="compressionType")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="usage", IsProperty=true, IsRequired=true, IsStatic=false, Name="Usage", PropertyType=typeof(Metal.MTLTextureUsage), Selector="usage")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurface", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurface", PropertyType=typeof(IOSurface.IOSurface), Selector="iosurface")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurfacePlane", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurfacePlane", PropertyType=typeof(System.UIntPtr), Selector="iosurfacePlane")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isShareable", IsProperty=true, IsRequired=true, IsStatic=false, Name="Shareable", PropertyType=typeof(System.Boolean), Selector="shareable")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="firstMipmapInTail", IsProperty=true, IsRequired=true, IsStatic=false, Name="FirstMipmapInTail", PropertyType=typeof(System.UIntPtr), Selector="firstMipmapInTail")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="tailSizeInBytes", IsProperty=true, IsRequired=true, IsStatic=false, Name="TailSizeInBytes", PropertyType=typeof(System.UIntPtr), Selector="tailSizeInBytes")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isSparse", IsProperty=true, IsRequired=true, IsStatic=false, Name="IsSparse", PropertyType=typeof(System.Boolean), Selector="isSparse")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="swizzle", IsProperty=true, IsRequired=true, IsStatic=false, Name="Swizzle", PropertyType=typeof(Metal.MTLTextureSwizzleChannels), Selector="swizzle")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="gpuResourceID", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuResourceId", PropertyType=typeof(Metal.MTLResourceId), Selector="gpuResourceID")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sparseTextureTier", IsProperty=true, IsRequired=true, IsStatic=false, Name="SparseTextureTier", PropertyType=typeof(Metal.MTLTextureSparseTier), Selector="sparseTextureTier")]
public interface IMTLTexture : IDisposable, Metal.IMTLResource
[Foundation.Protocol(Name="MTLTexture", WrapperType=typeof(Metal.MTLTextureWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:bytesPerImage:fromRegion:mipmapLevel:slice:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:fromRegion:mipmapLevel:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:slice:withBytes:bytesPerRow:bytesPerImage:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:withBytes:bytesPerRow:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateSharedTextureHandle", ReturnType=typeof(Metal.MTLSharedTextureHandle), Selector="newSharedTextureHandle")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Create", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange), typeof(Metal.MTLTextureSwizzleChannels) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:swizzle:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLTextureViewDescriptor) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithDescriptor:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="rootResource", IsProperty=true, IsRequired=true, IsStatic=false, Name="RootResource", PropertyType=typeof(Metal.IMTLResource), Selector="rootResource")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentTexture", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentTexture", PropertyType=typeof(Metal.IMTLTexture), Selector="parentTexture")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeLevel", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeLevel", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeLevel")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeSlice", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeSlice", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeSlice")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="buffer", IsProperty=true, IsRequired=true, IsStatic=false, Name="Buffer", PropertyType=typeof(Metal.IMTLBuffer), Selector="buffer")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferOffset", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferOffset", PropertyType=typeof(System.UIntPtr), Selector="bufferOffset")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferBytesPerRow", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferBytesPerRow", PropertyType=typeof(System.UIntPtr), Selector="bufferBytesPerRow")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="textureType", IsProperty=true, IsRequired=true, IsStatic=false, Name="TextureType", PropertyType=typeof(Metal.MTLTextureType), Selector="textureType")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="pixelFormat", IsProperty=true, IsRequired=true, IsStatic=false, Name="PixelFormat", PropertyType=typeof(Metal.MTLPixelFormat), Selector="pixelFormat")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="width", IsProperty=true, IsRequired=true, IsStatic=false, Name="Width", PropertyType=typeof(System.UIntPtr), Selector="width")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="height", IsProperty=true, IsRequired=true, IsStatic=false, Name="Height", PropertyType=typeof(System.UIntPtr), Selector="height")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="depth", IsProperty=true, IsRequired=true, IsStatic=false, Name="Depth", PropertyType=typeof(System.UIntPtr), Selector="depth")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="mipmapLevelCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="MipmapLevelCount", PropertyType=typeof(System.UIntPtr), Selector="mipmapLevelCount")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sampleCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="SampleCount", PropertyType=typeof(System.UIntPtr), Selector="sampleCount")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="arrayLength", IsProperty=true, IsRequired=true, IsStatic=false, Name="ArrayLength", PropertyType=typeof(System.UIntPtr), Selector="arrayLength")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isFramebufferOnly", IsProperty=true, IsRequired=true, IsStatic=false, Name="FramebufferOnly", PropertyType=typeof(System.Boolean), Selector="framebufferOnly")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="allowGPUOptimizedContents", IsProperty=true, IsRequired=true, IsStatic=false, Name="AllowGpuOptimizedContents", PropertyType=typeof(System.Boolean), Selector="allowGPUOptimizedContents")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="compressionType", IsProperty=true, IsRequired=true, IsStatic=false, Name="CompressionType", PropertyType=typeof(Metal.MTLTextureCompressionType), Selector="compressionType")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="usage", IsProperty=true, IsRequired=true, IsStatic=false, Name="Usage", PropertyType=typeof(Metal.MTLTextureUsage), Selector="usage")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurface", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurface", PropertyType=typeof(IOSurface.IOSurface), Selector="iosurface")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurfacePlane", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurfacePlane", PropertyType=typeof(System.UIntPtr), Selector="iosurfacePlane")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isShareable", IsProperty=true, IsRequired=true, IsStatic=false, Name="Shareable", PropertyType=typeof(System.Boolean), Selector="shareable")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="swizzle", IsProperty=true, IsRequired=true, IsStatic=false, Name="Swizzle", PropertyType=typeof(Metal.MTLTextureSwizzleChannels), Selector="swizzle")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="gpuResourceID", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuResourceId", PropertyType=typeof(Metal.MTLResourceId), Selector="gpuResourceID")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sparseTextureTier", IsProperty=true, IsRequired=true, IsStatic=false, Name="SparseTextureTier", PropertyType=typeof(Metal.MTLTextureSparseTier), Selector="sparseTextureTier")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="firstMipmapInTail", IsProperty=true, IsRequired=false, IsStatic=false, Name="FirstMipmapInTail", PropertyType=typeof(System.UIntPtr), Selector="firstMipmapInTail")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="tailSizeInBytes", IsProperty=true, IsRequired=false, IsStatic=false, Name="TailSizeInBytes", PropertyType=typeof(System.UIntPtr), Selector="tailSizeInBytes")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isSparse", IsProperty=true, IsRequired=false, IsStatic=false, Name="IsSparse", PropertyType=typeof(System.Boolean), Selector="isSparse")]
public interface IMTLTexture : IDisposable, Metal.IMTLResource
[Foundation.Protocol(Name="MTLTexture", WrapperType=typeof(Metal.MTLTextureWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:bytesPerImage:fromRegion:mipmapLevel:slice:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:fromRegion:mipmapLevel:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:slice:withBytes:bytesPerRow:bytesPerImage:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:withBytes:bytesPerRow:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateSharedTextureHandle", ReturnType=typeof(Metal.MTLSharedTextureHandle), Selector="newSharedTextureHandle")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Create", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange), typeof(Metal.MTLTextureSwizzleChannels) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:swizzle:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLTextureViewDescriptor) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithDescriptor:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="rootResource", IsProperty=true, IsRequired=true, IsStatic=false, Name="RootResource", PropertyType=typeof(Metal.IMTLResource), Selector="rootResource")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentTexture", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentTexture", PropertyType=typeof(Metal.IMTLTexture), Selector="parentTexture")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeLevel", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeLevel", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeLevel")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeSlice", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeSlice", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeSlice")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="buffer", IsProperty=true, IsRequired=true, IsStatic=false, Name="Buffer", PropertyType=typeof(Metal.IMTLBuffer), Selector="buffer")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferOffset", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferOffset", PropertyType=typeof(System.UIntPtr), Selector="bufferOffset")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferBytesPerRow", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferBytesPerRow", PropertyType=typeof(System.UIntPtr), Selector="bufferBytesPerRow")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="textureType", IsProperty=true, IsRequired=true, IsStatic=false, Name="TextureType", PropertyType=typeof(Metal.MTLTextureType), Selector="textureType")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="pixelFormat", IsProperty=true, IsRequired=true, IsStatic=false, Name="PixelFormat", PropertyType=typeof(Metal.MTLPixelFormat), Selector="pixelFormat")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="width", IsProperty=true, IsRequired=true, IsStatic=false, Name="Width", PropertyType=typeof(System.UIntPtr), Selector="width")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="height", IsProperty=true, IsRequired=true, IsStatic=false, Name="Height", PropertyType=typeof(System.UIntPtr), Selector="height")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="depth", IsProperty=true, IsRequired=true, IsStatic=false, Name="Depth", PropertyType=typeof(System.UIntPtr), Selector="depth")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="mipmapLevelCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="MipmapLevelCount", PropertyType=typeof(System.UIntPtr), Selector="mipmapLevelCount")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sampleCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="SampleCount", PropertyType=typeof(System.UIntPtr), Selector="sampleCount")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="arrayLength", IsProperty=true, IsRequired=true, IsStatic=false, Name="ArrayLength", PropertyType=typeof(System.UIntPtr), Selector="arrayLength")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isFramebufferOnly", IsProperty=true, IsRequired=true, IsStatic=false, Name="FramebufferOnly", PropertyType=typeof(System.Boolean), Selector="framebufferOnly")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="allowGPUOptimizedContents", IsProperty=true, IsRequired=true, IsStatic=false, Name="AllowGpuOptimizedContents", PropertyType=typeof(System.Boolean), Selector="allowGPUOptimizedContents")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="compressionType", IsProperty=true, IsRequired=true, IsStatic=false, Name="CompressionType", PropertyType=typeof(Metal.MTLTextureCompressionType), Selector="compressionType")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="usage", IsProperty=true, IsRequired=true, IsStatic=false, Name="Usage", PropertyType=typeof(Metal.MTLTextureUsage), Selector="usage")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurface", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurface", PropertyType=typeof(IOSurface.IOSurface), Selector="iosurface")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurfacePlane", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurfacePlane", PropertyType=typeof(System.UIntPtr), Selector="iosurfacePlane")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isShareable", IsProperty=true, IsRequired=true, IsStatic=false, Name="Shareable", PropertyType=typeof(System.Boolean), Selector="shareable")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="swizzle", IsProperty=true, IsRequired=true, IsStatic=false, Name="Swizzle", PropertyType=typeof(Metal.MTLTextureSwizzleChannels), Selector="swizzle")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="gpuResourceID", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuResourceId", PropertyType=typeof(Metal.MTLResourceId), Selector="gpuResourceID")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sparseTextureTier", IsProperty=true, IsRequired=true, IsStatic=false, Name="SparseTextureTier", PropertyType=typeof(Metal.MTLTextureSparseTier), Selector="sparseTextureTier")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="firstMipmapInTail", IsProperty=true, IsRequired=false, IsStatic=false, Name="FirstMipmapInTail", PropertyType=typeof(System.UIntPtr), Selector="firstMipmapInTail")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="tailSizeInBytes", IsProperty=true, IsRequired=false, IsStatic=false, Name="TailSizeInBytes", PropertyType=typeof(System.UIntPtr), Selector="tailSizeInBytes")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isSparse", IsProperty=true, IsRequired=false, IsStatic=false, Name="IsSparse", PropertyType=typeof(System.Boolean), Selector="isSparse")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRemoteTexture", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDevice) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newRemoteTextureViewForDevice:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="remoteStorageTexture", IsProperty=true, IsRequired=true, IsStatic=false, Name="RemoteStorageTexture", PropertyType=typeof(Metal.IMTLTexture), Selector="remoteStorageTexture")]
public interface IMTLTexture : IDisposable, Metal.IMTLResource
[<Foundation.Protocol(Name="MTLTexture", WrapperType=typeof(Metal.MTLTextureWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:bytesPerImage:fromRegion:mipmapLevel:slice:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:fromRegion:mipmapLevel:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:slice:withBytes:bytesPerRow:bytesPerImage:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:withBytes:bytesPerRow:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateSharedTextureHandle", ReturnType=typeof(Metal.MTLSharedTextureHandle), Selector="newSharedTextureHandle")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Create", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange), typeof(Metal.MTLTextureSwizzleChannels) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:swizzle:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLTextureViewDescriptor) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithDescriptor:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="rootResource", IsProperty=true, IsRequired=true, IsStatic=false, Name="RootResource", PropertyType=typeof(Metal.IMTLResource), Selector="rootResource")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentTexture", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentTexture", PropertyType=typeof(Metal.IMTLTexture), Selector="parentTexture")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeLevel", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeLevel", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeLevel")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeSlice", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeSlice", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeSlice")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="buffer", IsProperty=true, IsRequired=true, IsStatic=false, Name="Buffer", PropertyType=typeof(Metal.IMTLBuffer), Selector="buffer")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferOffset", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferOffset", PropertyType=typeof(System.UIntPtr), Selector="bufferOffset")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferBytesPerRow", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferBytesPerRow", PropertyType=typeof(System.UIntPtr), Selector="bufferBytesPerRow")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="textureType", IsProperty=true, IsRequired=true, IsStatic=false, Name="TextureType", PropertyType=typeof(Metal.MTLTextureType), Selector="textureType")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="pixelFormat", IsProperty=true, IsRequired=true, IsStatic=false, Name="PixelFormat", PropertyType=typeof(Metal.MTLPixelFormat), Selector="pixelFormat")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="width", IsProperty=true, IsRequired=true, IsStatic=false, Name="Width", PropertyType=typeof(System.UIntPtr), Selector="width")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="height", IsProperty=true, IsRequired=true, IsStatic=false, Name="Height", PropertyType=typeof(System.UIntPtr), Selector="height")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="depth", IsProperty=true, IsRequired=true, IsStatic=false, Name="Depth", PropertyType=typeof(System.UIntPtr), Selector="depth")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="mipmapLevelCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="MipmapLevelCount", PropertyType=typeof(System.UIntPtr), Selector="mipmapLevelCount")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sampleCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="SampleCount", PropertyType=typeof(System.UIntPtr), Selector="sampleCount")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="arrayLength", IsProperty=true, IsRequired=true, IsStatic=false, Name="ArrayLength", PropertyType=typeof(System.UIntPtr), Selector="arrayLength")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isFramebufferOnly", IsProperty=true, IsRequired=true, IsStatic=false, Name="FramebufferOnly", PropertyType=typeof(System.Boolean), Selector="framebufferOnly")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="allowGPUOptimizedContents", IsProperty=true, IsRequired=true, IsStatic=false, Name="AllowGpuOptimizedContents", PropertyType=typeof(System.Boolean), Selector="allowGPUOptimizedContents")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="compressionType", IsProperty=true, IsRequired=true, IsStatic=false, Name="CompressionType", PropertyType=typeof(Metal.MTLTextureCompressionType), Selector="compressionType")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="usage", IsProperty=true, IsRequired=true, IsStatic=false, Name="Usage", PropertyType=typeof(Metal.MTLTextureUsage), Selector="usage")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurface", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurface", PropertyType=typeof(IOSurface.IOSurface), Selector="iosurface")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurfacePlane", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurfacePlane", PropertyType=typeof(System.UIntPtr), Selector="iosurfacePlane")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isShareable", IsProperty=true, IsRequired=true, IsStatic=false, Name="Shareable", PropertyType=typeof(System.Boolean), Selector="shareable")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="firstMipmapInTail", IsProperty=true, IsRequired=true, IsStatic=false, Name="FirstMipmapInTail", PropertyType=typeof(System.UIntPtr), Selector="firstMipmapInTail")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="tailSizeInBytes", IsProperty=true, IsRequired=true, IsStatic=false, Name="TailSizeInBytes", PropertyType=typeof(System.UIntPtr), Selector="tailSizeInBytes")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isSparse", IsProperty=true, IsRequired=true, IsStatic=false, Name="IsSparse", PropertyType=typeof(System.Boolean), Selector="isSparse")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="swizzle", IsProperty=true, IsRequired=true, IsStatic=false, Name="Swizzle", PropertyType=typeof(Metal.MTLTextureSwizzleChannels), Selector="swizzle")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="gpuResourceID", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuResourceId", PropertyType=typeof(Metal.MTLResourceId), Selector="gpuResourceID")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sparseTextureTier", IsProperty=true, IsRequired=true, IsStatic=false, Name="SparseTextureTier", PropertyType=typeof(Metal.MTLTextureSparseTier), Selector="sparseTextureTier")>]
type IMTLTexture = interface
    interface INativeObject
    interface IDisposable
    interface IMTLAllocation
    interface IMTLResource
[<Foundation.Protocol(Name="MTLTexture", WrapperType=typeof(Metal.MTLTextureWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:bytesPerImage:fromRegion:mipmapLevel:slice:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:fromRegion:mipmapLevel:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:slice:withBytes:bytesPerRow:bytesPerImage:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:withBytes:bytesPerRow:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateSharedTextureHandle", ReturnType=typeof(Metal.MTLSharedTextureHandle), Selector="newSharedTextureHandle")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Create", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange), typeof(Metal.MTLTextureSwizzleChannels) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:swizzle:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLTextureViewDescriptor) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithDescriptor:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="rootResource", IsProperty=true, IsRequired=true, IsStatic=false, Name="RootResource", PropertyType=typeof(Metal.IMTLResource), Selector="rootResource")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentTexture", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentTexture", PropertyType=typeof(Metal.IMTLTexture), Selector="parentTexture")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeLevel", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeLevel", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeLevel")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeSlice", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeSlice", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeSlice")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="buffer", IsProperty=true, IsRequired=true, IsStatic=false, Name="Buffer", PropertyType=typeof(Metal.IMTLBuffer), Selector="buffer")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferOffset", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferOffset", PropertyType=typeof(System.UIntPtr), Selector="bufferOffset")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferBytesPerRow", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferBytesPerRow", PropertyType=typeof(System.UIntPtr), Selector="bufferBytesPerRow")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="textureType", IsProperty=true, IsRequired=true, IsStatic=false, Name="TextureType", PropertyType=typeof(Metal.MTLTextureType), Selector="textureType")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="pixelFormat", IsProperty=true, IsRequired=true, IsStatic=false, Name="PixelFormat", PropertyType=typeof(Metal.MTLPixelFormat), Selector="pixelFormat")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="width", IsProperty=true, IsRequired=true, IsStatic=false, Name="Width", PropertyType=typeof(System.UIntPtr), Selector="width")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="height", IsProperty=true, IsRequired=true, IsStatic=false, Name="Height", PropertyType=typeof(System.UIntPtr), Selector="height")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="depth", IsProperty=true, IsRequired=true, IsStatic=false, Name="Depth", PropertyType=typeof(System.UIntPtr), Selector="depth")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="mipmapLevelCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="MipmapLevelCount", PropertyType=typeof(System.UIntPtr), Selector="mipmapLevelCount")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sampleCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="SampleCount", PropertyType=typeof(System.UIntPtr), Selector="sampleCount")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="arrayLength", IsProperty=true, IsRequired=true, IsStatic=false, Name="ArrayLength", PropertyType=typeof(System.UIntPtr), Selector="arrayLength")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isFramebufferOnly", IsProperty=true, IsRequired=true, IsStatic=false, Name="FramebufferOnly", PropertyType=typeof(System.Boolean), Selector="framebufferOnly")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="allowGPUOptimizedContents", IsProperty=true, IsRequired=true, IsStatic=false, Name="AllowGpuOptimizedContents", PropertyType=typeof(System.Boolean), Selector="allowGPUOptimizedContents")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="compressionType", IsProperty=true, IsRequired=true, IsStatic=false, Name="CompressionType", PropertyType=typeof(Metal.MTLTextureCompressionType), Selector="compressionType")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="usage", IsProperty=true, IsRequired=true, IsStatic=false, Name="Usage", PropertyType=typeof(Metal.MTLTextureUsage), Selector="usage")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurface", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurface", PropertyType=typeof(IOSurface.IOSurface), Selector="iosurface")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurfacePlane", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurfacePlane", PropertyType=typeof(System.UIntPtr), Selector="iosurfacePlane")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isShareable", IsProperty=true, IsRequired=true, IsStatic=false, Name="Shareable", PropertyType=typeof(System.Boolean), Selector="shareable")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="swizzle", IsProperty=true, IsRequired=true, IsStatic=false, Name="Swizzle", PropertyType=typeof(Metal.MTLTextureSwizzleChannels), Selector="swizzle")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="gpuResourceID", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuResourceId", PropertyType=typeof(Metal.MTLResourceId), Selector="gpuResourceID")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sparseTextureTier", IsProperty=true, IsRequired=true, IsStatic=false, Name="SparseTextureTier", PropertyType=typeof(Metal.MTLTextureSparseTier), Selector="sparseTextureTier")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="firstMipmapInTail", IsProperty=true, IsRequired=false, IsStatic=false, Name="FirstMipmapInTail", PropertyType=typeof(System.UIntPtr), Selector="firstMipmapInTail")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="tailSizeInBytes", IsProperty=true, IsRequired=false, IsStatic=false, Name="TailSizeInBytes", PropertyType=typeof(System.UIntPtr), Selector="tailSizeInBytes")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isSparse", IsProperty=true, IsRequired=false, IsStatic=false, Name="IsSparse", PropertyType=typeof(System.Boolean), Selector="isSparse")>]
type IMTLTexture = interface
    interface INativeObject
    interface IDisposable
    interface IMTLAllocation
    interface IMTLResource
[<Foundation.Protocol(Name="MTLTexture", WrapperType=typeof(Metal.MTLTextureWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:bytesPerImage:fromRegion:mipmapLevel:slice:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetBytes", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(System.IntPtr), typeof(System.UIntPtr), typeof(Metal.MTLRegion), typeof(System.UIntPtr) }, Selector="getBytes:bytesPerRow:fromRegion:mipmapLevel:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:slice:withBytes:bytesPerRow:bytesPerImage:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="ReplaceRegion", ParameterByRef=new System.Boolean[] { false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLRegion), typeof(System.UIntPtr), typeof(System.IntPtr), typeof(System.UIntPtr) }, Selector="replaceRegion:mipmapLevel:withBytes:bytesPerRow:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateSharedTextureHandle", ReturnType=typeof(Metal.MTLSharedTextureHandle), Selector="newSharedTextureHandle")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="Create", ParameterByRef=new System.Boolean[] { false, false, false, false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLPixelFormat), typeof(Metal.MTLTextureType), typeof(Foundation.NSRange), typeof(Foundation.NSRange), typeof(Metal.MTLTextureSwizzleChannels) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithPixelFormat:textureType:levels:slices:swizzle:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTextureView", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLTextureViewDescriptor) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureViewWithDescriptor:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="rootResource", IsProperty=true, IsRequired=true, IsStatic=false, Name="RootResource", PropertyType=typeof(Metal.IMTLResource), Selector="rootResource")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentTexture", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentTexture", PropertyType=typeof(Metal.IMTLTexture), Selector="parentTexture")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeLevel", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeLevel", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeLevel")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="parentRelativeSlice", IsProperty=true, IsRequired=true, IsStatic=false, Name="ParentRelativeSlice", PropertyType=typeof(System.UIntPtr), Selector="parentRelativeSlice")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="buffer", IsProperty=true, IsRequired=true, IsStatic=false, Name="Buffer", PropertyType=typeof(Metal.IMTLBuffer), Selector="buffer")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferOffset", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferOffset", PropertyType=typeof(System.UIntPtr), Selector="bufferOffset")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="bufferBytesPerRow", IsProperty=true, IsRequired=true, IsStatic=false, Name="BufferBytesPerRow", PropertyType=typeof(System.UIntPtr), Selector="bufferBytesPerRow")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="textureType", IsProperty=true, IsRequired=true, IsStatic=false, Name="TextureType", PropertyType=typeof(Metal.MTLTextureType), Selector="textureType")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="pixelFormat", IsProperty=true, IsRequired=true, IsStatic=false, Name="PixelFormat", PropertyType=typeof(Metal.MTLPixelFormat), Selector="pixelFormat")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="width", IsProperty=true, IsRequired=true, IsStatic=false, Name="Width", PropertyType=typeof(System.UIntPtr), Selector="width")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="height", IsProperty=true, IsRequired=true, IsStatic=false, Name="Height", PropertyType=typeof(System.UIntPtr), Selector="height")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="depth", IsProperty=true, IsRequired=true, IsStatic=false, Name="Depth", PropertyType=typeof(System.UIntPtr), Selector="depth")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="mipmapLevelCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="MipmapLevelCount", PropertyType=typeof(System.UIntPtr), Selector="mipmapLevelCount")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sampleCount", IsProperty=true, IsRequired=true, IsStatic=false, Name="SampleCount", PropertyType=typeof(System.UIntPtr), Selector="sampleCount")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="arrayLength", IsProperty=true, IsRequired=true, IsStatic=false, Name="ArrayLength", PropertyType=typeof(System.UIntPtr), Selector="arrayLength")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isFramebufferOnly", IsProperty=true, IsRequired=true, IsStatic=false, Name="FramebufferOnly", PropertyType=typeof(System.Boolean), Selector="framebufferOnly")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="allowGPUOptimizedContents", IsProperty=true, IsRequired=true, IsStatic=false, Name="AllowGpuOptimizedContents", PropertyType=typeof(System.Boolean), Selector="allowGPUOptimizedContents")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="compressionType", IsProperty=true, IsRequired=true, IsStatic=false, Name="CompressionType", PropertyType=typeof(Metal.MTLTextureCompressionType), Selector="compressionType")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="usage", IsProperty=true, IsRequired=true, IsStatic=false, Name="Usage", PropertyType=typeof(Metal.MTLTextureUsage), Selector="usage")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurface", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurface", PropertyType=typeof(IOSurface.IOSurface), Selector="iosurface")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="iosurfacePlane", IsProperty=true, IsRequired=true, IsStatic=false, Name="IOSurfacePlane", PropertyType=typeof(System.UIntPtr), Selector="iosurfacePlane")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isShareable", IsProperty=true, IsRequired=true, IsStatic=false, Name="Shareable", PropertyType=typeof(System.Boolean), Selector="shareable")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="swizzle", IsProperty=true, IsRequired=true, IsStatic=false, Name="Swizzle", PropertyType=typeof(Metal.MTLTextureSwizzleChannels), Selector="swizzle")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="gpuResourceID", IsProperty=true, IsRequired=true, IsStatic=false, Name="GpuResourceId", PropertyType=typeof(Metal.MTLResourceId), Selector="gpuResourceID")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="sparseTextureTier", IsProperty=true, IsRequired=true, IsStatic=false, Name="SparseTextureTier", PropertyType=typeof(Metal.MTLTextureSparseTier), Selector="sparseTextureTier")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="firstMipmapInTail", IsProperty=true, IsRequired=false, IsStatic=false, Name="FirstMipmapInTail", PropertyType=typeof(System.UIntPtr), Selector="firstMipmapInTail")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="tailSizeInBytes", IsProperty=true, IsRequired=false, IsStatic=false, Name="TailSizeInBytes", PropertyType=typeof(System.UIntPtr), Selector="tailSizeInBytes")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="isSparse", IsProperty=true, IsRequired=false, IsStatic=false, Name="IsSparse", PropertyType=typeof(System.Boolean), Selector="isSparse")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateRemoteTexture", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.IMTLDevice) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newRemoteTextureViewForDevice:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="remoteStorageTexture", IsProperty=true, IsRequired=true, IsStatic=false, Name="RemoteStorageTexture", PropertyType=typeof(Metal.IMTLTexture), Selector="remoteStorageTexture")>]
type IMTLTexture = interface
    interface INativeObject
    interface IDisposable
    interface IMTLAllocation
    interface IMTLResource
Attributes
Implements

Properties

Name Description
AllocatedSize

Returns the allocated size of the resource.

(Inherited from IMTLResource)
AllowGpuOptimizedContents
ArrayLength
Buffer

Returns the buffer for the target texture.

BufferBytesPerRow

Gets the bytes per row in the buffer for the target texture.

BufferOffset

Gets the offset into the parent texture where the the target texture data begins.

CompressionType
CpuCacheMode (Inherited from IMTLResource)
Depth
Device (Inherited from IMTLResource)
FirstMipmapInTail
FramebufferOnly
GpuResourceId
Handle

Handle (pointer) to the unmanaged object representation.

(Inherited from INativeObject)
HazardTrackingMode (Inherited from IMTLResource)
Heap

Returns the heap that sub-allocated the resource.

(Inherited from IMTLResource)
HeapOffset (Inherited from IMTLResource)
Height
IOSurface

Gets the IOSurface that was used to create this texture, if one was used.

IOSurfacePlane

Returns the IOSurface plane used by the surface that is returned from IOSurface.

IsAliasable

Returns a Boolean value that tells whether future sub-allocations can alias the resource's memory.

(Inherited from IMTLResource)
IsSparse
Label (Inherited from IMTLResource)
MipmapLevelCount
ParentRelativeLevel

Returns the base level of the parent texture from which the target texture was created.

ParentRelativeSlice

Returns the base slice of the parent texture from which the target texture was created.

ParentTexture

Returns the parent texture.

PixelFormat
RemoteStorageTexture
ResourceOptions (Inherited from IMTLResource)
RootResource
SampleCount
Shareable
SparseTextureTier
StorageMode

Returns a description of the ___location and permissions of the resource.

(Inherited from IMTLResource)
Swizzle
TailSizeInBytes
TextureType
Usage

Gets a description of how the texture can be used. (For example, as a write target for compute shaders.)

Width

Methods

Name Description
Create(MTLPixelFormat, MTLTextureType, NSRange, NSRange, MTLTextureSwizzleChannels)
CreateRemoteTexture(IMTLDevice)
CreateSharedTextureHandle()
CreateTextureView(MTLPixelFormat, MTLTextureType, NSRange, NSRange)

Creates and returns a Metal texture that shares the same memory as the source object, but that is interpreted with the new pixel format.

CreateTextureView(MTLPixelFormat)
CreateTextureView(MTLTextureViewDescriptor)
GetBytes(IntPtr, UIntPtr, MTLRegion, UIntPtr)
GetBytes(IntPtr, UIntPtr, UIntPtr, MTLRegion, UIntPtr, UIntPtr)
MakeAliasable()

Makes the resource aliasable.

(Inherited from IMTLResource)
ReplaceRegion(MTLRegion, UIntPtr, IntPtr, UIntPtr)
ReplaceRegion(MTLRegion, UIntPtr, UIntPtr, IntPtr, UIntPtr, UIntPtr)
SetOwnerWithIdentity(UInt32) (Inherited from IMTLResource)
SetPurgeableState(MTLPurgeableState) (Inherited from IMTLResource)

Extension Methods

Name Description
GetCompressionType(IMTLTexture)
GetFirstMipmapInTail(IMTLTexture)
GetGpuResourceId(IMTLTexture)
GetIsSparse(IMTLTexture)
GetTailSizeInBytes(IMTLTexture)
GetHandle(INativeObject)
GetNonNullHandle(INativeObject, String)

Applies to