Share via


IMTLHeap Interface

Definition

This interface represents the Objective-C protocol MTLHeap.

[Foundation.Protocol(Name="MTLHeap", WrapperType=typeof(Metal.MTLHeapWrapper))]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetMaxAvailableSize", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.UIntPtr) }, ReturnType=typeof(System.UIntPtr), Selector="maxAvailableSizeWithAlignment:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(Metal.MTLResourceOptions) }, ReturnType=typeof(Metal.IMTLBuffer), Selector="newBufferWithLength:options:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTexture", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLTextureDescriptor) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetPurgeableState", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLPurgeableState) }, ReturnType=typeof(Metal.MTLPurgeableState), Selector="setPurgeableState:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(Metal.MTLResourceOptions), typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLBuffer), Selector="newBufferWithLength:options:offset:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTexture", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLTextureDescriptor), typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureWithDescriptor:offset:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructure", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLAccelerationStructure), Selector="newAccelerationStructureWithSize:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructure", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructureDescriptor) }, ReturnType=typeof(Metal.IMTLAccelerationStructure), Selector="newAccelerationStructureWithDescriptor:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLAccelerationStructure), Selector="newAccelerationStructureWithSize:offset:")]
[Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructureDescriptor), typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLAccelerationStructure), Selector="newAccelerationStructureWithDescriptor:offset:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="device", IsProperty=true, IsRequired=true, IsStatic=false, Name="Device", PropertyType=typeof(Metal.IMTLDevice), Selector="device")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="storageMode", IsProperty=true, IsRequired=true, IsStatic=false, Name="StorageMode", PropertyType=typeof(Metal.MTLStorageMode), Selector="storageMode")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="cpuCacheMode", IsProperty=true, IsRequired=true, IsStatic=false, Name="CpuCacheMode", PropertyType=typeof(Metal.MTLCpuCacheMode), Selector="cpuCacheMode")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="size", IsProperty=true, IsRequired=true, IsStatic=false, Name="Size", PropertyType=typeof(System.UIntPtr), Selector="size")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="usedSize", IsProperty=true, IsRequired=true, IsStatic=false, Name="UsedSize", PropertyType=typeof(System.UIntPtr), Selector="usedSize")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="currentAllocatedSize", IsProperty=true, IsRequired=true, IsStatic=false, Name="CurrentAllocatedSize", PropertyType=typeof(System.UIntPtr), Selector="currentAllocatedSize")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="hazardTrackingMode", IsProperty=true, IsRequired=true, IsStatic=false, Name="HazardTrackingMode", PropertyType=typeof(Metal.MTLHazardTrackingMode), Selector="hazardTrackingMode")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="resourceOptions", IsProperty=true, IsRequired=true, IsStatic=false, Name="ResourceOptions", PropertyType=typeof(Metal.MTLResourceOptions), Selector="resourceOptions")]
[Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="type", IsProperty=true, IsRequired=true, IsStatic=false, Name="Type", PropertyType=typeof(Metal.MTLHeapType), Selector="type")]
public interface IMTLHeap : IDisposable, Metal.IMTLAllocation
[<Foundation.Protocol(Name="MTLHeap", WrapperType=typeof(Metal.MTLHeapWrapper))>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="GetMaxAvailableSize", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.UIntPtr) }, ReturnType=typeof(System.UIntPtr), Selector="maxAvailableSizeWithAlignment:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBuffer", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(Metal.MTLResourceOptions) }, ReturnType=typeof(Metal.IMTLBuffer), Selector="newBufferWithLength:options:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTexture", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLTextureDescriptor) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="SetPurgeableState", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLPurgeableState) }, ReturnType=typeof(Metal.MTLPurgeableState), Selector="setPurgeableState:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateBuffer", ParameterByRef=new System.Boolean[] { false, false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(Metal.MTLResourceOptions), typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLBuffer), Selector="newBufferWithLength:options:offset:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateTexture", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLTextureDescriptor), typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLTexture), Selector="newTextureWithDescriptor:offset:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructure", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLAccelerationStructure), Selector="newAccelerationStructureWithSize:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructure", ParameterByRef=new System.Boolean[] { false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructureDescriptor) }, ReturnType=typeof(Metal.IMTLAccelerationStructure), Selector="newAccelerationStructureWithDescriptor:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(System.UIntPtr), typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLAccelerationStructure), Selector="newAccelerationStructureWithSize:offset:")>]
[<Foundation.ProtocolMember(IsProperty=false, IsRequired=true, IsStatic=false, Name="CreateAccelerationStructure", ParameterByRef=new System.Boolean[] { false, false }, ParameterType=new System.Type[] { typeof(Metal.MTLAccelerationStructureDescriptor), typeof(System.UIntPtr) }, ReturnType=typeof(Metal.IMTLAccelerationStructure), Selector="newAccelerationStructureWithDescriptor:offset:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="label", IsProperty=true, IsRequired=true, IsStatic=false, Name="Label", PropertyType=typeof(System.String), Selector="label", SetterSelector="setLabel:")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="device", IsProperty=true, IsRequired=true, IsStatic=false, Name="Device", PropertyType=typeof(Metal.IMTLDevice), Selector="device")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="storageMode", IsProperty=true, IsRequired=true, IsStatic=false, Name="StorageMode", PropertyType=typeof(Metal.MTLStorageMode), Selector="storageMode")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="cpuCacheMode", IsProperty=true, IsRequired=true, IsStatic=false, Name="CpuCacheMode", PropertyType=typeof(Metal.MTLCpuCacheMode), Selector="cpuCacheMode")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="size", IsProperty=true, IsRequired=true, IsStatic=false, Name="Size", PropertyType=typeof(System.UIntPtr), Selector="size")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="usedSize", IsProperty=true, IsRequired=true, IsStatic=false, Name="UsedSize", PropertyType=typeof(System.UIntPtr), Selector="usedSize")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="currentAllocatedSize", IsProperty=true, IsRequired=true, IsStatic=false, Name="CurrentAllocatedSize", PropertyType=typeof(System.UIntPtr), Selector="currentAllocatedSize")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="hazardTrackingMode", IsProperty=true, IsRequired=true, IsStatic=false, Name="HazardTrackingMode", PropertyType=typeof(Metal.MTLHazardTrackingMode), Selector="hazardTrackingMode")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="resourceOptions", IsProperty=true, IsRequired=true, IsStatic=false, Name="ResourceOptions", PropertyType=typeof(Metal.MTLResourceOptions), Selector="resourceOptions")>]
[<Foundation.ProtocolMember(ArgumentSemantic=ObjCRuntime.ArgumentSemantic.None, GetterSelector="type", IsProperty=true, IsRequired=true, IsStatic=false, Name="Type", PropertyType=typeof(Metal.MTLHeapType), Selector="type")>]
type IMTLHeap = interface
    interface INativeObject
    interface IDisposable
    interface IMTLAllocation
Attributes
Implements

Remarks

A class that implements this interface (and subclasses NSObject) will be exported to Objective-C as implementing the Objective-C protocol this interface represents.

A class may also implement members from this interface to implement members from the protocol.

Properties

Name Description
AllocatedSize (Inherited from IMTLAllocation)
CpuCacheMode
CurrentAllocatedSize

Returns the current allcoated size of the heap.

Device
Handle

Handle (pointer) to the unmanaged object representation.

(Inherited from INativeObject)
HazardTrackingMode
Label
ResourceOptions
Size
StorageMode
Type
UsedSize

Methods

Name Description
CreateAccelerationStructure(MTLAccelerationStructureDescriptor, UIntPtr)
CreateAccelerationStructure(MTLAccelerationStructureDescriptor)
CreateAccelerationStructure(UIntPtr, UIntPtr)
CreateAccelerationStructure(UIntPtr)
CreateBuffer(UIntPtr, MTLResourceOptions, UIntPtr)
CreateBuffer(UIntPtr, MTLResourceOptions)
CreateTexture(MTLTextureDescriptor, UIntPtr)
CreateTexture(MTLTextureDescriptor)
GetMaxAvailableSize(UIntPtr)
SetPurgeableState(MTLPurgeableState)

Extension Methods

Name Description
CreateAccelerationStructure(IMTLHeap, MTLAccelerationStructureDescriptor, UIntPtr)
CreateAccelerationStructure(IMTLHeap, MTLAccelerationStructureDescriptor)
CreateAccelerationStructure(IMTLHeap, UIntPtr, UIntPtr)
CreateAccelerationStructure(IMTLHeap, UIntPtr)
GetHandle(INativeObject)
GetNonNullHandle(INativeObject, String)

Applies to