IMTLHeap Interface
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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 | |