6234 строки
184 KiB
C#
6234 строки
184 KiB
C#
//
|
|
// API for the Metal framework
|
|
//
|
|
// Authors:
|
|
// Miguel de Icaza
|
|
//
|
|
// Copyrigh 2014-2015, Xamarin Inc.
|
|
//
|
|
// TODO:
|
|
// * Provide friendly accessors instead of those IntPtrs that point to arrays
|
|
// * MTLRenderPipelineReflection: the two arrays are NSObject
|
|
// * Make the *array classes implement all the ICollection methods.
|
|
//
|
|
|
|
using System;
|
|
using System.ComponentModel;
|
|
|
|
using CoreAnimation;
|
|
using CoreData;
|
|
using CoreGraphics;
|
|
using CoreImage;
|
|
using CoreLocation;
|
|
using CoreFoundation;
|
|
using Foundation;
|
|
using ObjCRuntime;
|
|
|
|
#if !NET
|
|
using NativeHandle = System.IntPtr;
|
|
#endif
|
|
|
|
#if TVOS
|
|
using MTLAccelerationStructureSizes = Foundation.NSObject;
|
|
#endif
|
|
|
|
namespace Metal {
|
|
|
|
delegate void MTLDeallocator (IntPtr pointer, nuint length);
|
|
|
|
delegate void MTLNewComputePipelineStateWithReflectionCompletionHandler (IMTLComputePipelineState computePipelineState, MTLComputePipelineReflection reflection, NSError error);
|
|
|
|
delegate void MTLDrawablePresentedHandler (IMTLDrawable drawable);
|
|
|
|
delegate void MTLNewRenderPipelineStateWithReflectionCompletionHandler (IMTLRenderPipelineState renderPipelineState, MTLRenderPipelineReflection reflection, NSError error);
|
|
|
|
interface IMTLCommandEncoder { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLArgument {
|
|
[Export ("name")]
|
|
string Name { get; }
|
|
|
|
[Export ("type")]
|
|
MTLArgumentType Type { get; }
|
|
|
|
[Export ("access")]
|
|
MTLArgumentAccess Access { get; }
|
|
|
|
[Export ("index")]
|
|
nuint Index { get; }
|
|
|
|
[Export ("active")]
|
|
bool Active { [Bind ("isActive")] get; }
|
|
|
|
[Export ("bufferAlignment")]
|
|
nuint BufferAlignment { get; }
|
|
|
|
[Export ("bufferDataSize")]
|
|
nuint BufferDataSize { get; }
|
|
|
|
[Export ("bufferDataType")]
|
|
MTLDataType BufferDataType { get; }
|
|
|
|
[NullAllowed]
|
|
[Export ("bufferStructType")]
|
|
MTLStructType BufferStructType { get; }
|
|
|
|
[Export ("threadgroupMemoryAlignment")]
|
|
nuint ThreadgroupMemoryAlignment { get; }
|
|
|
|
[Export ("threadgroupMemoryDataSize")]
|
|
nuint ThreadgroupMemoryDataSize { get; }
|
|
|
|
[Export ("textureType")]
|
|
MTLTextureType TextureType { get; }
|
|
|
|
[Export ("textureDataType")]
|
|
MTLDataType TextureDataType { get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("isDepthTexture")]
|
|
bool IsDepthTexture { get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("arrayLength")]
|
|
nuint ArrayLength { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[NullAllowed, Export ("bufferPointerType")]
|
|
MTLPointerType BufferPointerType { get; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (MTLType))]
|
|
interface MTLArrayType {
|
|
[Export ("arrayLength")]
|
|
nuint Length { get; }
|
|
|
|
[Export ("elementType")]
|
|
MTLDataType ElementType { get; }
|
|
|
|
[Export ("stride")]
|
|
nuint Stride { get; }
|
|
|
|
[Export ("elementStructType")]
|
|
[return: NullAllowed]
|
|
MTLStructType ElementStructType ();
|
|
|
|
[Export ("elementArrayType")]
|
|
[return: NullAllowed]
|
|
MTLArrayType ElementArrayType ();
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("argumentIndexStride")]
|
|
nuint ArgumentIndexStride { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[NullAllowed, Export ("elementTextureReferenceType")]
|
|
MTLTextureReferenceType ElementTextureReferenceType { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[NullAllowed, Export ("elementPointerType")]
|
|
MTLPointerType ElementPointerType { get; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLCommandEncoder {
|
|
[Abstract, Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract, Export ("endEncoding")]
|
|
void EndEncoding ();
|
|
|
|
[Abstract, Export ("insertDebugSignpost:")]
|
|
void InsertDebugSignpost (string signpost);
|
|
|
|
[Abstract, Export ("pushDebugGroup:")]
|
|
void PushDebugGroup (string debugGroup);
|
|
|
|
[Abstract, Export ("popDebugGroup")]
|
|
void PopDebugGroup ();
|
|
}
|
|
|
|
interface IMTLBuffer { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLBuffer : MTLResource {
|
|
[Abstract, Export ("length")]
|
|
nuint Length { get; }
|
|
|
|
[Abstract, Export ("contents")]
|
|
IntPtr Contents { get; }
|
|
|
|
[NoiOS, NoTV, MacCatalyst (15, 0)]
|
|
[Abstract, Export ("didModifyRange:")]
|
|
void DidModify (NSRange range);
|
|
|
|
[Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
[return: NullAllowed]
|
|
#if NET || !MONOMAC
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newTextureWithDescriptor:offset:bytesPerRow:")]
|
|
[return: Release]
|
|
IMTLTexture CreateTexture (MTLTextureDescriptor descriptor, nuint offset, nuint bytesPerRow);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("addDebugMarker:range:")]
|
|
void AddDebugMarker (string marker, NSRange range);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("removeAllDebugMarkers")]
|
|
void RemoveAllDebugMarkers ();
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NoiOS, NoTV, Mac (10, 15)]
|
|
[NoMacCatalyst]
|
|
[NullAllowed, Export ("remoteStorageBuffer")]
|
|
IMTLBuffer RemoteStorageBuffer { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NoiOS, NoTV, Mac (10, 15)]
|
|
[NoMacCatalyst]
|
|
[Export ("newRemoteBufferViewForDevice:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLBuffer CreateRemoteBuffer (IMTLDevice device);
|
|
}
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLBufferLayoutDescriptor : NSCopying {
|
|
[Export ("stride")]
|
|
nuint Stride { get; set; }
|
|
|
|
[Export ("stepFunction", ArgumentSemantic.Assign)]
|
|
MTLStepFunction StepFunction { get; set; }
|
|
|
|
[Export ("stepRate")]
|
|
nuint StepRate { get; set; }
|
|
}
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLBufferLayoutDescriptorArray {
|
|
[Internal]
|
|
[Export ("objectAtIndexedSubscript:")]
|
|
MTLBufferLayoutDescriptor ObjectAtIndexedSubscript (nuint index);
|
|
|
|
[Internal]
|
|
[Export ("setObject:atIndexedSubscript:")]
|
|
void SetObject ([NullAllowed] MTLBufferLayoutDescriptor bufferDesc, nuint index);
|
|
}
|
|
|
|
|
|
interface IMTLCommandBuffer { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLCommandBuffer {
|
|
|
|
[Abstract, Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract, Export ("commandQueue")]
|
|
IMTLCommandQueue CommandQueue { get; }
|
|
|
|
[Abstract, Export ("retainedReferences")]
|
|
bool RetainedReferences { get; }
|
|
|
|
[Abstract, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract, Export ("status")]
|
|
MTLCommandBufferStatus Status { get; }
|
|
|
|
[Abstract, Export ("error")]
|
|
NSError Error { get; }
|
|
|
|
[Abstract, Export ("enqueue")]
|
|
void Enqueue ();
|
|
|
|
[Abstract, Export ("commit")]
|
|
void Commit ();
|
|
|
|
[Abstract, Export ("addScheduledHandler:")]
|
|
void AddScheduledHandler (Action<IMTLCommandBuffer> block);
|
|
|
|
[Abstract, Export ("waitUntilScheduled")]
|
|
void WaitUntilScheduled ();
|
|
|
|
[Abstract, Export ("addCompletedHandler:")]
|
|
void AddCompletedHandler (Action<IMTLCommandBuffer> block);
|
|
|
|
[Abstract, Export ("waitUntilCompleted")]
|
|
void WaitUntilCompleted ();
|
|
|
|
[Abstract, Export ("blitCommandEncoder")]
|
|
IMTLBlitCommandEncoder BlitCommandEncoder { get; }
|
|
|
|
[Abstract, Export ("computeCommandEncoder")]
|
|
IMTLComputeCommandEncoder ComputeCommandEncoder { get; }
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("computeCommandEncoderWithDispatchType:")]
|
|
[return: NullAllowed]
|
|
IMTLComputeCommandEncoder ComputeCommandEncoderDispatch (MTLDispatchType dispatchType);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("encodeWaitForEvent:value:")]
|
|
void EncodeWait (IMTLEvent @event, ulong value);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("encodeSignalEvent:value:")]
|
|
void EncodeSignal (IMTLEvent @event, ulong value);
|
|
|
|
[Field ("MTLCommandBufferErrorDomain")]
|
|
NSString ErrorDomain { get; }
|
|
|
|
[Abstract]
|
|
[Export ("parallelRenderCommandEncoderWithDescriptor:")]
|
|
[return: NullAllowed]
|
|
IMTLParallelRenderCommandEncoder CreateParallelRenderCommandEncoder (MTLRenderPassDescriptor renderPassDescriptor);
|
|
|
|
[Abstract]
|
|
[Export ("presentDrawable:")]
|
|
void PresentDrawable (IMTLDrawable drawable);
|
|
|
|
[Abstract]
|
|
[Export ("presentDrawable:atTime:")]
|
|
void PresentDrawable (IMTLDrawable drawable, double presentationTime);
|
|
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[iOS (10, 3)]
|
|
[TV (10, 2)]
|
|
[Mac (10, 15, 4)]
|
|
[Export ("presentDrawable:afterMinimumDuration:")]
|
|
void PresentDrawableAfter (IMTLDrawable drawable, double duration);
|
|
|
|
[Abstract]
|
|
[Export ("renderCommandEncoderWithDescriptor:")]
|
|
IMTLRenderCommandEncoder CreateRenderCommandEncoder (MTLRenderPassDescriptor renderPassDescriptor);
|
|
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[iOS (10, 3)]
|
|
[TV (10, 2)]
|
|
[Mac (10, 12, 4)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("kernelStartTime")]
|
|
double /* CFTimeInterval */ KernelStartTime { get; }
|
|
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[iOS (10, 3)]
|
|
[TV (10, 2)]
|
|
[Mac (10, 12, 4)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("kernelEndTime")]
|
|
double /* CFTimeInterval */ KernelEndTime { get; }
|
|
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[iOS (10, 3)]
|
|
[TV (10, 2)]
|
|
[Mac (10, 12, 4)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("GPUStartTime")]
|
|
double /* CFTimeInterval */ GpuStartTime { get; }
|
|
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[iOS (10, 3)]
|
|
[TV (10, 2)]
|
|
[Mac (10, 12, 4)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("GPUEndTime")]
|
|
double /* CFTimeInterval */ GpuEndTime { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[Export ("pushDebugGroup:")]
|
|
void PushDebugGroup (string @string);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[Export ("popDebugGroup")]
|
|
void PopDebugGroup ();
|
|
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[Mac (11, 0), iOS (13, 0), NoTV]
|
|
[NullAllowed, Export ("resourceStateCommandEncoder")]
|
|
IMTLResourceStateCommandEncoder ResourceStateCommandEncoder { get; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("errorOptions")]
|
|
MTLCommandBufferErrorOption ErrorOptions { get; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("logs")]
|
|
IMTLLogContainer Logs { get; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("computeCommandEncoderWithDescriptor:")]
|
|
IMTLComputeCommandEncoder CreateComputeCommandEncoder (MTLComputePassDescriptor computePassDescriptor);
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("blitCommandEncoderWithDescriptor:")]
|
|
IMTLBlitCommandEncoder CreateBlitCommandEncoder (MTLBlitPassDescriptor blitPassDescriptor);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("resourceStateCommandEncoderWithDescriptor:")]
|
|
IMTLResourceStateCommandEncoder CreateResourceStateCommandEncoder (MTLResourceStatePassDescriptor resourceStatePassDescriptor);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("accelerationStructureCommandEncoder")]
|
|
IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder ();
|
|
}
|
|
|
|
interface IMTLCommandQueue { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLCommandQueue {
|
|
|
|
[Abstract, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract, Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract, Export ("commandBuffer")]
|
|
[Autorelease]
|
|
[return: NullAllowed]
|
|
IMTLCommandBuffer CommandBuffer ();
|
|
|
|
[Abstract, Export ("commandBufferWithUnretainedReferences")]
|
|
[Autorelease]
|
|
[return: NullAllowed]
|
|
IMTLCommandBuffer CommandBufferWithUnretainedReferences ();
|
|
|
|
[Deprecated (PlatformName.iOS, 11, 0, message: "Use 'MTLCaptureScope' instead.")]
|
|
[Deprecated (PlatformName.TvOS, 11, 0, message: "Use 'MTLCaptureScope' instead.")]
|
|
[Deprecated (PlatformName.MacOSX, 10, 13, message: "Use 'MTLCaptureScope' instead.")]
|
|
[Deprecated (PlatformName.MacCatalyst, 13, 1, message: "Use 'MTLCaptureScope' instead.")]
|
|
[Abstract, Export ("insertDebugCaptureBoundary")]
|
|
void InsertDebugCaptureBoundary ();
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("commandBufferWithDescriptor:")]
|
|
[return: NullAllowed]
|
|
IMTLCommandBuffer CreateCommandBuffer (MTLCommandBufferDescriptor descriptor);
|
|
}
|
|
|
|
interface IMTLComputeCommandEncoder { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLComputeCommandEncoder : MTLCommandEncoder {
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("dispatchType")]
|
|
MTLDispatchType DispatchType { get; }
|
|
|
|
[Abstract, Export ("setComputePipelineState:")]
|
|
void SetComputePipelineState (IMTLComputePipelineState state);
|
|
|
|
[Abstract, Export ("setBuffer:offset:atIndex:")]
|
|
void SetBuffer (IMTLBuffer buffer, nuint offset, nuint index);
|
|
|
|
[Abstract, Export ("setTexture:atIndex:")]
|
|
void SetTexture (IMTLTexture texture, nuint index);
|
|
|
|
[Abstract, Export ("setSamplerState:atIndex:")]
|
|
void SetSamplerState (IMTLSamplerState sampler, nuint index);
|
|
|
|
[Abstract, Export ("setSamplerState:lodMinClamp:lodMaxClamp:atIndex:")]
|
|
void SetSamplerState (IMTLSamplerState sampler, float /* float, not CGFloat */ lodMinClamp, float /* float, not CGFloat */ lodMaxClamp, nuint index);
|
|
|
|
[Abstract, Export ("setThreadgroupMemoryLength:atIndex:")]
|
|
void SetThreadgroupMemoryLength (nuint length, nuint index);
|
|
|
|
[Abstract, Export ("dispatchThreadgroups:threadsPerThreadgroup:")]
|
|
void DispatchThreadgroups (MTLSize threadgroupsPerGrid, MTLSize threadsPerThreadgroup);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("dispatchThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerThreadgroup:")]
|
|
void DispatchThreadgroups (IMTLBuffer indirectBuffer, nuint indirectBufferOffset, MTLSize threadsPerThreadgroup);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
[Export ("setBuffers:offsets:withRange:")]
|
|
void SetBuffers (IntPtr buffers, IntPtr offsets, NSRange range);
|
|
#else
|
|
[Abstract]
|
|
[Export ("setBuffers:offsets:withRange:")]
|
|
void SetBuffers (IMTLBuffer [] buffers, IntPtr offsets, NSRange range);
|
|
#endif
|
|
|
|
|
|
[Abstract]
|
|
[Export ("setSamplerStates:lodMinClamps:lodMaxClamps:withRange:")]
|
|
void SetSamplerStates (IMTLSamplerState [] samplers, IntPtr floatArrayPtrLodMinClamps, IntPtr floatArrayPtrLodMaxClamps, NSRange range);
|
|
|
|
[Abstract]
|
|
[Export ("setSamplerStates:withRange:")]
|
|
void SetSamplerStates (IMTLSamplerState [] samplers, NSRange range);
|
|
|
|
[Abstract]
|
|
[Export ("setTextures:withRange:")]
|
|
void SetTextures (IMTLTexture [] textures, NSRange range);
|
|
|
|
[iOS (8, 3)]
|
|
[MacCatalyst (13, 1)]
|
|
[Abstract]
|
|
[Export ("setBufferOffset:atIndex:")]
|
|
void SetBufferOffset (nuint offset, nuint index);
|
|
|
|
[iOS (8, 3)]
|
|
[MacCatalyst (13, 1)]
|
|
[Abstract]
|
|
[Export ("setBytes:length:atIndex:")]
|
|
void SetBytes (IntPtr bytes, nuint length, nuint index);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setStageInRegion:")]
|
|
void SetStage (MTLRegion region);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setStageInRegionWithIndirectBuffer:indirectBufferOffset:")]
|
|
void SetStageInRegion (IMTLBuffer indirectBuffer, nuint indirectBufferOffset);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("updateFence:")]
|
|
void Update (IMTLFence fence);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("waitForFence:")]
|
|
void Wait (IMTLFence fence);
|
|
|
|
[Mac (10, 13)]
|
|
[iOS (11, 0)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("dispatchThreads:threadsPerThreadgroup:")]
|
|
void DispatchThreads (MTLSize threadsPerGrid, MTLSize threadsPerThreadgroup);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("useResource:usage:")]
|
|
void UseResource (IMTLResource resource, MTLResourceUsage usage);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("useResources:count:usage:")]
|
|
void UseResources (IMTLResource [] resources, nuint count, MTLResourceUsage usage);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("useHeap:")]
|
|
void UseHeap (IMTLHeap heap);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("useHeaps:count:")]
|
|
void UseHeaps (IMTLHeap [] heaps, nuint count);
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setImageblockWidth:height:")]
|
|
void SetImageblock (nuint width, nuint height);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("memoryBarrierWithScope:")]
|
|
void MemoryBarrier (MTLBarrierScope scope);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("memoryBarrierWithResources:count:")]
|
|
void MemoryBarrier (IMTLResource [] resources, nuint count);
|
|
|
|
[TV (13, 0), Mac (11, 0), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("executeCommandsInBuffer:withRange:")]
|
|
void ExecuteCommands (IMTLIndirectCommandBuffer indirectCommandBuffer, NSRange executionRange);
|
|
|
|
[TV (13, 0), Mac (11, 0), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("executeCommandsInBuffer:indirectBuffer:indirectBufferOffset:")]
|
|
void ExecuteCommands (IMTLIndirectCommandBuffer indirectCommandbuffer, IMTLBuffer indirectRangeBuffer, nuint indirectBufferOffset);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("sampleCountersInBuffer:atSampleIndex:withBarrier:")]
|
|
#if NET
|
|
void SampleCounters (IMTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);
|
|
#else
|
|
[Obsolete ("Use the overload that takes an IMTLCounterSampleBuffer instead.")]
|
|
void SampleCounters (MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);
|
|
#endif
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setVisibleFunctionTable:atBufferIndex:")]
|
|
void SetVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable visibleFunctionTable, nuint bufferIndex);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setVisibleFunctionTables:withBufferRange:")]
|
|
void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] visibleFunctionTables, NSRange range);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setIntersectionFunctionTable:atBufferIndex:")]
|
|
void SetIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setIntersectionFunctionTables:withBufferRange:")]
|
|
void SetIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTables, NSRange range);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setAccelerationStructure:atBufferIndex:")]
|
|
void SetAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex);
|
|
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLComputePipelineReflection {
|
|
[Export ("arguments")]
|
|
#if NET
|
|
MTLArgument [] Arguments { get; }
|
|
#else
|
|
NSObject [] Arguments { get; }
|
|
#endif
|
|
}
|
|
|
|
interface IMTLComputePipelineState { }
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLComputePipelineState {
|
|
[Abstract, Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract, Export ("maxTotalThreadsPerThreadgroup")]
|
|
nuint MaxTotalThreadsPerThreadgroup { get; }
|
|
|
|
[Abstract, Export ("threadExecutionWidth")]
|
|
nuint ThreadExecutionWidth { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("staticThreadgroupMemoryLength")]
|
|
nuint StaticThreadgroupMemoryLength { get; }
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("imageblockMemoryLengthForDimensions:")]
|
|
nuint GetImageblockMemoryLength (MTLSize imageblockDimensions);
|
|
|
|
[TV (13, 0), Mac (11, 0), iOS (13, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportIndirectCommandBuffers")]
|
|
bool SupportIndirectCommandBuffers { get; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("functionHandleWithFunction:")]
|
|
IMTLFunctionHandle CreateFunctionHandle (IMTLFunction function);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newComputePipelineStateWithAdditionalBinaryFunctions:error:")]
|
|
[return: Release]
|
|
IMTLComputePipelineState CreateComputePipelineState (IMTLFunction [] functions, [NullAllowed] out NSError error);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newVisibleFunctionTableWithDescriptor:")]
|
|
[return: Release]
|
|
IMTLVisibleFunctionTable CreateVisibleFunctionTable (MTLVisibleFunctionTableDescriptor descriptor);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newIntersectionFunctionTableWithDescriptor:")]
|
|
[return: Release]
|
|
IMTLIntersectionFunctionTable CreateIntersectionFunctionTable (MTLIntersectionFunctionTableDescriptor descriptor);
|
|
}
|
|
|
|
interface IMTLBlitCommandEncoder { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLBlitCommandEncoder : MTLCommandEncoder {
|
|
|
|
[NoiOS, NoTV, MacCatalyst (15, 0)]
|
|
[Abstract, Export ("synchronizeResource:")]
|
|
void Synchronize (IMTLResource resource);
|
|
|
|
[NoiOS, NoTV, MacCatalyst (15, 0)]
|
|
[Abstract, Export ("synchronizeTexture:slice:level:")]
|
|
void Synchronize (IMTLTexture texture, nuint slice, nuint level);
|
|
|
|
[Abstract, Export ("copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:")]
|
|
void CopyFromTexture (IMTLTexture sourceTexture, nuint sourceSlice, nuint sourceLevel, MTLOrigin sourceOrigin, MTLSize sourceSize, IMTLTexture destinationTexture, nuint destinationSlice, nuint destinationLevel, MTLOrigin destinationOrigin);
|
|
|
|
[Abstract, Export ("copyFromBuffer:sourceOffset:sourceBytesPerRow:sourceBytesPerImage:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:")]
|
|
void CopyFromBuffer (IMTLBuffer sourceBuffer, nuint sourceOffset, nuint sourceBytesPerRow, nuint sourceBytesPerImage, MTLSize sourceSize, IMTLTexture destinationTexture, nuint destinationSlice, nuint destinationLevel, MTLOrigin destinationOrigin);
|
|
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[Export ("copyFromBuffer:sourceOffset:sourceBytesPerRow:sourceBytesPerImage:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:options:")]
|
|
void CopyFromBuffer (IMTLBuffer sourceBuffer, nuint sourceOffset, nuint sourceBytesPerRow, nuint sourceBytesPerImage, MTLSize sourceSize, IMTLTexture destinationTexture, nuint destinationSlice, nuint destinationLevel, MTLOrigin destinationOrigin, MTLBlitOption options);
|
|
|
|
[Abstract, Export ("copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toBuffer:destinationOffset:destinationBytesPerRow:destinationBytesPerImage:")]
|
|
void CopyFromTexture (IMTLTexture sourceTexture, nuint sourceSlice, nuint sourceLevel, MTLOrigin sourceOrigin, MTLSize sourceSize, IMTLBuffer destinationBuffer, nuint destinationOffset, nuint destinatinBytesPerRow, nuint destinationBytesPerImage);
|
|
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[Export ("copyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toBuffer:destinationOffset:destinationBytesPerRow:destinationBytesPerImage:options:")]
|
|
void CopyFromTexture (IMTLTexture sourceTexture, nuint sourceSlice, nuint sourceLevel, MTLOrigin sourceOrigin, MTLSize sourceSize, IMTLBuffer destinationBuffer, nuint destinationOffset, nuint destinatinBytesPerRow, nuint destinationBytesPerImage, MTLBlitOption options);
|
|
|
|
[Abstract, Export ("generateMipmapsForTexture:")]
|
|
void GenerateMipmapsForTexture (IMTLTexture texture);
|
|
|
|
[Abstract, Export ("fillBuffer:range:value:")]
|
|
void FillBuffer (IMTLBuffer buffer, NSRange range, byte value);
|
|
|
|
[Abstract, Export ("copyFromBuffer:sourceOffset:toBuffer:destinationOffset:size:")]
|
|
void CopyFromBuffer (IMTLBuffer sourceBuffer, nuint sourceOffset, IMTLBuffer destinationBuffer, nuint destinationOffset, nuint size);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("updateFence:")]
|
|
void Update (IMTLFence fence);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("waitForFence:")]
|
|
void Wait (IMTLFence fence);
|
|
|
|
[Mac (10, 14), iOS (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("optimizeContentsForGPUAccess:")]
|
|
void OptimizeContentsForGpuAccess (IMTLTexture texture);
|
|
|
|
[Mac (10, 14), iOS (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("optimizeContentsForGPUAccess:slice:level:")]
|
|
void OptimizeContentsForGpuAccess (IMTLTexture texture, nuint slice, nuint level);
|
|
|
|
[Mac (10, 14), iOS (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("optimizeContentsForCPUAccess:")]
|
|
void OptimizeContentsForCpuAccess (IMTLTexture texture);
|
|
|
|
[Mac (10, 14), iOS (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("optimizeContentsForCPUAccess:slice:level:")]
|
|
void OptimizeContentsForCpuAccess (IMTLTexture texture, nuint slice, nuint level);
|
|
|
|
[Mac (10, 14), iOS (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("resetCommandsInBuffer:withRange:")]
|
|
void ResetCommands (IMTLIndirectCommandBuffer buffer, NSRange range);
|
|
|
|
[Mac (10, 14), iOS (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("copyIndirectCommandBuffer:sourceRange:destination:destinationIndex:")]
|
|
void Copy (IMTLIndirectCommandBuffer source, NSRange sourceRange, IMTLIndirectCommandBuffer destination, nuint destinationIndex);
|
|
|
|
[Mac (10, 14), iOS (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("optimizeIndirectCommandBuffer:withRange:")]
|
|
void Optimize (IMTLIndirectCommandBuffer indirectCommandBuffer, NSRange range);
|
|
|
|
#if NET && !__MACOS__ && !__MACCATALYST__
|
|
[Abstract]
|
|
#endif
|
|
[Mac (11, 0), NoTV, iOS (13, 0), MacCatalyst (15, 0)]
|
|
[Export ("getTextureAccessCounters:region:mipLevel:slice:resetCounters:countersBuffer:countersBufferOffset:")]
|
|
void GetTextureAccessCounters (IMTLTexture texture, MTLRegion region, nuint mipLevel, nuint slice, bool resetCounters, IMTLBuffer countersBuffer, nuint countersBufferOffset);
|
|
|
|
#if NET && !__MACOS__ && !__MACCATALYST__
|
|
[Abstract]
|
|
#endif
|
|
[Mac (11, 0), NoTV, iOS (13, 0), MacCatalyst (15, 0)]
|
|
[Export ("resetTextureAccessCounters:region:mipLevel:slice:")]
|
|
void ResetTextureAccessCounters (IMTLTexture texture, MTLRegion region, nuint mipLevel, nuint slice);
|
|
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("copyFromTexture:sourceSlice:sourceLevel:toTexture:destinationSlice:destinationLevel:sliceCount:levelCount:")]
|
|
void Copy (IMTLTexture sourceTexture, nuint sourceSlice, nuint sourceLevel, IMTLTexture destinationTexture, nuint destinationSlice, nuint destinationLevel, nuint sliceCount, nuint levelCount);
|
|
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("copyFromTexture:toTexture:")]
|
|
void Copy (IMTLTexture sourceTexture, IMTLTexture destinationTexture);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("sampleCountersInBuffer:atSampleIndex:withBarrier:")]
|
|
#if NET
|
|
void SampleCounters (IMTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);
|
|
#else
|
|
void SampleCounters (MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);
|
|
#endif
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("resolveCounters:inRange:destinationBuffer:destinationOffset:")]
|
|
#if NET
|
|
void ResolveCounters (IMTLCounterSampleBuffer sampleBuffer, NSRange range, IMTLBuffer destinationBuffer, nuint destinationOffset);
|
|
#else
|
|
void ResolveCounters (MTLCounterSampleBuffer sampleBuffer, NSRange range, IMTLBuffer destinationBuffer, nuint destinationOffset);
|
|
#endif
|
|
}
|
|
|
|
interface IMTLFence { }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
interface MTLFence {
|
|
[Abstract]
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; set; }
|
|
}
|
|
|
|
interface IMTLDevice { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLDevice {
|
|
|
|
[Abstract, Export ("name")]
|
|
string Name { get; }
|
|
|
|
#if NET
|
|
[Abstract] // new required member, but that breaks our binary compat, so we can't do that in our existing code.
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("maxThreadsPerThreadgroup")]
|
|
MTLSize MaxThreadsPerThreadgroup { get; }
|
|
|
|
#if NET
|
|
[Abstract] // new required member, but that breaks our binary compat, so we can't do that in our existing code.
|
|
#endif
|
|
[MacCatalyst (15, 0)]
|
|
[NoiOS]
|
|
[NoTV]
|
|
[Export ("lowPower")]
|
|
bool LowPower { [Bind ("isLowPower")] get; }
|
|
|
|
#if NET
|
|
[Abstract] // new required member, but that breaks our binary compat, so we can't do that in our existing code.
|
|
#endif
|
|
[MacCatalyst (15, 0)]
|
|
[NoiOS]
|
|
[NoTV]
|
|
[Export ("headless")]
|
|
bool Headless { [Bind ("isHeadless")] get; }
|
|
|
|
[NoiOS, NoTV, NoWatch, Mac (10, 12), MacCatalyst (15, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("recommendedMaxWorkingSetSize")]
|
|
ulong RecommendedMaxWorkingSetSize { get; }
|
|
|
|
#if NET
|
|
[Abstract] // new required member, but that breaks our binary compat, so we can't do that in our existing code.
|
|
#endif
|
|
[MacCatalyst (15, 0)]
|
|
[NoiOS]
|
|
[NoTV]
|
|
[Export ("depth24Stencil8PixelFormatSupported")]
|
|
bool Depth24Stencil8PixelFormatSupported { [Bind ("isDepth24Stencil8PixelFormatSupported")] get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("heapTextureSizeAndAlignWithDescriptor:")]
|
|
MTLSizeAndAlign GetHeapTextureSizeAndAlign (MTLTextureDescriptor desc);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("heapBufferSizeAndAlignWithLength:options:")]
|
|
MTLSizeAndAlign GetHeapBufferSizeAndAlignWithLength (nuint length, MTLResourceOptions options);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newHeapWithDescriptor:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLHeap CreateHeap (MTLHeapDescriptor descriptor);
|
|
|
|
[Abstract, Export ("newCommandQueue")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLCommandQueue CreateCommandQueue ();
|
|
|
|
[Abstract, Export ("newCommandQueueWithMaxCommandBufferCount:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLCommandQueue CreateCommandQueue (nuint maxCommandBufferCount);
|
|
|
|
[Abstract, Export ("newBufferWithLength:options:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLBuffer CreateBuffer (nuint length, MTLResourceOptions options);
|
|
|
|
[Abstract, Export ("newBufferWithBytes:length:options:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLBuffer CreateBuffer (IntPtr pointer, nuint length, MTLResourceOptions options);
|
|
|
|
[Abstract, Export ("newBufferWithBytesNoCopy:length:options:deallocator:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLBuffer CreateBufferNoCopy (IntPtr pointer, nuint length, MTLResourceOptions options, MTLDeallocator deallocator);
|
|
|
|
[Abstract, Export ("newDepthStencilStateWithDescriptor:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLDepthStencilState CreateDepthStencilState (MTLDepthStencilDescriptor descriptor);
|
|
|
|
[Abstract, Export ("newTextureWithDescriptor:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLTexture CreateTexture (MTLTextureDescriptor descriptor);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (11, 0), TV (11, 0), NoWatch, Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
[Export ("newTextureWithDescriptor:iosurface:plane:")]
|
|
IMTLTexture CreateTexture (MTLTextureDescriptor descriptor, IOSurface.IOSurface iosurface, nuint plane);
|
|
|
|
[iOS (13, 0), TV (13, 0), Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newSharedTextureWithDescriptor:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLTexture CreateSharedTexture (MTLTextureDescriptor descriptor);
|
|
|
|
[iOS (13, 0), TV (13, 0), Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newSharedTextureWithHandle:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLTexture CreateSharedTexture (MTLSharedTextureHandle sharedHandle);
|
|
|
|
[Abstract, Export ("newSamplerStateWithDescriptor:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLSamplerState CreateSamplerState (MTLSamplerDescriptor descriptor);
|
|
|
|
[Abstract, Export ("newDefaultLibrary")]
|
|
[return: Release]
|
|
IMTLLibrary CreateDefaultLibrary ();
|
|
|
|
[Abstract, Export ("newLibraryWithFile:error:")]
|
|
[return: Release]
|
|
IMTLLibrary CreateLibrary (string filepath, out NSError error);
|
|
|
|
#if !NET
|
|
[Abstract, Export ("newLibraryWithData:error:")]
|
|
[return: Release]
|
|
[Obsolete ("Use the overload that take a 'DispatchData' instead.")]
|
|
IMTLLibrary CreateLibrary (NSObject data, out NSError error);
|
|
#endif
|
|
|
|
#if NET
|
|
[Abstract]
|
|
[Export ("newLibraryWithData:error:")]
|
|
[return: Release]
|
|
IMTLLibrary CreateLibrary (DispatchData data, out NSError error);
|
|
#endif
|
|
|
|
[Abstract, Export ("newLibraryWithSource:options:error:")]
|
|
[return: Release]
|
|
IMTLLibrary CreateLibrary (string source, MTLCompileOptions options, out NSError error);
|
|
|
|
[Abstract, Export ("newLibraryWithSource:options:completionHandler:")]
|
|
[Async]
|
|
void CreateLibrary (string source, MTLCompileOptions options, Action<IMTLLibrary, NSError> completionHandler);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("newDefaultLibraryWithBundle:error:")]
|
|
[return: Release]
|
|
[return: NullAllowed]
|
|
#if NET
|
|
IMTLLibrary CreateDefaultLibrary (NSBundle bundle, out NSError error);
|
|
#else
|
|
[Obsolete ("Use 'CreateDefaultLibrary' instead.")]
|
|
IMTLLibrary CreateLibrary (NSBundle bundle, out NSError error);
|
|
#endif
|
|
|
|
[Abstract, Export ("newRenderPipelineStateWithDescriptor:error:")]
|
|
[return: Release]
|
|
IMTLRenderPipelineState CreateRenderPipelineState (MTLRenderPipelineDescriptor descriptor, out NSError error);
|
|
|
|
[Abstract, Export ("newRenderPipelineStateWithDescriptor:completionHandler:")]
|
|
void CreateRenderPipelineState (MTLRenderPipelineDescriptor descriptor, Action<IMTLRenderPipelineState, NSError> completionHandler);
|
|
|
|
[Abstract]
|
|
[Export ("newRenderPipelineStateWithDescriptor:options:reflection:error:")]
|
|
[return: Release]
|
|
IMTLRenderPipelineState CreateRenderPipelineState (MTLRenderPipelineDescriptor descriptor, MTLPipelineOption options, out MTLRenderPipelineReflection reflection, out NSError error);
|
|
|
|
[Abstract]
|
|
[Export ("newRenderPipelineStateWithDescriptor:options:completionHandler:")]
|
|
void CreateRenderPipelineState (MTLRenderPipelineDescriptor descriptor, MTLPipelineOption options, Action<IMTLRenderPipelineState, MTLRenderPipelineReflection, NSError> completionHandler);
|
|
|
|
[Abstract]
|
|
[Export ("newComputePipelineStateWithFunction:options:reflection:error:")]
|
|
[return: Release]
|
|
IMTLComputePipelineState CreateComputePipelineState (IMTLFunction computeFunction, MTLPipelineOption options, out MTLComputePipelineReflection reflection, out NSError error);
|
|
|
|
[Abstract]
|
|
[Export ("newComputePipelineStateWithFunction:completionHandler:")]
|
|
void CreateComputePipelineState (IMTLFunction computeFunction, Action<IMTLComputePipelineState, NSError> completionHandler);
|
|
|
|
[Abstract, Export ("newComputePipelineStateWithFunction:error:")]
|
|
[return: Release]
|
|
IMTLComputePipelineState CreateComputePipelineState (IMTLFunction computeFunction, out NSError error);
|
|
|
|
[Abstract, Export ("newComputePipelineStateWithFunction:options:completionHandler:")]
|
|
void CreateComputePipelineState (IMTLFunction computeFunction, MTLPipelineOption options, Action<IMTLComputePipelineState, MTLComputePipelineReflection, NSError> completionHandler);
|
|
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newComputePipelineStateWithDescriptor:options:reflection:error:")]
|
|
[return: Release]
|
|
IMTLComputePipelineState CreateComputePipelineState (MTLComputePipelineDescriptor descriptor, MTLPipelineOption options, out MTLComputePipelineReflection reflection, out NSError error);
|
|
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newComputePipelineStateWithDescriptor:options:completionHandler:")]
|
|
void CreateComputePipelineState (MTLComputePipelineDescriptor descriptor, MTLPipelineOption options, MTLNewComputePipelineStateWithReflectionCompletionHandler completionHandler);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newFence")]
|
|
[return: Release]
|
|
IMTLFence CreateFence ();
|
|
|
|
[Abstract, Export ("supportsFeatureSet:")]
|
|
bool SupportsFeatureSet (MTLFeatureSet featureSet);
|
|
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportsTextureSampleCount:")]
|
|
bool SupportsTextureSampleCount (nuint sampleCount);
|
|
|
|
[Mac (10, 13), NoiOS, NoWatch, NoTV, MacCatalyst (15, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("removable")]
|
|
bool Removable { [Bind ("isRemovable")] get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("readWriteTextureSupport")]
|
|
MTLReadWriteTextureTier ReadWriteTextureSupport { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("argumentBuffersSupport")]
|
|
MTLArgumentBuffersTier ArgumentBuffersSupport { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("rasterOrderGroupsSupported")]
|
|
bool RasterOrderGroupsSupported { [Bind ("areRasterOrderGroupsSupported")] get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newLibraryWithURL:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLLibrary CreateLibrary (NSUrl url, [NullAllowed] out NSError error);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("minimumLinearTextureAlignmentForPixelFormat:")]
|
|
nuint GetMinimumLinearTextureAlignment (MTLPixelFormat format);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("minimumTextureBufferAlignmentForPixelFormat:")]
|
|
nuint GetMinimumTextureBufferAlignment (MTLPixelFormat format);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("maxThreadgroupMemoryLength")]
|
|
nuint MaxThreadgroupMemoryLength { get; }
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("maxArgumentBufferSamplerCount")]
|
|
nuint MaxArgumentBufferSamplerCount { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("programmableSamplePositionsSupported")]
|
|
bool ProgrammableSamplePositionsSupported { [Bind ("areProgrammableSamplePositionsSupported")] get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("getDefaultSamplePositions:count:")]
|
|
void GetDefaultSamplePositions (IntPtr positions, nuint count);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newArgumentEncoderWithArguments:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLArgumentEncoder CreateArgumentEncoder (MTLArgumentDescriptor [] arguments);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newIndirectCommandBufferWithDescriptor:maxCommandCount:options:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLIndirectCommandBuffer CreateIndirectCommandBuffer (MTLIndirectCommandBufferDescriptor descriptor, nuint maxCount, MTLResourceOptions options);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
[Export ("newEvent")]
|
|
IMTLEvent CreateEvent ();
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
[Export ("newSharedEvent")]
|
|
IMTLSharedEvent CreateSharedEvent ();
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newSharedEventWithHandle:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLSharedEvent CreateSharedEvent (MTLSharedEventHandle sharedEventHandle);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("maxBufferLength")]
|
|
nuint MaxBufferLength { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("registryID")]
|
|
ulong RegistryId { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("currentAllocatedSize")]
|
|
nuint CurrentAllocatedSize { get; }
|
|
|
|
#if false // https://bugzilla.xamarin.com/show_bug.cgi?id=59342
|
|
[Mac (10,13), NoiOS, NoTV, NoWatch]
|
|
[Notification]
|
|
[Field ("MTLDeviceWasAddedNotification")]
|
|
NSString DeviceWasAdded { get; }
|
|
|
|
[Mac (10,13), NoiOS, NoTV, NoWatch]
|
|
[Notification]
|
|
[Field ("MTLDeviceRemovalRequestedNotification")]
|
|
NSString DeviceRemovalRequested { get; }
|
|
|
|
[Mac (10,13), NoiOS, NoTV, NoWatch]
|
|
[Notification]
|
|
[Field ("MTLDeviceWasRemovedNotification")]
|
|
NSString DeviceWasRemoved { get; }
|
|
#endif
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newRenderPipelineStateWithTileDescriptor:options:reflection:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLRenderPipelineState CreateRenderPipelineState (MTLTileRenderPipelineDescriptor descriptor, MTLPipelineOption options, [NullAllowed] out MTLRenderPipelineReflection reflection, [NullAllowed] out NSError error);
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newRenderPipelineStateWithTileDescriptor:options:completionHandler:")]
|
|
void CreateRenderPipelineState (MTLTileRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler completionHandler);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[Export ("supportsVertexAmplificationCount:")]
|
|
bool SupportsVertexAmplification (nuint count);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[Export ("supportsRasterizationRateMapWithLayerCount:")]
|
|
bool SupportsRasterizationRateMap (nuint layerCount);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[Mac (11, 0), NoTV, iOS (13, 0)]
|
|
[Export ("sparseTileSizeWithTextureType:pixelFormat:sampleCount:")]
|
|
MTLSize GetSparseTileSize (MTLTextureType textureType, MTLPixelFormat pixelFormat, nuint sampleCount);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[Mac (11, 0), NoTV, iOS (13, 0)]
|
|
[Export ("sparseTileSizeInBytes")]
|
|
nuint SparseTileSizeInBytes { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[Export ("newRasterizationRateMapWithDescriptor:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLRasterizationRateMap CreateRasterizationRateMap (MTLRasterizationRateMapDescriptor descriptor);
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[Mac (11, 0), NoTV, iOS (13, 0)]
|
|
[Export ("convertSparseTileRegions:toPixelRegions:withTileSize:numRegions:")]
|
|
void ConvertSparseTileRegions (IntPtr tileRegions, IntPtr pixelRegions, MTLSize tileSize, nuint numRegions);
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[Mac (11, 0), NoTV, iOS (13, 0)]
|
|
[Export ("convertSparsePixelRegions:toTileRegions:withTileSize:alignmentMode:numRegions:")]
|
|
void ConvertSparsePixelRegions (IntPtr pixelRegions, IntPtr tileRegions, MTLSize tileSize, MTLSparseTextureRegionAlignmentMode mode, nuint numRegions);
|
|
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("hasUnifiedMemory")]
|
|
bool HasUnifiedMemory { get; }
|
|
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportsFamily:")]
|
|
bool SupportsFamily (MTLGpuFamily gpuFamily);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (14, 0), NoTV, Mac (10, 15), NoMacCatalyst]
|
|
[Export ("barycentricCoordsSupported")]
|
|
bool BarycentricCoordsSupported { [Bind ("areBarycentricCoordsSupported")] get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (14, 0), NoTV, Mac (10, 15), NoMacCatalyst]
|
|
[Export ("supportsShaderBarycentricCoordinates")]
|
|
bool SupportsShaderBarycentricCoordinates { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NoiOS, NoTV, Mac (10, 15)]
|
|
[NoMacCatalyst]
|
|
[Export ("peerIndex")]
|
|
uint PeerIndex { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NoiOS, NoTV, Mac (10, 15)]
|
|
[NoMacCatalyst]
|
|
[Export ("peerCount")]
|
|
uint PeerCount { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[NullAllowed, Export ("counterSets")]
|
|
#if NET
|
|
IMTLCounterSet[] CounterSets { get; }
|
|
#else
|
|
[Obsolete ("Use 'GetIMTLCounterSets' instead.")]
|
|
MTLCounterSet [] CounterSets { get; }
|
|
#endif
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("newCounterSampleBufferWithDescriptor:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
#if NET
|
|
IMTLCounterSampleBuffer CreateCounterSampleBuffer (MTLCounterSampleBufferDescriptor descriptor, [NullAllowed] out NSError error);
|
|
#else
|
|
[Obsolete ("Use 'CreateIMTLCounterSampleBuffer' instead.")]
|
|
MTLCounterSampleBuffer CreateCounterSampleBuffer (MTLCounterSampleBufferDescriptor descriptor, [NullAllowed] out NSError error);
|
|
#endif
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("sampleTimestamps:gpuTimestamp:")]
|
|
void GetSampleTimestamps (nuint cpuTimestamp, nuint gpuTimestamp);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NoiOS, NoTV, Mac (10, 15)]
|
|
[NoMacCatalyst]
|
|
[Export ("peerGroupID")]
|
|
ulong PeerGroupId { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NoiOS, NoTV, Mac (10, 15)]
|
|
[NoMacCatalyst]
|
|
[Export ("maxTransferRate")]
|
|
ulong MaxTransferRate { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NoiOS, NoTV, Mac (10, 15)]
|
|
[NoMacCatalyst]
|
|
[Export ("location")]
|
|
MTLDeviceLocation Location { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NoiOS, NoTV, Mac (10, 15)]
|
|
[NoMacCatalyst]
|
|
[Export ("locationNumber")]
|
|
nuint LocationNumber { get; }
|
|
|
|
[Mac (11, 0), NoTV]
|
|
[iOS (14, 5)]
|
|
[MacCatalyst (14, 5)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supports32BitFloatFiltering")]
|
|
bool Supports32BitFloatFiltering { get; }
|
|
|
|
[Mac (11, 0), NoTV]
|
|
[iOS (14, 5)]
|
|
[MacCatalyst (14, 5)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supports32BitMSAA")]
|
|
bool Supports32BitMsaa { get; }
|
|
|
|
[NoiOS, Mac (11, 0), NoTV]
|
|
[NoMacCatalyst]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportsBCTextureCompression")]
|
|
bool SupportsBCTextureCompression { get; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportsPullModelInterpolation")]
|
|
bool SupportsPullModelInterpolation { get; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportsCounterSampling:")]
|
|
bool SupportsCounterSampling (MTLCounterSamplingPoint samplingPoint);
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportsDynamicLibraries")]
|
|
bool SupportsDynamicLibraries { get; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newDynamicLibrary:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLDynamicLibrary CreateDynamicLibrary (IMTLLibrary library, [NullAllowed] out NSError error);
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newDynamicLibraryWithURL:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLDynamicLibrary CreateDynamicLibrary (NSUrl url, [NullAllowed] out NSError error);
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newBinaryArchiveWithDescriptor:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLBinaryArchive CreateBinaryArchive (MTLBinaryArchiveDescriptor descriptor, [NullAllowed] out NSError error);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportsRaytracing")]
|
|
bool SupportsRaytracing { get; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("accelerationStructureSizesWithDescriptor:")]
|
|
#pragma warning disable 0618 // warning CS0618: 'MTLAccelerationStructureSizes' is obsolete: 'This API is not available on this platform.'
|
|
MTLAccelerationStructureSizes CreateAccelerationStructureSizes (MTLAccelerationStructureDescriptor descriptor);
|
|
#pragma warning restore
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newAccelerationStructureWithSize:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLAccelerationStructure CreateAccelerationStructure (nuint size);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newAccelerationStructureWithDescriptor:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLAccelerationStructure CreateAccelerationStructure (MTLAccelerationStructureDescriptor descriptor);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportsFunctionPointers")]
|
|
bool SupportsFunctionPointers { get; }
|
|
|
|
[Mac (11, 0), NoTV]
|
|
[iOS (14, 5)]
|
|
[MacCatalyst (14, 5)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportsQueryTextureLOD")]
|
|
bool SupportsQueryTextureLod { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (15, 0)]
|
|
[Export ("supportsRenderDynamicLibraries")]
|
|
bool SupportsRenderDynamicLibraries { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV]
|
|
[Export ("supportsRaytracingFromRender")]
|
|
bool SupportsRaytracingFromRender { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV]
|
|
[Export ("supportsPrimitiveMotionBlur")]
|
|
bool SupportsPrimitiveMotionBlur { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch]
|
|
[Export ("supportsFunctionPointersFromRender")]
|
|
bool SupportsFunctionPointersFromRender { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (15, 0)]
|
|
[Export ("newLibraryWithStitchedDescriptor:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLLibrary CreateLibrary (MTLStitchedLibraryDescriptor descriptor, [NullAllowed] out NSError error);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Async]
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (15, 0)]
|
|
[Export ("newLibraryWithStitchedDescriptor:completionHandler:")]
|
|
void CreateLibrary (MTLStitchedLibraryDescriptor descriptor, Action<IMTLLibrary, NSError> completionHandler);
|
|
}
|
|
|
|
interface IMTLDrawable { }
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol, Model]
|
|
[BaseType (typeof (NSObject))]
|
|
partial interface MTLDrawable {
|
|
[Abstract, Export ("present")]
|
|
void Present ();
|
|
|
|
[Abstract, Export ("presentAtTime:")]
|
|
void Present (double presentationTime);
|
|
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[iOS (10, 3)]
|
|
[TV (10, 2)]
|
|
[Mac (10, 15, 4)]
|
|
[Export ("presentAfterMinimumDuration:")]
|
|
void PresentAfter (double duration);
|
|
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[iOS (10, 3)]
|
|
[TV (10, 2)]
|
|
[Mac (10, 15, 4)]
|
|
[Export ("addPresentedHandler:")]
|
|
void AddPresentedHandler (Action<IMTLDrawable> block);
|
|
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[iOS (10, 3)]
|
|
[TV (10, 2)]
|
|
[Mac (10, 15, 4)]
|
|
[Export ("presentedTime")]
|
|
double /* CFTimeInterval */ PresentedTime { get; }
|
|
|
|
#if NET
|
|
[Abstract] // @required but we can't add abstract members in C# and keep binary compatibility
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[iOS (10, 3)]
|
|
[TV (10, 2)]
|
|
[Mac (10, 15, 4)]
|
|
[Export ("drawableID")]
|
|
#if NET
|
|
nuint DrawableId { get; }
|
|
#else
|
|
nuint DrawableID { get; }
|
|
#endif
|
|
}
|
|
|
|
interface IMTLTexture { }
|
|
|
|
// Apple added several new *required* members in iOS 9,
|
|
// but that breaks our binary compat, so we can't do that in our existing code.
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLTexture : MTLResource {
|
|
[iOS (8, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Deprecated (PlatformName.iOS, 10, 0)]
|
|
[Deprecated (PlatformName.MacOSX, 10, 12)]
|
|
[Deprecated (PlatformName.TvOS, 10, 0)]
|
|
[Deprecated (PlatformName.MacCatalyst, 13, 1)]
|
|
[Abstract, Export ("rootResource")]
|
|
IMTLResource RootResource { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[NullAllowed] // by default this property is null
|
|
[Export ("parentTexture")]
|
|
IMTLTexture ParentTexture { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("parentRelativeLevel")]
|
|
nuint ParentRelativeLevel { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("parentRelativeSlice")]
|
|
nuint ParentRelativeSlice { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[NullAllowed] // by default this property is null
|
|
[Export ("buffer")]
|
|
IMTLBuffer Buffer { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("bufferOffset")]
|
|
nuint BufferOffset { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("bufferBytesPerRow")]
|
|
nuint BufferBytesPerRow { get; }
|
|
|
|
[Abstract, Export ("textureType")]
|
|
MTLTextureType TextureType { get; }
|
|
|
|
[Abstract, Export ("pixelFormat")]
|
|
MTLPixelFormat PixelFormat { get; }
|
|
|
|
[Abstract, Export ("width")]
|
|
nuint Width { get; }
|
|
|
|
[Abstract, Export ("height")]
|
|
nuint Height { get; }
|
|
|
|
[Abstract, Export ("depth")]
|
|
nuint Depth { get; }
|
|
|
|
[Abstract, Export ("mipmapLevelCount")]
|
|
nuint MipmapLevelCount { get; }
|
|
|
|
[Abstract, Export ("sampleCount")]
|
|
nuint SampleCount { get; }
|
|
|
|
[Abstract, Export ("arrayLength")]
|
|
nuint ArrayLength { get; }
|
|
|
|
[Abstract, Export ("framebufferOnly")]
|
|
bool FramebufferOnly { [Bind ("isFramebufferOnly")] get; }
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("allowGPUOptimizedContents")]
|
|
bool AllowGpuOptimizedContents { get; }
|
|
|
|
[NoMac, iOS (15, 0), NoMacCatalyst, NoTV, NoWatch]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("compressionType")]
|
|
MTLTextureCompressionType CompressionType { get; }
|
|
|
|
[Abstract, Export ("newTextureViewWithPixelFormat:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLTexture CreateTextureView (MTLPixelFormat pixelFormat);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("usage")]
|
|
MTLTextureUsage Usage { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newTextureViewWithPixelFormat:textureType:levels:slices:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLTexture CreateTextureView (MTLPixelFormat pixelFormat, MTLTextureType textureType, NSRange levelRange, NSRange sliceRange);
|
|
|
|
[Abstract]
|
|
[Export ("getBytes:bytesPerRow:bytesPerImage:fromRegion:mipmapLevel:slice:")]
|
|
void GetBytes (IntPtr pixelBytes, nuint bytesPerRow, nuint bytesPerImage, MTLRegion region, nuint level, nuint slice);
|
|
|
|
[Abstract]
|
|
[Export ("getBytes:bytesPerRow:fromRegion:mipmapLevel:")]
|
|
void GetBytes (IntPtr pixelBytes, nuint bytesPerRow, MTLRegion region, nuint level);
|
|
|
|
[Abstract]
|
|
[Export ("replaceRegion:mipmapLevel:slice:withBytes:bytesPerRow:bytesPerImage:")]
|
|
void ReplaceRegion (MTLRegion region, nuint level, nuint slice, IntPtr pixelBytes, nuint bytesPerRow, nuint bytesPerImage);
|
|
|
|
[Abstract]
|
|
[Export ("replaceRegion:mipmapLevel:withBytes:bytesPerRow:")]
|
|
void ReplaceRegion (MTLRegion region, nuint level, IntPtr pixelBytes, nuint bytesPerRow);
|
|
|
|
[Mac (10, 11), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NullAllowed, Export ("iosurface")]
|
|
IOSurface.IOSurface IOSurface { get; }
|
|
|
|
[Mac (10, 11), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("iosurfacePlane")]
|
|
nuint IOSurfacePlane { get; }
|
|
|
|
[iOS (13, 0), TV (13, 0), Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("shareable")]
|
|
bool Shareable { [Bind ("isShareable")] get; }
|
|
|
|
[iOS (13, 0), TV (13, 0), Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
[Export ("newSharedTextureHandle")]
|
|
MTLSharedTextureHandle CreateSharedTextureHandle ();
|
|
|
|
#if NET && !__MACOS__ && !__MACCATALYST__
|
|
[Abstract]
|
|
#endif
|
|
|
|
[Mac (11, 0), NoTV, iOS (13, 0), MacCatalyst (15, 0)]
|
|
[Export ("firstMipmapInTail")]
|
|
nuint FirstMipmapInTail { get; }
|
|
|
|
#if NET && !__MACOS__ && !__MACCATALYST__
|
|
[Abstract]
|
|
#endif
|
|
[Mac (11, 0), NoTV, iOS (13, 0), MacCatalyst (15, 0)]
|
|
[Export ("tailSizeInBytes")]
|
|
nuint TailSizeInBytes { get; }
|
|
|
|
#if NET && !__MACOS__ && !__MACCATALYST__
|
|
[Abstract]
|
|
#endif
|
|
[Mac (11, 0), NoTV, iOS (13, 0), MacCatalyst (15, 0)]
|
|
[Export ("isSparse")]
|
|
bool IsSparse { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (10, 15), TV (13, 0), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("swizzle")]
|
|
MTLTextureSwizzleChannels Swizzle { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (10, 15), TV (13, 0), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("newTextureViewWithPixelFormat:textureType:levels:slices:swizzle:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLTexture Create (MTLPixelFormat pixelFormat, MTLTextureType textureType, NSRange levelRange, NSRange sliceRange, MTLTextureSwizzleChannels swizzle);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NoiOS, NoTV, Mac (10, 15)]
|
|
[NoMacCatalyst]
|
|
[NullAllowed, Export ("remoteStorageTexture")]
|
|
IMTLTexture RemoteStorageTexture { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NoiOS, NoTV, Mac (10, 15)]
|
|
[NoMacCatalyst]
|
|
[Export ("newRemoteTextureViewForDevice:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLTexture CreateRemoteTexture (IMTLDevice device);
|
|
}
|
|
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
partial interface MTLTextureDescriptor : NSCopying {
|
|
|
|
[Export ("textureType", ArgumentSemantic.Assign)]
|
|
MTLTextureType TextureType { get; set; }
|
|
|
|
[Export ("pixelFormat", ArgumentSemantic.Assign)]
|
|
MTLPixelFormat PixelFormat { get; set; }
|
|
|
|
[Export ("width")]
|
|
nuint Width { get; set; }
|
|
|
|
[Export ("height")]
|
|
nuint Height { get; set; }
|
|
|
|
[Export ("depth")]
|
|
nuint Depth { get; set; }
|
|
|
|
[Export ("mipmapLevelCount")]
|
|
nuint MipmapLevelCount { get; set; }
|
|
|
|
[Export ("sampleCount")]
|
|
nuint SampleCount { get; set; }
|
|
|
|
[Export ("arrayLength")]
|
|
nuint ArrayLength { get; set; }
|
|
|
|
[Export ("resourceOptions", ArgumentSemantic.Assign)]
|
|
MTLResourceOptions ResourceOptions { get; set; }
|
|
|
|
[Static, Export ("texture2DDescriptorWithPixelFormat:width:height:mipmapped:")]
|
|
MTLTextureDescriptor CreateTexture2DDescriptor (MTLPixelFormat pixelFormat, nuint width, nuint height, bool mipmapped);
|
|
|
|
[Static, Export ("textureCubeDescriptorWithPixelFormat:size:mipmapped:")]
|
|
MTLTextureDescriptor CreateTextureCubeDescriptor (MTLPixelFormat pixelFormat, nuint size, bool mipmapped);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Static, Export ("textureBufferDescriptorWithPixelFormat:width:resourceOptions:usage:")]
|
|
MTLTextureDescriptor CreateTextureBufferDescriptor (MTLPixelFormat pixelFormat, nuint width, MTLResourceOptions resourceOptions, MTLTextureUsage usage);
|
|
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("cpuCacheMode", ArgumentSemantic.Assign)]
|
|
MTLCpuCacheMode CpuCacheMode { get; set; }
|
|
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("storageMode", ArgumentSemantic.Assign)]
|
|
MTLStorageMode StorageMode { get; set; }
|
|
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("usage", ArgumentSemantic.Assign)]
|
|
MTLTextureUsage Usage { get; set; }
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("allowGPUOptimizedContents")]
|
|
bool AllowGpuOptimizedContents { get; set; }
|
|
|
|
[NoMac, iOS (15, 0), NoMacCatalyst, NoTV, NoWatch]
|
|
[Export ("compressionType")]
|
|
MTLTextureCompressionType CompressionType { get; set; }
|
|
|
|
[Mac (10, 15), iOS (13, 0), TV (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("hazardTrackingMode", ArgumentSemantic.Assign)]
|
|
MTLHazardTrackingMode HazardTrackingMode { get; set; }
|
|
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("swizzle", ArgumentSemantic.Assign)]
|
|
MTLTextureSwizzleChannels Swizzle { get; set; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
partial interface MTLSamplerDescriptor : NSCopying {
|
|
|
|
[Export ("minFilter", ArgumentSemantic.Assign)]
|
|
MTLSamplerMinMagFilter MinFilter { get; set; }
|
|
|
|
[Export ("magFilter", ArgumentSemantic.Assign)]
|
|
MTLSamplerMinMagFilter MagFilter { get; set; }
|
|
|
|
[Export ("mipFilter", ArgumentSemantic.Assign)]
|
|
MTLSamplerMipFilter MipFilter { get; set; }
|
|
|
|
[Export ("maxAnisotropy")]
|
|
nuint MaxAnisotropy { get; set; }
|
|
|
|
[Export ("sAddressMode", ArgumentSemantic.Assign)]
|
|
MTLSamplerAddressMode SAddressMode { get; set; }
|
|
|
|
[Export ("tAddressMode", ArgumentSemantic.Assign)]
|
|
MTLSamplerAddressMode TAddressMode { get; set; }
|
|
|
|
[Export ("rAddressMode", ArgumentSemantic.Assign)]
|
|
MTLSamplerAddressMode RAddressMode { get; set; }
|
|
|
|
[Export ("normalizedCoordinates")]
|
|
bool NormalizedCoordinates { get; set; }
|
|
|
|
[Export ("lodMinClamp")]
|
|
float LodMinClamp { get; set; } /* float, not CGFloat */
|
|
|
|
[Export ("lodMaxClamp")]
|
|
float LodMaxClamp { get; set; } /* float, not CGFloat */
|
|
|
|
[iOS (9, 0), Mac (11, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("lodAverage")]
|
|
bool LodAverage { get; set; }
|
|
|
|
[iOS (14, 0), NoTV, NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("borderColor", ArgumentSemantic.Assign)]
|
|
MTLSamplerBorderColor BorderColor { get; set; }
|
|
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("compareFunction")]
|
|
MTLCompareFunction CompareFunction { get; set; }
|
|
|
|
[Export ("label")]
|
|
[NullAllowed]
|
|
string Label { get; set; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("supportArgumentBuffers")]
|
|
bool SupportArgumentBuffers { get; set; }
|
|
}
|
|
|
|
interface IMTLSamplerState { }
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLSamplerState {
|
|
|
|
[Abstract, Export ("label")]
|
|
string Label { get; }
|
|
|
|
[Abstract, Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
partial interface MTLRenderPipelineDescriptor : NSCopying {
|
|
|
|
[Export ("label")]
|
|
[NullAllowed]
|
|
string Label { get; set; }
|
|
|
|
[NullAllowed] // by default this property is null
|
|
[Export ("vertexFunction", ArgumentSemantic.Retain)]
|
|
IMTLFunction VertexFunction { get; set; }
|
|
|
|
[NullAllowed] // by default this property is null
|
|
[Export ("fragmentFunction", ArgumentSemantic.Retain)]
|
|
IMTLFunction FragmentFunction { get; set; }
|
|
|
|
[Export ("vertexDescriptor", ArgumentSemantic.Copy)]
|
|
[NullAllowed]
|
|
MTLVertexDescriptor VertexDescriptor { get; set; }
|
|
|
|
[Export ("sampleCount")]
|
|
nuint SampleCount { get; set; }
|
|
|
|
[Export ("alphaToCoverageEnabled")]
|
|
bool AlphaToCoverageEnabled { [Bind ("isAlphaToCoverageEnabled")] get; set; }
|
|
|
|
[Export ("alphaToOneEnabled")]
|
|
bool AlphaToOneEnabled { [Bind ("isAlphaToOneEnabled")] get; set; }
|
|
|
|
[Export ("rasterizationEnabled")]
|
|
bool RasterizationEnabled { [Bind ("isRasterizationEnabled")] get; set; }
|
|
|
|
[Export ("reset")]
|
|
void Reset ();
|
|
|
|
[Export ("colorAttachments")]
|
|
MTLRenderPipelineColorAttachmentDescriptorArray ColorAttachments { get; }
|
|
|
|
[Export ("depthAttachmentPixelFormat")]
|
|
MTLPixelFormat DepthAttachmentPixelFormat { get; set; }
|
|
|
|
[Export ("stencilAttachmentPixelFormat")]
|
|
MTLPixelFormat StencilAttachmentPixelFormat { get; set; }
|
|
|
|
[iOS (12, 0)]
|
|
[TV (14, 5)]
|
|
[NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("inputPrimitiveTopology", ArgumentSemantic.Assign)]
|
|
MTLPrimitiveTopologyClass InputPrimitiveTopology { get; set; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("tessellationPartitionMode", ArgumentSemantic.Assign)]
|
|
MTLTessellationPartitionMode TessellationPartitionMode { get; set; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("maxTessellationFactor")]
|
|
nuint MaxTessellationFactor { get; set; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("tessellationFactorScaleEnabled")]
|
|
bool IsTessellationFactorScaleEnabled { [Bind ("isTessellationFactorScaleEnabled")] get; set; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("tessellationFactorFormat", ArgumentSemantic.Assign)]
|
|
MTLTessellationFactorFormat TessellationFactorFormat { get; set; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("tessellationControlPointIndexType", ArgumentSemantic.Assign)]
|
|
MTLTessellationControlPointIndexType TessellationControlPointIndexType { get; set; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("tessellationFactorStepFunction", ArgumentSemantic.Assign)]
|
|
MTLTessellationFactorStepFunction TessellationFactorStepFunction { get; set; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("tessellationOutputWindingOrder", ArgumentSemantic.Assign)]
|
|
MTLWinding TessellationOutputWindingOrder { get; set; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("vertexBuffers")]
|
|
MTLPipelineBufferDescriptorArray VertexBuffers { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("fragmentBuffers")]
|
|
MTLPipelineBufferDescriptorArray FragmentBuffers { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("rasterSampleCount")]
|
|
nuint RasterSampleCount { get; set; }
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("supportIndirectCommandBuffers")]
|
|
bool SupportIndirectCommandBuffers { get; set; }
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[Export ("maxVertexAmplificationCount")]
|
|
nuint MaxVertexAmplificationCount { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[NullAllowed, Export ("binaryArchives", ArgumentSemantic.Copy)]
|
|
IMTLBinaryArchive [] BinaryArchives { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("vertexPreloadedLibraries", ArgumentSemantic.Copy)]
|
|
IMTLDynamicLibrary [] VertexPreloadedLibraries { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[NullAllowed, Export ("vertexLinkedFunctions", ArgumentSemantic.Copy)]
|
|
MTLLinkedFunctions VertexLinkedFunctions { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("supportAddingVertexBinaryFunctions")]
|
|
bool SupportAddingVertexBinaryFunctions { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("supportAddingFragmentBinaryFunctions")]
|
|
bool SupportAddingFragmentBinaryFunctions { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("maxVertexCallStackDepth")]
|
|
nuint MaxVertexCallStackDepth { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("maxFragmentCallStackDepth")]
|
|
nuint MaxFragmentCallStackDepth { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("fragmentPreloadedLibraries", ArgumentSemantic.Copy)]
|
|
IMTLDynamicLibrary [] FragmentPreloadedLibraries { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[NullAllowed, Export ("fragmentLinkedFunctions", ArgumentSemantic.Copy)]
|
|
MTLLinkedFunctions FragmentLinkedFunctions { get; set; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRenderPipelineColorAttachmentDescriptorArray {
|
|
|
|
[Export ("objectAtIndexedSubscript:"), Internal]
|
|
MTLRenderPipelineColorAttachmentDescriptor ObjectAtIndexedSubscript (nuint attachmentIndex);
|
|
|
|
[Export ("setObject:atIndexedSubscript:"), Internal]
|
|
void SetObject ([NullAllowed] MTLRenderPipelineColorAttachmentDescriptor attachment, nuint attachmentIndex);
|
|
}
|
|
|
|
interface IMTLRenderPipelineState { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLRenderPipelineState {
|
|
|
|
[Abstract, Export ("label")]
|
|
string Label { get; }
|
|
|
|
[Abstract, Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("maxTotalThreadsPerThreadgroup")]
|
|
nuint MaxTotalThreadsPerThreadgroup { get; }
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("threadgroupSizeMatchesTileSize")]
|
|
bool ThreadgroupSizeMatchesTileSize { get; }
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("imageblockSampleLength")]
|
|
nuint ImageblockSampleLength { get; }
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("imageblockMemoryLengthForDimensions:")]
|
|
nuint GetImageblockMemoryLength (MTLSize imageblockDimensions);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("supportIndirectCommandBuffers")]
|
|
bool SupportIndirectCommandBuffers { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)]
|
|
[Export ("functionHandleWithFunction:stage:")]
|
|
[return: NullAllowed]
|
|
IMTLFunctionHandle FunctionHandleWithFunction (IMTLFunction function, MTLRenderStages stage);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)]
|
|
[Export ("newVisibleFunctionTableWithDescriptor:stage:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLVisibleFunctionTable NewVisibleFunctionTableWithDescriptor (MTLVisibleFunctionTableDescriptor descriptor, MTLRenderStages stage);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)]
|
|
[Export ("newIntersectionFunctionTableWithDescriptor:stage:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLIntersectionFunctionTable NewIntersectionFunctionTableWithDescriptor (MTLIntersectionFunctionTableDescriptor descriptor, MTLRenderStages stage);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, NoWatch, MacCatalyst (15, 0)]
|
|
[Export ("newRenderPipelineStateWithAdditionalBinaryFunctions:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLRenderPipelineState NewRenderPipelineStateWithAdditionalBinaryFunctions (MTLRenderPipelineFunctionsDescriptor additionalBinaryFunctions, [NullAllowed] out NSError error);
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLVertexBufferLayoutDescriptor : NSCopying {
|
|
[Export ("stride", ArgumentSemantic.UnsafeUnretained)]
|
|
nuint Stride { get; set; }
|
|
|
|
[Export ("stepFunction", ArgumentSemantic.Assign)]
|
|
MTLVertexStepFunction StepFunction { get; set; }
|
|
|
|
[Export ("stepRate", ArgumentSemantic.UnsafeUnretained)]
|
|
nuint StepRate { get; set; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLVertexBufferLayoutDescriptorArray {
|
|
[Export ("objectAtIndexedSubscript:"), Internal]
|
|
MTLVertexBufferLayoutDescriptor ObjectAtIndexedSubscript (nuint index);
|
|
|
|
[Export ("setObject:atIndexedSubscript:"), Internal]
|
|
void SetObject ([NullAllowed] MTLVertexBufferLayoutDescriptor bufferDesc, nuint index);
|
|
}
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLAttribute {
|
|
[Export ("name")]
|
|
string Name { get; }
|
|
|
|
[Export ("attributeIndex")]
|
|
nuint AttributeIndex { get; }
|
|
|
|
[Export ("attributeType")]
|
|
MTLDataType AttributeType { get; }
|
|
|
|
[Export ("active")]
|
|
bool Active { [Bind ("isActive")] get; }
|
|
|
|
[Export ("patchData")]
|
|
bool IsPatchData { [Bind ("isPatchData")] get; }
|
|
|
|
[Export ("patchControlPointData")]
|
|
bool IsPatchControlPointData { [Bind ("isPatchControlPointData")] get; }
|
|
}
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLAttributeDescriptor : NSCopying {
|
|
[Export ("format", ArgumentSemantic.Assign)]
|
|
MTLAttributeFormat Format { get; set; }
|
|
|
|
[Export ("offset")]
|
|
nuint Offset { get; set; }
|
|
|
|
[Export ("bufferIndex")]
|
|
nuint BufferIndex { get; set; }
|
|
}
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLAttributeDescriptorArray {
|
|
[Internal]
|
|
[Export ("objectAtIndexedSubscript:")]
|
|
MTLAttributeDescriptor ObjectAtIndexedSubscript (nuint index);
|
|
|
|
[Internal]
|
|
[Export ("setObject:atIndexedSubscript:")]
|
|
void SetObject ([NullAllowed] MTLAttributeDescriptor attributeDesc, nuint index);
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLVertexAttributeDescriptor : NSCopying {
|
|
[Export ("format", ArgumentSemantic.Assign)]
|
|
MTLVertexFormat Format { get; set; }
|
|
|
|
[Export ("offset", ArgumentSemantic.Assign)]
|
|
nuint Offset { get; set; }
|
|
|
|
[Export ("bufferIndex", ArgumentSemantic.Assign)]
|
|
nuint BufferIndex { get; set; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLVertexAttributeDescriptorArray {
|
|
[Export ("objectAtIndexedSubscript:"), Internal]
|
|
MTLVertexAttributeDescriptor ObjectAtIndexedSubscript (nuint index);
|
|
|
|
[Export ("setObject:atIndexedSubscript:"), Internal]
|
|
void SetObject ([NullAllowed] MTLVertexAttributeDescriptor attributeDesc, nuint index);
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
partial interface MTLVertexDescriptor : NSCopying {
|
|
[Static, Export ("vertexDescriptor")]
|
|
MTLVertexDescriptor Create ();
|
|
|
|
[Export ("reset")]
|
|
void Reset ();
|
|
|
|
[Export ("layouts")]
|
|
MTLVertexBufferLayoutDescriptorArray Layouts { get; }
|
|
|
|
[Export ("attributes")]
|
|
MTLVertexAttributeDescriptorArray Attributes { get; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
partial interface MTLVertexAttribute {
|
|
[Export ("attributeIndex")]
|
|
nuint AttributeIndex { get; }
|
|
|
|
[iOS (8, 3)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("attributeType")]
|
|
MTLDataType AttributeType { get; }
|
|
|
|
[Export ("active")]
|
|
bool Active { [Bind ("isActive")] get; }
|
|
|
|
[Export ("name")]
|
|
string Name { get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("patchData")]
|
|
bool PatchData { [Bind ("isPatchData")] get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("patchControlPointData")]
|
|
bool PatchControlPointData { [Bind ("isPatchControlPointData")] get; }
|
|
}
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
[DisableDefaultCtor]
|
|
interface MTLFunctionConstantValues : NSCopying {
|
|
[iOS (11, 0), TV (11, 0), Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("init")]
|
|
NativeHandle Constructor ();
|
|
|
|
[Export ("setConstantValue:type:atIndex:")]
|
|
void SetConstantValue (IntPtr value, MTLDataType type, nuint index);
|
|
|
|
[Export ("setConstantValues:type:withRange:")]
|
|
void SetConstantValues (IntPtr values, MTLDataType type, NSRange range);
|
|
|
|
[Export ("setConstantValue:type:withName:")]
|
|
void SetConstantValue (IntPtr value, MTLDataType type, string name);
|
|
|
|
[Export ("reset")]
|
|
void Reset ();
|
|
}
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLFunctionConstant {
|
|
[Export ("name")]
|
|
string Name { get; }
|
|
|
|
[Export ("type")]
|
|
MTLDataType Type { get; }
|
|
|
|
[Export ("index")]
|
|
nuint Index { get; }
|
|
|
|
[Export ("required")]
|
|
bool IsRequired { get; }
|
|
}
|
|
|
|
interface IMTLFunction { }
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLFunction {
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract, Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract, Export ("functionType")]
|
|
MTLFunctionType FunctionType { get; }
|
|
|
|
[Abstract, Export ("vertexAttributes")]
|
|
MTLVertexAttribute [] VertexAttributes { get; }
|
|
|
|
[Abstract, Export ("name")]
|
|
string Name { get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("patchType")]
|
|
MTLPatchType PatchType { get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("patchControlPointCount")]
|
|
nint PatchControlPointCount { get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NullAllowed, Export ("stageInputAttributes")]
|
|
MTLAttribute [] StageInputAttributes { get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("functionConstantsDictionary")]
|
|
NSDictionary<NSString, MTLFunctionConstant> FunctionConstants { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newArgumentEncoderWithBufferIndex:")]
|
|
[return: Release]
|
|
IMTLArgumentEncoder CreateArgumentEncoder (nuint bufferIndex);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newArgumentEncoderWithBufferIndex:reflection:")]
|
|
[return: Release]
|
|
IMTLArgumentEncoder CreateArgumentEncoder (nuint bufferIndex, [NullAllowed] out MTLArgument reflection);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("options")]
|
|
MTLFunctionOptions Options { get; }
|
|
}
|
|
|
|
interface IMTLLibrary { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLLibrary {
|
|
|
|
[Abstract, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract, Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract, Export ("functionNames")]
|
|
string [] FunctionNames { get; }
|
|
|
|
[Abstract, Export ("newFunctionWithName:")]
|
|
[return: Release]
|
|
IMTLFunction CreateFunction (string functionName);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newFunctionWithName:constantValues:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLFunction CreateFunction (string name, MTLFunctionConstantValues constantValues, out NSError error);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newFunctionWithName:constantValues:completionHandler:")]
|
|
[Async]
|
|
void CreateFunction (string name, MTLFunctionConstantValues constantValues, Action<IMTLFunction, NSError> completionHandler);
|
|
|
|
[Field ("MTLLibraryErrorDomain")]
|
|
NSString ErrorDomain { get; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newFunctionWithDescriptor:completionHandler:")]
|
|
void CreateFunction (MTLFunctionDescriptor descriptor, Action<IMTLFunction, NSError> completionHandler);
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newFunctionWithDescriptor:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLFunction CreateFunction (MTLFunctionDescriptor descriptor, [NullAllowed] out NSError error);
|
|
|
|
// protocol, so no Async
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newIntersectionFunctionWithDescriptor:completionHandler:")]
|
|
void CreateIntersectionFunction (MTLIntersectionFunctionDescriptor descriptor, Action<IMTLFunction, NSError> completionHandler);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newIntersectionFunctionWithDescriptor:error:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLFunction CreateIntersectionFunction (MTLIntersectionFunctionDescriptor descriptor, [NullAllowed] out NSError error);
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("type")]
|
|
MTLLibraryType Type { get; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NullAllowed, Export ("installName")]
|
|
string InstallName { get; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
partial interface MTLCompileOptions : NSCopying {
|
|
|
|
[NullAllowed] // by default this property is null
|
|
[Export ("preprocessorMacros", ArgumentSemantic.Copy)]
|
|
#if NET
|
|
NSDictionary<NSString, NSObject> PreprocessorMacros { get; set; }
|
|
#else
|
|
NSDictionary PreprocessorMacros { get; set; }
|
|
#endif
|
|
|
|
[Export ("fastMathEnabled")]
|
|
bool FastMathEnabled { get; set; }
|
|
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("languageVersion", ArgumentSemantic.Assign)]
|
|
MTLLanguageVersion LanguageVersion { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("libraryType", ArgumentSemantic.Assign)]
|
|
MTLLibraryType LibraryType { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[NullAllowed, Export ("installName")]
|
|
string InstallName { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[NullAllowed, Export ("libraries", ArgumentSemantic.Copy)]
|
|
IMTLDynamicLibrary [] Libraries { get; set; }
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[Mac (11, 0), iOS (13, 0), TV (14, 0)]
|
|
[Export ("preserveInvariance")]
|
|
bool PreserveInvariance { get; set; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
partial interface MTLStencilDescriptor : NSCopying {
|
|
[Export ("stencilCompareFunction")]
|
|
MTLCompareFunction StencilCompareFunction { get; set; }
|
|
|
|
[Export ("stencilFailureOperation")]
|
|
MTLStencilOperation StencilFailureOperation { get; set; }
|
|
|
|
[Export ("depthFailureOperation")]
|
|
MTLStencilOperation DepthFailureOperation { get; set; }
|
|
|
|
[Export ("depthStencilPassOperation")]
|
|
MTLStencilOperation DepthStencilPassOperation { get; set; }
|
|
|
|
[Export ("readMask")]
|
|
uint ReadMask { get; set; } /* uint32_t */
|
|
|
|
[Export ("writeMask")]
|
|
uint WriteMask { get; set; } /* uint32_t */
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLStructMember {
|
|
[Export ("name")]
|
|
string Name { get; }
|
|
|
|
[Export ("offset")]
|
|
nuint Offset { get; }
|
|
|
|
[Export ("dataType")]
|
|
MTLDataType DataType { get; }
|
|
|
|
#if NET
|
|
[Export ("structType")]
|
|
[NullAllowed]
|
|
MTLStructType StructType { get; }
|
|
|
|
[Export ("arrayType")]
|
|
[NullAllowed]
|
|
MTLArrayType ArrayType { get; }
|
|
#else
|
|
[Export ("structType")]
|
|
[return: NullAllowed]
|
|
MTLStructType StructType ();
|
|
|
|
[Export ("arrayType")]
|
|
[return: NullAllowed]
|
|
MTLArrayType ArrayType ();
|
|
#endif
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("argumentIndex")]
|
|
nuint ArgumentIndex { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[NullAllowed, Export ("textureReferenceType")]
|
|
MTLTextureReferenceType TextureReferenceType { get; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[NullAllowed, Export ("pointerType")]
|
|
MTLPointerType PointerType { get; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (MTLType))]
|
|
interface MTLStructType {
|
|
[Export ("members")]
|
|
MTLStructMember [] Members { get; }
|
|
|
|
[Export ("memberByName:")]
|
|
[return: NullAllowed]
|
|
MTLStructMember Lookup (string name);
|
|
}
|
|
|
|
interface IMTLDepthStencilState { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLDepthStencilState {
|
|
[Abstract]
|
|
[Export ("label")]
|
|
string Label { get; }
|
|
|
|
[Abstract]
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
partial interface MTLDepthStencilDescriptor : NSCopying {
|
|
|
|
[Export ("depthCompareFunction")]
|
|
MTLCompareFunction DepthCompareFunction { get; set; }
|
|
|
|
[Export ("depthWriteEnabled")]
|
|
bool DepthWriteEnabled { [Bind ("isDepthWriteEnabled")] get; set; }
|
|
|
|
[Export ("frontFaceStencil", ArgumentSemantic.Copy)]
|
|
[NullAllowed]
|
|
MTLStencilDescriptor FrontFaceStencil { get; set; }
|
|
|
|
[Export ("backFaceStencil", ArgumentSemantic.Copy)]
|
|
[NullAllowed]
|
|
MTLStencilDescriptor BackFaceStencil { get; set; }
|
|
|
|
[Export ("label")]
|
|
[NullAllowed]
|
|
string Label { get; set; }
|
|
}
|
|
|
|
interface IMTLParallelRenderCommandEncoder { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
interface MTLParallelRenderCommandEncoder : MTLCommandEncoder {
|
|
[Abstract]
|
|
[Export ("renderCommandEncoder")]
|
|
[Autorelease]
|
|
[return: NullAllowed]
|
|
IMTLRenderCommandEncoder CreateRenderCommandEncoder ();
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setColorStoreAction:atIndex:")]
|
|
void SetColorStoreAction (MTLStoreAction storeAction, nuint colorAttachmentIndex);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setDepthStoreAction:")]
|
|
void SetDepthStoreAction (MTLStoreAction storeAction);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setStencilStoreAction:")]
|
|
void SetStencilStoreAction (MTLStoreAction storeAction);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setColorStoreActionOptions:atIndex:")]
|
|
void SetColorStoreActionOptions (MTLStoreActionOptions storeActionOptions, nuint colorAttachmentIndex);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setDepthStoreActionOptions:")]
|
|
void SetDepthStoreActionOptions (MTLStoreActionOptions storeActionOptions);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setStencilStoreActionOptions:")]
|
|
void SetStencilStoreActionOptions (MTLStoreActionOptions storeActionOptions);
|
|
}
|
|
|
|
interface IMTLRenderCommandEncoder { }
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLRenderCommandEncoder : MTLCommandEncoder {
|
|
|
|
[Abstract, Export ("setRenderPipelineState:")]
|
|
void SetRenderPipelineState (IMTLRenderPipelineState pipelineState);
|
|
|
|
[Abstract, Export ("setVertexBuffer:offset:atIndex:")]
|
|
void SetVertexBuffer (IMTLBuffer buffer, nuint offset, nuint index);
|
|
|
|
[Abstract, Export ("setVertexTexture:atIndex:")]
|
|
void SetVertexTexture (IMTLTexture texture, nuint index);
|
|
|
|
[Abstract, Export ("setVertexSamplerState:atIndex:")]
|
|
void SetVertexSamplerState (IMTLSamplerState sampler, nuint index);
|
|
|
|
[Abstract, Export ("setVertexSamplerState:lodMinClamp:lodMaxClamp:atIndex:")]
|
|
void SetVertexSamplerState (IMTLSamplerState sampler, float /* float, not CGFloat */ lodMinClamp, float /* float, not CGFloat */ lodMaxClamp, nuint index);
|
|
|
|
[Abstract, Export ("setViewport:")]
|
|
void SetViewport (MTLViewport viewport);
|
|
|
|
[Abstract, Export ("setFrontFacingWinding:")]
|
|
void SetFrontFacingWinding (MTLWinding frontFacingWinding);
|
|
|
|
[Abstract, Export ("setCullMode:")]
|
|
void SetCullMode (MTLCullMode cullMode);
|
|
|
|
[iOS (9, 0)] // Current headers claim this member was introduced in iOS 11, but it also shows up in Xcode 7's header (as introduced in iOS 9)
|
|
[Mac (10, 11), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setDepthClipMode:")]
|
|
void SetDepthClipMode (MTLDepthClipMode depthClipMode);
|
|
|
|
[Abstract, Export ("setDepthBias:slopeScale:clamp:")]
|
|
void SetDepthBias (float /* float, not CGFloat */ depthBias, float /* float, not CGFloat */ slopeScale, float /* float, not CGFloat */ clamp);
|
|
|
|
[Abstract, Export ("setScissorRect:")]
|
|
void SetScissorRect (MTLScissorRect rect);
|
|
|
|
[Abstract, Export ("setTriangleFillMode:")]
|
|
void SetTriangleFillMode (MTLTriangleFillMode fillMode);
|
|
|
|
[Abstract, Export ("setFragmentBuffer:offset:atIndex:")]
|
|
void SetFragmentBuffer (IMTLBuffer buffer, nuint offset, nuint index);
|
|
|
|
[iOS (8, 3)]
|
|
[MacCatalyst (13, 1)]
|
|
[Abstract, Export ("setFragmentBufferOffset:atIndex:")]
|
|
void SetFragmentBufferOffset (nuint offset, nuint index);
|
|
|
|
[iOS (8, 3)]
|
|
[MacCatalyst (13, 1)]
|
|
[Abstract, Export ("setFragmentBytes:length:atIndex:")]
|
|
void SetFragmentBytes (IntPtr bytes, nuint length, nuint index);
|
|
|
|
[Abstract, Export ("setFragmentTexture:atIndex:")]
|
|
void SetFragmentTexture (IMTLTexture texture, nuint index);
|
|
|
|
[Abstract, Export ("setFragmentSamplerState:atIndex:")]
|
|
void SetFragmentSamplerState (IMTLSamplerState sampler, nuint index);
|
|
|
|
[Abstract, Export ("setFragmentSamplerState:lodMinClamp:lodMaxClamp:atIndex:")]
|
|
void SetFragmentSamplerState (IMTLSamplerState sampler, float /* float, not CGFloat */ lodMinClamp, float /* float, not CGFloat */ lodMaxClamp, nuint index);
|
|
|
|
[Abstract, Export ("setBlendColorRed:green:blue:alpha:")]
|
|
void SetBlendColor (float /* float, not CGFloat */ red, float /* float, not CGFloat */ green, float /* float, not CGFloat */ blue, float /* float, not CGFloat */ alpha);
|
|
|
|
[Abstract, Export ("setDepthStencilState:")]
|
|
void SetDepthStencilState (IMTLDepthStencilState depthStencilState);
|
|
|
|
[Abstract, Export ("setStencilReferenceValue:")]
|
|
void SetStencilReferenceValue (uint /* uint32_t */ referenceValue);
|
|
|
|
[iOS (9, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setStencilFrontReferenceValue:backReferenceValue:")]
|
|
void SetStencilFrontReferenceValue (uint frontReferenceValue, uint backReferenceValue);
|
|
|
|
[Abstract, Export ("setVisibilityResultMode:offset:")]
|
|
void SetVisibilityResultMode (MTLVisibilityResultMode mode, nuint offset);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setColorStoreAction:atIndex:")]
|
|
void SetColorStoreAction (MTLStoreAction storeAction, nuint colorAttachmentIndex);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setDepthStoreAction:")]
|
|
void SetDepthStoreAction (MTLStoreAction storeAction);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setStencilStoreAction:")]
|
|
void SetStencilStoreAction (MTLStoreAction storeAction);
|
|
|
|
[Abstract, Export ("drawPrimitives:vertexStart:vertexCount:instanceCount:")]
|
|
void DrawPrimitives (MTLPrimitiveType primitiveType, nuint vertexStart, nuint vertexCount, nuint instanceCount);
|
|
|
|
[Abstract, Export ("drawPrimitives:vertexStart:vertexCount:")]
|
|
void DrawPrimitives (MTLPrimitiveType primitiveType, nuint vertexStart, nuint vertexCount);
|
|
|
|
[Abstract, Export ("drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:")]
|
|
void DrawIndexedPrimitives (MTLPrimitiveType primitiveType, nuint indexCount, MTLIndexType indexType, IMTLBuffer indexBuffer, nuint indexBufferOffset, nuint instanceCount);
|
|
|
|
[Abstract, Export ("drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:")]
|
|
void DrawIndexedPrimitives (MTLPrimitiveType primitiveType, nuint indexCount, MTLIndexType indexType, IMTLBuffer indexBuffer, nuint indexBufferOffset);
|
|
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("drawPrimitives:vertexStart:vertexCount:instanceCount:baseInstance:")]
|
|
void DrawPrimitives (MTLPrimitiveType primitiveType, nuint vertexStart, nuint vertexCount, nuint instanceCount, nuint baseInstance);
|
|
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:baseVertex:baseInstance:")]
|
|
void DrawIndexedPrimitives (MTLPrimitiveType primitiveType, nuint indexCount, MTLIndexType indexType, IMTLBuffer indexBuffer, nuint indexBufferOffset, nuint instanceCount, nint baseVertex, nuint baseInstance);
|
|
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("drawPrimitives:indirectBuffer:indirectBufferOffset:")]
|
|
void DrawPrimitives (MTLPrimitiveType primitiveType, IMTLBuffer indirectBuffer, nuint indirectBufferOffset);
|
|
|
|
#if NET
|
|
// Apple added a new required member in iOS 9, but that breaks our binary compat, so we can't do that in our existing code.
|
|
[Abstract]
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("drawIndexedPrimitives:indexType:indexBuffer:indexBufferOffset:indirectBuffer:indirectBufferOffset:")]
|
|
void DrawIndexedPrimitives (MTLPrimitiveType primitiveType, MTLIndexType indexType, IMTLBuffer indexBuffer, nuint indexBufferOffset, IMTLBuffer indirectBuffer, nuint indirectBufferOffset);
|
|
|
|
[Abstract, Export ("setFragmentBuffers:offsets:withRange:")]
|
|
void SetFragmentBuffers (IMTLBuffer buffers, IntPtr IntPtrOffsets, NSRange range);
|
|
|
|
[Abstract, Export ("setFragmentSamplerStates:lodMinClamps:lodMaxClamps:withRange:")]
|
|
void SetFragmentSamplerStates (IMTLSamplerState [] samplers, IntPtr floatArrayPtrLodMinClamps, IntPtr floatArrayPtrLodMaxClamps, NSRange range);
|
|
|
|
[Abstract, Export ("setFragmentSamplerStates:withRange:")]
|
|
void SetFragmentSamplerStates (IMTLSamplerState [] samplers, NSRange range);
|
|
|
|
[Abstract, Export ("setFragmentTextures:withRange:")]
|
|
void SetFragmentTextures (IMTLTexture [] textures, NSRange range);
|
|
|
|
[Abstract, Export ("setVertexBuffers:offsets:withRange:")]
|
|
void SetVertexBuffers (IMTLBuffer [] buffers, IntPtr uintArrayPtrOffsets, NSRange range);
|
|
|
|
[iOS (8, 3)]
|
|
[MacCatalyst (13, 1)]
|
|
[Abstract, Export ("setVertexBufferOffset:atIndex:")]
|
|
void SetVertexBufferOffset (nuint offset, nuint index);
|
|
|
|
[iOS (8, 3)]
|
|
[MacCatalyst (13, 1)]
|
|
[Abstract, Export ("setVertexBytes:length:atIndex:")]
|
|
void SetVertexBytes (IntPtr bytes, nuint length, nuint index);
|
|
|
|
[Abstract, Export ("setVertexSamplerStates:lodMinClamps:lodMaxClamps:withRange:")]
|
|
void SetVertexSamplerStates (IMTLSamplerState [] samplers, IntPtr floatArrayPtrLodMinClamps, IntPtr floatArrayPtrLodMaxClamps, NSRange range);
|
|
|
|
[Abstract, Export ("setVertexSamplerStates:withRange:")]
|
|
void SetVertexSamplerStates (IMTLSamplerState [] samplers, NSRange range);
|
|
|
|
[Abstract]
|
|
[Export ("setVertexTextures:withRange:")]
|
|
void SetVertexTextures (IMTLTexture [] textures, NSRange range);
|
|
|
|
[NoiOS, NoTV, NoWatch, Mac (10, 11)]
|
|
[Deprecated (PlatformName.MacOSX, 10, 14, message: "Use 'MemoryBarrier (MTLBarrierScope, MTLRenderStages, MTLRenderStages)' instead.")]
|
|
[NoMacCatalyst]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("textureBarrier")]
|
|
void TextureBarrier ();
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("updateFence:afterStages:")]
|
|
void Update (IMTLFence fence, MTLRenderStages stages);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("waitForFence:beforeStages:")]
|
|
void Wait (IMTLFence fence, MTLRenderStages stages);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTessellationFactorBuffer:offset:instanceStride:")]
|
|
void SetTessellationFactorBuffer ([NullAllowed] IMTLBuffer buffer, nuint offset, nuint instanceStride);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTessellationFactorScale:")]
|
|
void SetTessellationFactorScale (float scale);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("drawPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:instanceCount:baseInstance:")]
|
|
void DrawPatches (nuint numberOfPatchControlPoints, nuint patchStart, nuint patchCount, [NullAllowed] IMTLBuffer patchIndexBuffer, nuint patchIndexBufferOffset, nuint instanceCount, nuint baseInstance);
|
|
|
|
[iOS (12, 0)]
|
|
[NoWatch, Mac (10, 12)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("drawPatches:patchIndexBuffer:patchIndexBufferOffset:indirectBuffer:indirectBufferOffset:")]
|
|
void DrawPatches (nuint numberOfPatchControlPoints, [NullAllowed] IMTLBuffer patchIndexBuffer, nuint patchIndexBufferOffset, IMTLBuffer indirectBuffer, nuint indirectBufferOffset);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("drawIndexedPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:controlPointIndexBuffer:controlPointIndexBufferOffset:instanceCount:baseInstance:")]
|
|
void DrawIndexedPatches (nuint numberOfPatchControlPoints, nuint patchStart, nuint patchCount, [NullAllowed] IMTLBuffer patchIndexBuffer, nuint patchIndexBufferOffset, IMTLBuffer controlPointIndexBuffer, nuint controlPointIndexBufferOffset, nuint instanceCount, nuint baseInstance);
|
|
|
|
[iOS (12, 0)]
|
|
[NoWatch, Mac (10, 12)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("drawIndexedPatches:patchIndexBuffer:patchIndexBufferOffset:controlPointIndexBuffer:controlPointIndexBufferOffset:indirectBuffer:indirectBufferOffset:")]
|
|
void DrawIndexedPatches (nuint numberOfPatchControlPoints, [NullAllowed] IMTLBuffer patchIndexBuffer, nuint patchIndexBufferOffset, IMTLBuffer controlPointIndexBuffer, nuint controlPointIndexBufferOffset, IMTLBuffer indirectBuffer, nuint indirectBufferOffset);
|
|
|
|
[iOS (12, 0)]
|
|
[Mac (10, 13), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setViewports:count:")]
|
|
void SetViewports (IntPtr viewports, nuint count);
|
|
|
|
[iOS (12, 0)]
|
|
[Mac (10, 13), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setScissorRects:count:")]
|
|
void SetScissorRects (IntPtr scissorRects, nuint count);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setColorStoreActionOptions:atIndex:")]
|
|
void SetColorStoreActionOptions (MTLStoreActionOptions storeActionOptions, nuint colorAttachmentIndex);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setDepthStoreActionOptions:")]
|
|
void SetDepthStoreActionOptions (MTLStoreActionOptions storeActionOptions);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setStencilStoreActionOptions:")]
|
|
void SetStencilStoreActionOptions (MTLStoreActionOptions storeActionOptions);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("useResource:usage:")]
|
|
void UseResource (IMTLResource resource, MTLResourceUsage usage);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("useResources:count:usage:")]
|
|
void UseResources (IMTLResource [] resources, nuint count, MTLResourceUsage usage);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("useHeap:")]
|
|
void UseHeap (IMTLHeap heap);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("useHeaps:count:")]
|
|
void UseHeaps (IMTLHeap [] heaps, nuint count);
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("executeCommandsInBuffer:withRange:")]
|
|
void ExecuteCommands (IMTLIndirectCommandBuffer indirectCommandBuffer, NSRange executionRange);
|
|
|
|
[iOS (13, 0), TV (13, 0), Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("executeCommandsInBuffer:indirectBuffer:indirectBufferOffset:")]
|
|
void ExecuteCommands (IMTLIndirectCommandBuffer indirectCommandbuffer, IMTLBuffer indirectRangeBuffer, nuint indirectBufferOffset);
|
|
|
|
[NoiOS, NoTV, Mac (10, 14), MacCatalyst (15, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("memoryBarrierWithScope:afterStages:beforeStages:")]
|
|
void MemoryBarrier (MTLBarrierScope scope, MTLRenderStages after, MTLRenderStages before);
|
|
|
|
[NoiOS, NoTV, Mac (10, 14), MacCatalyst (15, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("memoryBarrierWithResources:count:afterStages:beforeStages:")]
|
|
void MemoryBarrier (IMTLResource [] resources, nuint count, MTLRenderStages after, MTLRenderStages before);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("tileWidth")]
|
|
nuint TileWidth { get; }
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("tileHeight")]
|
|
nuint TileHeight { get; }
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTileBytes:length:atIndex:")]
|
|
void SetTileBytes (IntPtr /* void* */ bytes, nuint length, nuint index);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTileBuffer:offset:atIndex:")]
|
|
void SetTileBuffer ([NullAllowed] IMTLBuffer buffer, nuint offset, nuint index);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTileBufferOffset:atIndex:")]
|
|
void SetTileBufferOffset (nuint offset, nuint index);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTileBuffers:offsets:withRange:")]
|
|
void SetTileBuffers (IMTLBuffer [] buffers, IntPtr offsets, NSRange range);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTileTexture:atIndex:")]
|
|
void SetTileTexture ([NullAllowed] IMTLTexture texture, nuint index);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTileTextures:withRange:")]
|
|
void SetTileTextures (IMTLTexture [] textures, NSRange range);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTileSamplerState:atIndex:")]
|
|
void SetTileSamplerState ([NullAllowed] IMTLSamplerState sampler, nuint index);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTileSamplerStates:withRange:")]
|
|
void SetTileSamplerStates (IMTLSamplerState [] samplers, NSRange range);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTileSamplerState:lodMinClamp:lodMaxClamp:atIndex:")]
|
|
void SetTileSamplerState ([NullAllowed] IMTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, nuint index);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setTileSamplerStates:lodMinClamps:lodMaxClamps:withRange:")]
|
|
void SetTileSamplerStates (IMTLSamplerState [] samplers, IntPtr /* float[] */ lodMinClamps, IntPtr /* float[] */ lodMaxClamps, NSRange range);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("dispatchThreadsPerTile:")]
|
|
void DispatchThreadsPerTile (MTLSize threadsPerTile);
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setThreadgroupMemoryLength:offset:atIndex:")]
|
|
void SetThreadgroupMemoryLength (nuint length, nuint offset, nuint index);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[Export ("setVertexAmplificationCount:viewMappings:")]
|
|
void SetVertexAmplificationCount (nuint count, MTLVertexAmplificationViewMapping viewMappings);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("useResource:usage:stages:")]
|
|
void UseResource (IMTLResource resource, MTLResourceUsage usage, MTLRenderStages stages);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("useResources:count:usage:stages:")]
|
|
void UseResources (IMTLResource [] resources, nuint count, MTLResourceUsage usage, MTLRenderStages stages);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("useHeap:stages:")]
|
|
void UseHeap (IMTLHeap heap, MTLRenderStages stages);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("useHeaps:count:stages:")]
|
|
void UseHeaps (IMTLHeap [] heaps, nuint count, MTLRenderStages stages);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("sampleCountersInBuffer:atSampleIndex:withBarrier:")]
|
|
#if NET
|
|
void SampleCounters (IMTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);
|
|
#else
|
|
void SampleCounters (MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);
|
|
#endif
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setVertexVisibleFunctionTable:atBufferIndex:")]
|
|
void SetVertexVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setVertexVisibleFunctionTables:withBufferRange:")]
|
|
void SetVertexVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setVertexIntersectionFunctionTable:atBufferIndex:")]
|
|
void SetVertexIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setVertexIntersectionFunctionTables:withBufferRange:")]
|
|
void SetVertexIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setVertexAccelerationStructure:atBufferIndex:")]
|
|
void SetVertexAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setFragmentAccelerationStructure:atBufferIndex:")]
|
|
void SetFragmentAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setFragmentIntersectionFunctionTable:atBufferIndex:")]
|
|
void SetFragmentIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setFragmentIntersectionFunctionTables:withBufferRange:")]
|
|
void SetFragmentIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setFragmentVisibleFunctionTable:atBufferIndex:")]
|
|
void SetFragmentVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setFragmentVisibleFunctionTables:withBufferRange:")]
|
|
void SetFragmentVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setTileAccelerationStructure:atBufferIndex:")]
|
|
void SetTileAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint bufferIndex);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setTileIntersectionFunctionTable:atBufferIndex:")]
|
|
void SetTileIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setTileIntersectionFunctionTables:withBufferRange:")]
|
|
void SetTileIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTable, NSRange range);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setTileVisibleFunctionTable:atBufferIndex:")]
|
|
void SetTileVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("setTileVisibleFunctionTables:withBufferRange:")]
|
|
void SetTileVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange range);
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRenderPipelineColorAttachmentDescriptor : NSCopying {
|
|
|
|
[Export ("pixelFormat", ArgumentSemantic.Assign)]
|
|
MTLPixelFormat PixelFormat { get; set; }
|
|
|
|
[Export ("blendingEnabled")]
|
|
bool BlendingEnabled { [Bind ("isBlendingEnabled")] get; set; }
|
|
|
|
[Export ("sourceRGBBlendFactor", ArgumentSemantic.Assign)]
|
|
MTLBlendFactor SourceRgbBlendFactor { get; set; }
|
|
|
|
[Export ("destinationRGBBlendFactor", ArgumentSemantic.Assign)]
|
|
MTLBlendFactor DestinationRgbBlendFactor { get; set; }
|
|
|
|
[Export ("rgbBlendOperation", ArgumentSemantic.Assign)]
|
|
MTLBlendOperation RgbBlendOperation { get; set; }
|
|
|
|
[Export ("sourceAlphaBlendFactor", ArgumentSemantic.Assign)]
|
|
MTLBlendFactor SourceAlphaBlendFactor { get; set; }
|
|
|
|
[Export ("destinationAlphaBlendFactor", ArgumentSemantic.Assign)]
|
|
MTLBlendFactor DestinationAlphaBlendFactor { get; set; }
|
|
|
|
[Export ("alphaBlendOperation", ArgumentSemantic.Assign)]
|
|
MTLBlendOperation AlphaBlendOperation { get; set; }
|
|
|
|
[Export ("writeMask", ArgumentSemantic.Assign)]
|
|
MTLColorWriteMask WriteMask { get; set; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRenderPipelineReflection {
|
|
[Export ("vertexArguments")]
|
|
[NullAllowed]
|
|
#if NET
|
|
MTLArgument [] VertexArguments { get; }
|
|
#else
|
|
NSObject [] VertexArguments { get; }
|
|
#endif
|
|
|
|
[Export ("fragmentArguments")]
|
|
[NullAllowed]
|
|
#if NET
|
|
MTLArgument [] FragmentArguments { get; }
|
|
#else
|
|
NSObject [] FragmentArguments { get; }
|
|
#endif
|
|
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (14, 0)]
|
|
[NullAllowed, Export ("tileArguments")]
|
|
MTLArgument [] TileArguments { get; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRenderPassAttachmentDescriptor : NSCopying {
|
|
|
|
[NullAllowed] // by default this property is null
|
|
[Export ("texture", ArgumentSemantic.Retain)]
|
|
IMTLTexture Texture { get; set; }
|
|
|
|
[Export ("level")]
|
|
nuint Level { get; set; }
|
|
|
|
[Export ("slice")]
|
|
nuint Slice { get; set; }
|
|
|
|
[Export ("depthPlane")]
|
|
nuint DepthPlane { get; set; }
|
|
|
|
[NullAllowed] // by default this property is null
|
|
[Export ("resolveTexture", ArgumentSemantic.Retain)]
|
|
IMTLTexture ResolveTexture { get; set; }
|
|
|
|
[Export ("resolveLevel")]
|
|
nuint ResolveLevel { get; set; }
|
|
|
|
[Export ("resolveSlice")]
|
|
nuint ResolveSlice { get; set; }
|
|
|
|
[Export ("resolveDepthPlane")]
|
|
nuint ResolveDepthPlane { get; set; }
|
|
|
|
[Export ("loadAction")]
|
|
MTLLoadAction LoadAction { get; set; }
|
|
|
|
[Export ("storeAction")]
|
|
MTLStoreAction StoreAction { get; set; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("storeActionOptions", ArgumentSemantic.Assign)]
|
|
MTLStoreActionOptions StoreActionOptions { get; set; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (MTLRenderPassAttachmentDescriptor))]
|
|
interface MTLRenderPassColorAttachmentDescriptor {
|
|
[Export ("clearColor")]
|
|
MTLClearColor ClearColor { get; set; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (MTLRenderPassAttachmentDescriptor))]
|
|
interface MTLRenderPassDepthAttachmentDescriptor {
|
|
|
|
[Export ("clearDepth")]
|
|
double ClearDepth { get; set; }
|
|
|
|
[iOS (9, 0)]
|
|
[Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("depthResolveFilter")]
|
|
MTLMultisampleDepthResolveFilter DepthResolveFilter { get; set; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (MTLRenderPassAttachmentDescriptor))]
|
|
interface MTLRenderPassStencilAttachmentDescriptor {
|
|
|
|
[Export ("clearStencil")]
|
|
uint ClearStencil { get; set; } /* uint32_t */
|
|
|
|
[iOS (12, 0)]
|
|
[TV (14, 5)]
|
|
[Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("stencilResolveFilter", ArgumentSemantic.Assign)]
|
|
MTLMultisampleStencilResolveFilter StencilResolveFilter { get; set; }
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRenderPassColorAttachmentDescriptorArray {
|
|
[Export ("objectAtIndexedSubscript:"), Internal]
|
|
MTLRenderPassColorAttachmentDescriptor ObjectAtIndexedSubscript (nuint attachmentIndex);
|
|
|
|
[Export ("setObject:atIndexedSubscript:"), Internal]
|
|
void SetObject ([NullAllowed] MTLRenderPassColorAttachmentDescriptor attachment, nuint attachmentIndex);
|
|
}
|
|
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRenderPassDescriptor : NSCopying {
|
|
|
|
[Export ("colorAttachments")]
|
|
MTLRenderPassColorAttachmentDescriptorArray ColorAttachments { get; }
|
|
|
|
[Export ("depthAttachment", ArgumentSemantic.Copy)]
|
|
[NullAllowed]
|
|
MTLRenderPassDepthAttachmentDescriptor DepthAttachment { get; set; }
|
|
|
|
[Export ("stencilAttachment", ArgumentSemantic.Copy)]
|
|
[NullAllowed]
|
|
MTLRenderPassStencilAttachmentDescriptor StencilAttachment { get; set; }
|
|
|
|
[NullAllowed] // by default this property is null
|
|
[Export ("visibilityResultBuffer", ArgumentSemantic.Retain)]
|
|
IMTLBuffer VisibilityResultBuffer { get; set; }
|
|
|
|
[Static, Export ("renderPassDescriptor")]
|
|
[Autorelease]
|
|
MTLRenderPassDescriptor CreateRenderPassDescriptor ();
|
|
|
|
[iOS (12, 0)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("renderTargetArrayLength")]
|
|
nuint RenderTargetArrayLength { get; set; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("setSamplePositions:count:")]
|
|
unsafe void SetSamplePositions ([NullAllowed] IntPtr positions, nuint count);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("getSamplePositions:count:")]
|
|
nuint GetSamplePositions ([NullAllowed] IntPtr positions, nuint count);
|
|
|
|
[iOS (11, 0), NoWatch, Mac (11, 0)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("imageblockSampleLength")]
|
|
nuint ImageblockSampleLength { get; set; }
|
|
|
|
[iOS (11, 0), NoWatch, Mac (11, 0)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("threadgroupMemoryLength")]
|
|
nuint ThreadgroupMemoryLength { get; set; }
|
|
|
|
[iOS (11, 0), NoWatch, Mac (11, 0)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("tileWidth")]
|
|
nuint TileWidth { get; set; }
|
|
|
|
[iOS (11, 0), NoWatch, Mac (11, 0)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("tileHeight")]
|
|
nuint TileHeight { get; set; }
|
|
|
|
[iOS (11, 0), NoWatch, Mac (10, 15)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("defaultRasterSampleCount")]
|
|
nuint DefaultRasterSampleCount { get; set; }
|
|
|
|
[iOS (11, 0), NoWatch, Mac (10, 15)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("renderTargetWidth")]
|
|
nuint RenderTargetWidth { get; set; }
|
|
|
|
[iOS (11, 0), NoWatch, Mac (10, 15)]
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("renderTargetHeight")]
|
|
nuint RenderTargetHeight { get; set; }
|
|
|
|
/* Selectors reported missing by instrospection: https://github.com/xamarin/maccore/issues/1978
|
|
[NoMac, NoTV, iOS (13, 0)]
|
|
[NoMacCatalyst]
|
|
[Export ("maxVertexAmplificationCount")]
|
|
nuint MaxVertexAmplificationCount { get; set; }
|
|
*/
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[NullAllowed, Export ("rasterizationRateMap", ArgumentSemantic.Strong)]
|
|
IMTLRasterizationRateMap RasterizationRateMap { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("sampleBufferAttachments")]
|
|
MTLRenderPassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; }
|
|
}
|
|
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
// note: type works only on devices, symbol is missing on the simulator
|
|
interface MTLHeapDescriptor : NSCopying {
|
|
[Export ("size")]
|
|
nuint Size { get; set; }
|
|
|
|
[Export ("storageMode", ArgumentSemantic.Assign)]
|
|
MTLStorageMode StorageMode { get; set; }
|
|
|
|
[Export ("cpuCacheMode", ArgumentSemantic.Assign)]
|
|
MTLCpuCacheMode CpuCacheMode { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (15, 0)]
|
|
[Export ("hazardTrackingMode", ArgumentSemantic.Assign)]
|
|
MTLHazardTrackingMode HazardTrackingMode { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (15, 0)]
|
|
[Export ("resourceOptions", ArgumentSemantic.Assign)]
|
|
MTLResourceOptions ResourceOptions { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), TV (15, 0)]
|
|
[Export ("type", ArgumentSemantic.Assign)]
|
|
MTLHeapType Type { get; set; }
|
|
|
|
}
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
interface MTLHeap {
|
|
[Abstract]
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract]
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract]
|
|
[Export ("storageMode")]
|
|
MTLStorageMode StorageMode { get; }
|
|
|
|
[Abstract]
|
|
[Export ("cpuCacheMode")]
|
|
MTLCpuCacheMode CpuCacheMode { get; }
|
|
|
|
[Abstract]
|
|
[Export ("size")]
|
|
nuint Size { get; }
|
|
|
|
[Abstract]
|
|
[Export ("usedSize")]
|
|
nuint UsedSize { get; }
|
|
|
|
[Abstract]
|
|
[Export ("maxAvailableSizeWithAlignment:")]
|
|
nuint GetMaxAvailableSize (nuint alignment);
|
|
|
|
[Abstract]
|
|
[Export ("newBufferWithLength:options:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLBuffer CreateBuffer (nuint length, MTLResourceOptions options);
|
|
|
|
[Abstract]
|
|
[Export ("newTextureWithDescriptor:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLTexture CreateTexture (MTLTextureDescriptor desc);
|
|
|
|
[Abstract]
|
|
[Export ("setPurgeableState:")]
|
|
MTLPurgeableState SetPurgeableState (MTLPurgeableState state);
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("currentAllocatedSize")]
|
|
nuint CurrentAllocatedSize { get; }
|
|
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("hazardTrackingMode")]
|
|
MTLHazardTrackingMode HazardTrackingMode { get; }
|
|
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("resourceOptions")]
|
|
MTLResourceOptions ResourceOptions { get; }
|
|
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("type")]
|
|
MTLHeapType Type { get; }
|
|
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newBufferWithLength:options:offset:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLBuffer CreateBuffer (nuint length, MTLResourceOptions options, nuint offset);
|
|
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newTextureWithDescriptor:offset:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLTexture CreateTexture (MTLTextureDescriptor descriptor, nuint offset);
|
|
}
|
|
|
|
interface IMTLResource { }
|
|
interface IMTLHeap { }
|
|
[iOS (8, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
partial interface MTLResource {
|
|
|
|
[Abstract, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract, Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract, Export ("cpuCacheMode")]
|
|
MTLCpuCacheMode CpuCacheMode { get; }
|
|
|
|
#if NET
|
|
[Abstract] // new required member, but that breaks our binary compat, so we can't do that in our existing code.
|
|
#endif
|
|
[iOS (9, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("storageMode")]
|
|
MTLStorageMode StorageMode { get; }
|
|
|
|
[Abstract, Export ("setPurgeableState:")]
|
|
MTLPurgeableState SetPurgeableState (MTLPurgeableState state);
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[NullAllowed, Export ("heap")]
|
|
IMTLHeap Heap { get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("makeAliasable")]
|
|
void MakeAliasable ();
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("isAliasable")]
|
|
bool IsAliasable { get; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 13)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("allocatedSize")]
|
|
nuint AllocatedSize { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("resourceOptions")]
|
|
MTLResourceOptions ResourceOptions { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("heapOffset")]
|
|
nuint HeapOffset { get; }
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (13, 0), Mac (10, 15), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("hazardTrackingMode")]
|
|
MTLHazardTrackingMode HazardTrackingMode { get; }
|
|
}
|
|
|
|
[iOS (9, 0)]
|
|
[Mac (10, 11)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLComputePipelineDescriptor : NSCopying {
|
|
|
|
[Export ("label")]
|
|
[NullAllowed]
|
|
string Label { get; set; }
|
|
|
|
[Export ("computeFunction", ArgumentSemantic.Strong)]
|
|
[NullAllowed]
|
|
IMTLFunction ComputeFunction { get; set; }
|
|
|
|
[Export ("threadGroupSizeIsMultipleOfThreadExecutionWidth")]
|
|
bool ThreadGroupSizeIsMultipleOfThreadExecutionWidth { get; set; }
|
|
|
|
[Export ("reset")]
|
|
void Reset ();
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("maxTotalThreadsPerThreadgroup")]
|
|
nuint MaxTotalThreadsPerThreadgroup { get; set; }
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[NullAllowed, Export ("stageInputDescriptor", ArgumentSemantic.Copy)]
|
|
MTLStageInputOutputDescriptor StageInputDescriptor { get; set; }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("buffers")]
|
|
MTLPipelineBufferDescriptorArray Buffers { get; }
|
|
|
|
[Mac (11, 0), iOS (13, 0), TV (13, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("supportIndirectCommandBuffers")]
|
|
bool SupportIndirectCommandBuffers { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[Deprecated (PlatformName.iOS, 15, 0, message: "Use 'PreloadedLibraries' instead.")]
|
|
[Deprecated (PlatformName.MacOSX, 12, 0, message: "Use 'PreloadedLibraries' instead.")]
|
|
[Deprecated (PlatformName.TvOS, 15, 0, message: "Use 'PreloadedLibraries' instead.")]
|
|
[Deprecated (PlatformName.MacCatalyst, 15, 0, message: "Use 'PreloadedLibraries' instead.")]
|
|
[MacCatalyst (14, 0)]
|
|
[NullAllowed, Export ("insertLibraries", ArgumentSemantic.Copy)]
|
|
IMTLDynamicLibrary [] InsertLibraries { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[NullAllowed, Export ("binaryArchives", ArgumentSemantic.Copy)]
|
|
IMTLBinaryArchive [] BinaryArchives { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[NullAllowed, Export ("linkedFunctions", ArgumentSemantic.Copy)]
|
|
MTLLinkedFunctions LinkedFunctions { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("supportAddingBinaryFunctions")]
|
|
bool SupportAddingBinaryFunctions { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("maxCallStackDepth")]
|
|
nuint MaxCallStackDepth { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), NoWatch, MacCatalyst (15, 0)]
|
|
[Export ("preloadedLibraries", ArgumentSemantic.Copy)]
|
|
IMTLDynamicLibrary [] PreloadedLibraries { get; set; }
|
|
}
|
|
|
|
[iOS (10, 0), TV (10, 0), NoWatch, Mac (10, 12)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLStageInputOutputDescriptor : NSCopying {
|
|
[Static]
|
|
[Export ("stageInputOutputDescriptor")]
|
|
MTLStageInputOutputDescriptor Create ();
|
|
|
|
[Export ("layouts")]
|
|
MTLBufferLayoutDescriptorArray Layouts { get; }
|
|
|
|
[Export ("attributes")]
|
|
MTLAttributeDescriptorArray Attributes { get; }
|
|
|
|
[Export ("indexType", ArgumentSemantic.Assign)]
|
|
MTLIndexType IndexType { get; set; }
|
|
|
|
[Export ("indexBufferIndex")]
|
|
nuint IndexBufferIndex { get; set; }
|
|
|
|
[Export ("reset")]
|
|
void Reset ();
|
|
}
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLType {
|
|
[Export ("dataType")]
|
|
MTLDataType DataType { get; }
|
|
}
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (MTLType))]
|
|
interface MTLPointerType {
|
|
[Export ("elementType")]
|
|
MTLDataType ElementType { get; }
|
|
|
|
[Export ("access")]
|
|
MTLArgumentAccess Access { get; }
|
|
|
|
[Export ("alignment")]
|
|
nuint Alignment { get; }
|
|
|
|
[Export ("dataSize")]
|
|
nuint DataSize { get; }
|
|
|
|
[Export ("elementIsArgumentBuffer")]
|
|
bool ElementIsArgumentBuffer { get; }
|
|
|
|
[NullAllowed, Export ("elementStructType")]
|
|
MTLStructType ElementStructType { get; }
|
|
|
|
[NullAllowed, Export ("elementArrayType")]
|
|
MTLArrayType ElementArrayType { get; }
|
|
}
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (MTLType))]
|
|
interface MTLTextureReferenceType {
|
|
[Export ("textureDataType")]
|
|
MTLDataType TextureDataType { get; }
|
|
|
|
[Export ("textureType")]
|
|
MTLTextureType TextureType { get; }
|
|
|
|
[Export ("access")]
|
|
MTLArgumentAccess Access { get; }
|
|
|
|
[Export ("isDepthTexture")]
|
|
bool IsDepthTexture { get; }
|
|
}
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
interface IMTLCaptureScope { }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Protocol, Model]
|
|
#else
|
|
[Protocol, Model (AutoGeneratedName = true)]
|
|
#endif
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLCaptureScope {
|
|
[Abstract]
|
|
[Export ("beginScope")]
|
|
void BeginScope ();
|
|
|
|
[Abstract]
|
|
[Export ("endScope")]
|
|
void EndScope ();
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract]
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("commandQueue")]
|
|
IMTLCommandQueue CommandQueue { get; }
|
|
}
|
|
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
[DisableDefaultCtor]
|
|
interface MTLCaptureManager {
|
|
[Static]
|
|
[Export ("sharedCaptureManager")]
|
|
MTLCaptureManager Shared { get; }
|
|
|
|
[Export ("newCaptureScopeWithDevice:")]
|
|
[return: Release]
|
|
IMTLCaptureScope CreateNewCaptureScope (IMTLDevice device);
|
|
|
|
[Export ("newCaptureScopeWithCommandQueue:")]
|
|
[return: Release]
|
|
IMTLCaptureScope CreateNewCaptureScope (IMTLCommandQueue commandQueue);
|
|
|
|
[Deprecated (PlatformName.MacOSX, 10, 15, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Deprecated (PlatformName.iOS, 13, 0, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Deprecated (PlatformName.TvOS, 13, 0, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Deprecated (PlatformName.MacCatalyst, 13, 1, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Export ("startCaptureWithDevice:")]
|
|
void StartCapture (IMTLDevice device);
|
|
|
|
[Deprecated (PlatformName.MacOSX, 10, 15, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Deprecated (PlatformName.iOS, 13, 0, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Deprecated (PlatformName.TvOS, 13, 0, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Deprecated (PlatformName.MacCatalyst, 13, 1, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Export ("startCaptureWithCommandQueue:")]
|
|
void StartCapture (IMTLCommandQueue commandQueue);
|
|
|
|
[Deprecated (PlatformName.MacOSX, 10, 15, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Deprecated (PlatformName.iOS, 13, 0, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Deprecated (PlatformName.TvOS, 13, 0, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Deprecated (PlatformName.MacCatalyst, 13, 1, message: "Use 'StartCapture (MTLCaptureDescriptor, NSError)' instead.")]
|
|
[Export ("startCaptureWithScope:")]
|
|
void StartCapture (IMTLCaptureScope captureScope);
|
|
|
|
[Export ("stopCapture")]
|
|
void StopCapture ();
|
|
|
|
[NullAllowed, Export ("defaultCaptureScope", ArgumentSemantic.Strong)]
|
|
IMTLCaptureScope DefaultCaptureScope { get; set; }
|
|
|
|
[Export ("isCapturing")]
|
|
bool IsCapturing { get; }
|
|
|
|
[Mac (10, 15), iOS (13, 0), TV (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("supportsDestination:")]
|
|
bool SupportsDestination (MTLCaptureDestination destination);
|
|
|
|
[Mac (10, 15), iOS (13, 0), TV (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("startCaptureWithDescriptor:error:")]
|
|
bool StartCapture (MTLCaptureDescriptor descriptor, [NullAllowed] out NSError error);
|
|
}
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLPipelineBufferDescriptor : NSCopying {
|
|
[Export ("mutability", ArgumentSemantic.Assign)]
|
|
MTLMutability Mutability { get; set; }
|
|
}
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLPipelineBufferDescriptorArray {
|
|
[Internal]
|
|
[Export ("objectAtIndexedSubscript:")]
|
|
MTLPipelineBufferDescriptor GetObject (nuint bufferIndex);
|
|
|
|
[Internal]
|
|
[Export ("setObject:atIndexedSubscript:")]
|
|
void SetObject ([NullAllowed] MTLPipelineBufferDescriptor buffer, nuint bufferIndex);
|
|
}
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLArgumentDescriptor : NSCopying {
|
|
[Static]
|
|
[Export ("argumentDescriptor")]
|
|
MTLArgumentDescriptor Create ();
|
|
|
|
[Export ("dataType", ArgumentSemantic.Assign)]
|
|
MTLDataType DataType { get; set; }
|
|
|
|
[Export ("index")]
|
|
nuint Index { get; set; }
|
|
|
|
[Export ("arrayLength")]
|
|
nuint ArrayLength { get; set; }
|
|
|
|
[Export ("access", ArgumentSemantic.Assign)]
|
|
MTLArgumentAccess Access { get; set; }
|
|
|
|
[Export ("textureType", ArgumentSemantic.Assign)]
|
|
MTLTextureType TextureType { get; set; }
|
|
|
|
[Export ("constantBlockAlignment")]
|
|
nuint ConstantBlockAlignment { get; set; }
|
|
}
|
|
|
|
interface IMTLArgumentEncoder { }
|
|
|
|
[Mac (10, 13), iOS (11, 0), TV (11, 0), NoWatch]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol]
|
|
interface MTLArgumentEncoder {
|
|
[Abstract]
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract]
|
|
[Export ("encodedLength")]
|
|
nuint EncodedLength { get; }
|
|
|
|
[Abstract]
|
|
[Export ("alignment")]
|
|
nuint Alignment { get; }
|
|
|
|
[Abstract]
|
|
[Export ("setArgumentBuffer:offset:")]
|
|
void SetArgumentBuffer ([NullAllowed] IMTLBuffer argumentBuffer, nuint offset);
|
|
|
|
[Abstract]
|
|
[Export ("setArgumentBuffer:startOffset:arrayElement:")]
|
|
void SetArgumentBuffer ([NullAllowed] IMTLBuffer argumentBuffer, nuint startOffset, nuint arrayElement);
|
|
|
|
[Abstract]
|
|
[Export ("setBuffer:offset:atIndex:")]
|
|
void SetBuffer ([NullAllowed] IMTLBuffer buffer, nuint offset, nuint index);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
[Export ("setBuffers:offsets:withRange:")]
|
|
void SetBuffers (IntPtr buffers, IntPtr offsets, NSRange range);
|
|
#else
|
|
[Abstract]
|
|
[Export ("setBuffers:offsets:withRange:")]
|
|
void SetBuffers (IMTLBuffer [] buffers, IntPtr offsets, NSRange range);
|
|
#endif
|
|
|
|
[Abstract]
|
|
[Export ("setTexture:atIndex:")]
|
|
void SetTexture ([NullAllowed] IMTLTexture texture, nuint index);
|
|
|
|
[Abstract]
|
|
[Export ("setTextures:withRange:")]
|
|
void SetTextures (IMTLTexture [] textures, NSRange range);
|
|
|
|
[Abstract]
|
|
[Export ("setSamplerState:atIndex:")]
|
|
void SetSamplerState ([NullAllowed] IMTLSamplerState sampler, nuint index);
|
|
|
|
[Abstract]
|
|
[Export ("setSamplerStates:withRange:")]
|
|
void SetSamplerStates (IMTLSamplerState [] samplers, NSRange range);
|
|
|
|
[Abstract]
|
|
[Export ("constantDataAtIndex:")]
|
|
IntPtr GetConstantData (nuint index);
|
|
|
|
[iOS (13, 0), TV (13, 0)]
|
|
[Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setRenderPipelineState:atIndex:")]
|
|
void SetRenderPipelineState ([NullAllowed] IMTLRenderPipelineState pipeline, nuint index);
|
|
|
|
[iOS (13, 0), TV (13, 0)]
|
|
[Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setRenderPipelineStates:withRange:")]
|
|
void SetRenderPipelineStates (IMTLRenderPipelineState [] pipelines, NSRange range);
|
|
|
|
[Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setIndirectCommandBuffer:atIndex:")]
|
|
void SetIndirectCommandBuffer ([NullAllowed] IMTLIndirectCommandBuffer indirectCommandBuffer, nuint index);
|
|
|
|
[Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setIndirectCommandBuffers:withRange:")]
|
|
void SetIndirectCommandBuffers (IMTLIndirectCommandBuffer [] buffers, NSRange range);
|
|
|
|
#if MONOMAC || NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("newArgumentEncoderForBufferAtIndex:")]
|
|
[return: NullAllowed]
|
|
[return: Release]
|
|
IMTLArgumentEncoder CreateArgumentEncoder (nuint index);
|
|
|
|
[TV (13, 0), Mac (11, 0), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setComputePipelineState:atIndex:")]
|
|
void SetComputePipelineState ([NullAllowed] IMTLComputePipelineState pipeline, nuint index);
|
|
|
|
[TV (13, 0), Mac (11, 0), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setComputePipelineStates:withRange:")]
|
|
void SetComputePipelineStates (IMTLComputePipelineState [] pipelines, NSRange range);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setAccelerationStructure:atIndex:")]
|
|
void SetAccelerationStructure ([NullAllowed] IMTLAccelerationStructure accelerationStructure, nuint index);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setVisibleFunctionTable:atIndex:")]
|
|
void SetVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable visibleFunctionTable, nuint index);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setVisibleFunctionTables:withRange:")]
|
|
void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] visibleFunctionTables, NSRange range);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setIntersectionFunctionTable:atIndex:")]
|
|
void SetIntersectionFunctionTable ([NullAllowed] IMTLIntersectionFunctionTable intersectionFunctionTable, nuint index);
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setIntersectionFunctionTables:withRange:")]
|
|
void SetIntersectionFunctionTables (IMTLIntersectionFunctionTable [] intersectionFunctionTables, NSRange range);
|
|
|
|
}
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLTileRenderPipelineColorAttachmentDescriptor : NSCopying {
|
|
[Export ("pixelFormat", ArgumentSemantic.Assign)]
|
|
MTLPixelFormat PixelFormat { get; set; }
|
|
}
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLTileRenderPipelineColorAttachmentDescriptorArray {
|
|
[Internal]
|
|
[Export ("objectAtIndexedSubscript:")]
|
|
MTLTileRenderPipelineColorAttachmentDescriptor GetObject (nuint attachmentIndex);
|
|
|
|
[Internal]
|
|
[Export ("setObject:atIndexedSubscript:")]
|
|
void SetObject (MTLTileRenderPipelineColorAttachmentDescriptor attachment, nuint attachmentIndex);
|
|
}
|
|
|
|
interface IMTLBinaryArchive { }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLBinaryArchive {
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract]
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract]
|
|
[Export ("addComputePipelineFunctionsWithDescriptor:error:")]
|
|
bool AddComputePipelineFunctions (MTLComputePipelineDescriptor descriptor, [NullAllowed] out NSError error);
|
|
|
|
[Abstract]
|
|
[Export ("addRenderPipelineFunctionsWithDescriptor:error:")]
|
|
bool AddRenderPipelineFunctions (MTLRenderPipelineDescriptor descriptor, [NullAllowed] out NSError error);
|
|
|
|
#if !TVOS || NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (14, 5)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("addTileRenderPipelineFunctionsWithDescriptor:error:")]
|
|
bool AddTileRenderPipelineFunctions (MTLTileRenderPipelineDescriptor descriptor, [NullAllowed] out NSError error);
|
|
|
|
[Abstract]
|
|
[Export ("serializeToURL:error:")]
|
|
bool Serialize (NSUrl url, [NullAllowed] out NSError error);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("addFunctionWithDescriptor:library:error:")]
|
|
bool AddFunctionWithDescriptor (MTLFunctionDescriptor descriptor, IMTLLibrary library, [NullAllowed] out NSError error);
|
|
}
|
|
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[iOS (11, 0), Mac (11, 0), NoWatch]
|
|
[TV (14, 5)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLTileRenderPipelineDescriptor : NSCopying {
|
|
[NullAllowed]
|
|
[Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Export ("tileFunction", ArgumentSemantic.Strong)]
|
|
IMTLFunction TileFunction { get; set; }
|
|
|
|
[Export ("rasterSampleCount")]
|
|
nuint RasterSampleCount { get; set; }
|
|
|
|
[Export ("colorAttachments")]
|
|
MTLTileRenderPipelineColorAttachmentDescriptorArray ColorAttachments { get; }
|
|
|
|
[Export ("threadgroupSizeMatchesTileSize")]
|
|
bool ThreadgroupSizeMatchesTileSize { get; set; }
|
|
|
|
[Export ("tileBuffers")]
|
|
MTLPipelineBufferDescriptorArray TileBuffers { get; }
|
|
|
|
[iOS (12, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("maxTotalThreadsPerThreadgroup")]
|
|
nuint MaxTotalThreadsPerThreadgroup { get; set; }
|
|
|
|
[Export ("reset")]
|
|
void Reset ();
|
|
|
|
[iOS (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[NullAllowed, Export ("binaryArchives", ArgumentSemantic.Copy)]
|
|
IMTLBinaryArchive [] BinaryArchives { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch]
|
|
[Export ("supportAddingBinaryFunctions")]
|
|
bool SupportAddingBinaryFunctions { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("preloadedLibraries", ArgumentSemantic.Copy)]
|
|
IMTLDynamicLibrary [] PreloadedLibraries { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), MacCatalyst (15, 0), NoTV, NoWatch]
|
|
[Export ("maxCallStackDepth")]
|
|
nuint MaxCallStackDepth { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[NullAllowed, Export ("linkedFunctions", ArgumentSemantic.Copy)]
|
|
MTLLinkedFunctions LinkedFunctions { get; set; }
|
|
}
|
|
|
|
interface IMTLEvent { }
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol]
|
|
interface MTLEvent {
|
|
[Abstract]
|
|
[NullAllowed, Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; set; }
|
|
}
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
[DesignatedDefaultCtor]
|
|
interface MTLSharedEventListener {
|
|
[Export ("initWithDispatchQueue:")]
|
|
[DesignatedInitializer]
|
|
NativeHandle Constructor (DispatchQueue dispatchQueue);
|
|
|
|
[Export ("dispatchQueue")]
|
|
DispatchQueue DispatchQueue { get; }
|
|
}
|
|
|
|
delegate void MTLSharedEventNotificationBlock (IMTLSharedEvent @event, ulong value);
|
|
|
|
interface IMTLSharedEvent { }
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol]
|
|
interface MTLSharedEvent : MTLEvent {
|
|
[Abstract]
|
|
[Export ("notifyListener:atValue:block:")]
|
|
void NotifyListener (MTLSharedEventListener listener, ulong atValue, MTLSharedEventNotificationBlock block);
|
|
|
|
[Abstract]
|
|
[Export ("newSharedEventHandle")]
|
|
[return: Release]
|
|
MTLSharedEventHandle CreateSharedEventHandle ();
|
|
|
|
[Abstract]
|
|
[Export ("signaledValue")]
|
|
ulong SignaledValue { get; set; }
|
|
}
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLSharedEventHandle : NSSecureCoding {
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; }
|
|
}
|
|
|
|
interface IMTLIndirectRenderCommand { }
|
|
|
|
[Mac (10, 14), iOS (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol]
|
|
interface MTLIndirectRenderCommand {
|
|
|
|
#if MONOMAC && !NET
|
|
[Abstract]
|
|
#endif
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[iOS (13, 0), TV (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("setRenderPipelineState:")]
|
|
void SetRenderPipelineState (IMTLRenderPipelineState pipelineState);
|
|
|
|
[Abstract]
|
|
[Export ("setVertexBuffer:offset:atIndex:")]
|
|
void SetVertexBuffer (IMTLBuffer buffer, nuint offset, nuint index);
|
|
|
|
[Abstract]
|
|
[Export ("setFragmentBuffer:offset:atIndex:")]
|
|
void SetFragmentBuffer (IMTLBuffer buffer, nuint offset, nuint index);
|
|
|
|
#if !TVOS || NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("drawPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride:")]
|
|
void DrawPatches (nuint numberOfPatchControlPoints, nuint patchStart, nuint patchCount, [NullAllowed] IMTLBuffer patchIndexBuffer, nuint patchIndexBufferOffset, nuint instanceCount, nuint baseInstance, IMTLBuffer buffer, nuint offset, nuint instanceStride);
|
|
|
|
#if !TVOS || NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (14, 5)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("drawIndexedPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:controlPointIndexBuffer:controlPointIndexBufferOffset:instanceCount:baseInstance:tessellationFactorBuffer:tessellationFactorBufferOffset:tessellationFactorBufferInstanceStride:")]
|
|
void DrawIndexedPatches (nuint numberOfPatchControlPoints, nuint patchStart, nuint patchCount, [NullAllowed] IMTLBuffer patchIndexBuffer, nuint patchIndexBufferOffset, IMTLBuffer controlPointIndexBuffer, nuint controlPointIndexBufferOffset, nuint instanceCount, nuint baseInstance, IMTLBuffer buffer, nuint offset, nuint instanceStride);
|
|
|
|
[Abstract]
|
|
[Export ("drawPrimitives:vertexStart:vertexCount:instanceCount:baseInstance:")]
|
|
void DrawPrimitives (MTLPrimitiveType primitiveType, nuint vertexStart, nuint vertexCount, nuint instanceCount, nuint baseInstance);
|
|
|
|
[Abstract]
|
|
[Export ("drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:baseVertex:baseInstance:")]
|
|
void DrawIndexedPrimitives (MTLPrimitiveType primitiveType, nuint indexCount, MTLIndexType indexType, IMTLBuffer indexBuffer, nuint indexBufferOffset, nuint instanceCount, nint baseVertex, nuint baseInstance);
|
|
|
|
[Abstract]
|
|
[Export ("reset")]
|
|
void Reset ();
|
|
}
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLIndirectCommandBufferDescriptor : NSCopying {
|
|
[Export ("commandTypes", ArgumentSemantic.Assign)]
|
|
MTLIndirectCommandType CommandTypes { get; set; }
|
|
|
|
[iOS (13, 0), TV (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("inheritPipelineState")]
|
|
bool InheritPipelineState { get; set; }
|
|
|
|
[Export ("inheritBuffers")]
|
|
bool InheritBuffers { get; set; }
|
|
|
|
[Export ("maxVertexBufferBindCount")]
|
|
nuint MaxVertexBufferBindCount { get; set; }
|
|
|
|
[Export ("maxFragmentBufferBindCount")]
|
|
nuint MaxFragmentBufferBindCount { get; set; }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Export ("maxKernelBufferBindCount")]
|
|
nuint MaxKernelBufferBindCount { get; set; }
|
|
}
|
|
|
|
interface IMTLIndirectCommandBuffer { }
|
|
|
|
[Mac (10, 14), iOS (12, 0), TV (12, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol]
|
|
interface MTLIndirectCommandBuffer : MTLResource {
|
|
[Abstract]
|
|
[Export ("size")]
|
|
nuint Size { get; }
|
|
|
|
[Abstract]
|
|
[Export ("resetWithRange:")]
|
|
void Reset (NSRange range);
|
|
|
|
[Abstract]
|
|
[Export ("indirectRenderCommandAtIndex:")]
|
|
IMTLIndirectRenderCommand GetCommand (nuint commandIndex);
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[TV (13, 0), Mac (11, 0), iOS (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Export ("indirectComputeCommandAtIndex:")]
|
|
IMTLIndirectComputeCommand GetIndirectComputeCommand (nuint commandIndex);
|
|
}
|
|
|
|
[iOS (13, 0), TV (13, 0), Mac (10, 14)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
[DisableDefaultCtor]
|
|
interface MTLSharedTextureHandle : NSSecureCoding {
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; }
|
|
}
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRasterizationRateSampleArray {
|
|
[Export ("objectAtIndexedSubscript:")]
|
|
NSNumber GetObject (nuint index);
|
|
|
|
[Export ("setObject:atIndexedSubscript:")]
|
|
void SetObject (NSNumber value, nuint index);
|
|
}
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRasterizationRateMapDescriptor : NSCopying {
|
|
[Static]
|
|
[Export ("rasterizationRateMapDescriptorWithScreenSize:")]
|
|
MTLRasterizationRateMapDescriptor Create (MTLSize screenSize);
|
|
|
|
[Static]
|
|
[Export ("rasterizationRateMapDescriptorWithScreenSize:layer:")]
|
|
MTLRasterizationRateMapDescriptor Create (MTLSize screenSize, MTLRasterizationRateLayerDescriptor layer);
|
|
|
|
[Static]
|
|
[Export ("rasterizationRateMapDescriptorWithScreenSize:layerCount:layers:")]
|
|
MTLRasterizationRateMapDescriptor Create (MTLSize screenSize, nuint layerCount, out MTLRasterizationRateLayerDescriptor layers);
|
|
|
|
[Export ("layerAtIndex:")]
|
|
[return: NullAllowed]
|
|
MTLRasterizationRateLayerDescriptor GetLayer (nuint layerIndex);
|
|
|
|
[Export ("setLayer:atIndex:")]
|
|
void SetLayer ([NullAllowed] MTLRasterizationRateLayerDescriptor layer, nuint layerIndex);
|
|
|
|
[iOS (15, 0), MacCatalyst (15, 0), Mac (12, 0), NoWatch]
|
|
[Export ("layers")]
|
|
MTLRasterizationRateLayerArray Layers { get; }
|
|
|
|
[iOS (15, 0), MacCatalyst (15, 0), Mac (12, 0), NoWatch]
|
|
[Export ("screenSize", ArgumentSemantic.Assign)]
|
|
MTLSize ScreenSize { get; set; }
|
|
|
|
[iOS (15, 0), MacCatalyst (15, 0), Mac (12, 0), NoWatch]
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[iOS (15, 0), MacCatalyst (15, 0), Mac (12, 0), NoWatch]
|
|
[Export ("layerCount")]
|
|
nuint LayerCount { get; }
|
|
}
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
[DisableDefaultCtor]
|
|
interface MTLRasterizationRateLayerDescriptor : NSCopying {
|
|
|
|
[Export ("initWithSampleCount:")]
|
|
[DesignatedInitializer]
|
|
NativeHandle Constructor (MTLSize sampleCount);
|
|
|
|
[Internal]
|
|
[Export ("initWithSampleCount:horizontal:vertical:")]
|
|
NativeHandle Constructor (MTLSize sampleCount, IntPtr horizontal, IntPtr vertical);
|
|
|
|
[MacCatalyst (15, 0)]
|
|
[Internal]
|
|
[Export ("horizontalSampleStorage")]
|
|
IntPtr _HorizontalSampleStorage { get; }
|
|
|
|
[MacCatalyst (15, 0)]
|
|
[Internal]
|
|
[Export ("verticalSampleStorage")]
|
|
IntPtr _VerticalSampleStorage { get; }
|
|
|
|
[MacCatalyst (15, 0)]
|
|
[Export ("horizontal")]
|
|
MTLRasterizationRateSampleArray Horizontal { get; }
|
|
|
|
[MacCatalyst (15, 0)]
|
|
[Export ("vertical")]
|
|
MTLRasterizationRateSampleArray Vertical { get; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("maxSampleCount")]
|
|
MTLSize MaxSampleCount { get; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("sampleCount", ArgumentSemantic.Assign)]
|
|
MTLSize SampleCount { get; set; }
|
|
}
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRasterizationRateLayerArray {
|
|
[Export ("objectAtIndexedSubscript:")]
|
|
[return: NullAllowed]
|
|
MTLRasterizationRateLayerDescriptor GetObject (nuint layerIndex);
|
|
|
|
[Export ("setObject:atIndexedSubscript:")]
|
|
void SetObject ([NullAllowed] MTLRasterizationRateLayerDescriptor layer, nuint layerIndex);
|
|
}
|
|
|
|
interface IMTLRasterizationRateMap { }
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 13, 4)]
|
|
[Mac (10, 15, 4), NoTV, iOS (13, 0)]
|
|
[Protocol]
|
|
interface MTLRasterizationRateMap {
|
|
[Abstract]
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; }
|
|
|
|
[Abstract]
|
|
[Export ("screenSize")]
|
|
MTLSize ScreenSize { get; }
|
|
|
|
[Abstract]
|
|
[Export ("physicalGranularity")]
|
|
MTLSize PhysicalGranularity { get; }
|
|
|
|
[Abstract]
|
|
[Export ("layerCount")]
|
|
nuint LayerCount { get; }
|
|
|
|
[Abstract]
|
|
[Export ("parameterBufferSizeAndAlign")]
|
|
MTLSizeAndAlign ParameterBufferSizeAndAlign { get; }
|
|
|
|
[Abstract]
|
|
[Export ("copyParameterDataToBuffer:offset:")]
|
|
void CopyParameterData (IMTLBuffer buffer, nuint offset);
|
|
|
|
[Abstract]
|
|
[Export ("physicalSizeForLayer:")]
|
|
MTLSize GetPhysicalSize (nuint layerIndex);
|
|
|
|
[Abstract]
|
|
[Export ("mapScreenToPhysicalCoordinates:forLayer:")]
|
|
MTLCoordinate2D MapScreenToPhysicalCoordinates (MTLCoordinate2D screenCoordinates, nuint layerIndex);
|
|
|
|
[Abstract]
|
|
[Export ("mapPhysicalToScreenCoordinates:forLayer:")]
|
|
MTLCoordinate2D MapPhysicalToScreenCoordinates (MTLCoordinate2D physicalCoordinates, nuint layerIndex);
|
|
}
|
|
|
|
interface IMTLResourceStateCommandEncoder { }
|
|
|
|
[Introduced (PlatformName.MacCatalyst, 14, 0)]
|
|
[Mac (11, 0), iOS (13, 0), NoTV]
|
|
[Protocol]
|
|
interface MTLResourceStateCommandEncoder : MTLCommandEncoder {
|
|
#if !MONOMAC && !__MACCATALYST__
|
|
[Abstract]
|
|
#endif
|
|
[Export ("updateTextureMappings:mode:regions:mipLevels:slices:numRegions:")]
|
|
void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, IntPtr regions, IntPtr mipLevels, IntPtr slices, nuint numRegions);
|
|
|
|
#if !MONOMAC && !__MACCATALYST__
|
|
[Abstract]
|
|
#endif
|
|
[Export ("updateTextureMapping:mode:region:mipLevel:slice:")]
|
|
void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, MTLRegion region, nuint mipLevel, nuint slice);
|
|
|
|
#if !MONOMAC && !__MACCATALYST__
|
|
[Abstract]
|
|
#endif
|
|
[Export ("updateTextureMapping:mode:indirectBuffer:indirectBufferOffset:")]
|
|
void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, IMTLBuffer indirectBuffer, nuint indirectBufferOffset);
|
|
|
|
#if !MONOMAC && !__MACCATALYST__
|
|
[Abstract]
|
|
#endif
|
|
[Export ("updateFence:")]
|
|
void Update (IMTLFence fence);
|
|
|
|
#if !MONOMAC && !__MACCATALYST__
|
|
[Abstract]
|
|
#endif
|
|
[Export ("waitForFence:")]
|
|
void Wait (IMTLFence fence);
|
|
}
|
|
|
|
[Mac (10, 15), iOS (13, 0), TV (13, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLCaptureDescriptor : NSCopying {
|
|
[NullAllowed, Export ("captureObject", ArgumentSemantic.Strong)]
|
|
NSObject CaptureObject { get; set; }
|
|
|
|
[Export ("destination", ArgumentSemantic.Assign)]
|
|
MTLCaptureDestination Destination { get; set; }
|
|
|
|
[NullAllowed, Export ("outputURL", ArgumentSemantic.Copy)]
|
|
NSUrl OutputUrl { get; set; }
|
|
}
|
|
|
|
interface IMTLIndirectComputeCommand { }
|
|
|
|
[TV (13, 0), iOS (13, 0), Mac (11, 0)]
|
|
[MacCatalyst (13, 1)]
|
|
[Protocol]
|
|
interface MTLIndirectComputeCommand {
|
|
[Abstract]
|
|
[Export ("setComputePipelineState:")]
|
|
void SetComputePipelineState (IMTLComputePipelineState pipelineState);
|
|
|
|
[Abstract]
|
|
[Export ("setKernelBuffer:offset:atIndex:")]
|
|
void SetKernelBuffer (IMTLBuffer buffer, nuint offset, nuint index);
|
|
|
|
[Abstract]
|
|
[Export ("concurrentDispatchThreadgroups:threadsPerThreadgroup:")]
|
|
void ConcurrentDispatchThreadgroups (MTLSize threadgroupsPerGrid, MTLSize threadsPerThreadgroup);
|
|
|
|
[Abstract]
|
|
[Export ("concurrentDispatchThreads:threadsPerThreadgroup:")]
|
|
void ConcurrentDispatchThreads (MTLSize threadsPerGrid, MTLSize threadsPerThreadgroup);
|
|
|
|
[Abstract]
|
|
[Export ("setBarrier")]
|
|
void SetBarrier ();
|
|
|
|
[Abstract]
|
|
[Export ("clearBarrier")]
|
|
void ClearBarrier ();
|
|
|
|
[Abstract]
|
|
[Export ("reset")]
|
|
void Reset ();
|
|
|
|
[Abstract]
|
|
[Export ("setThreadgroupMemoryLength:atIndex:")]
|
|
void SetThreadgroupMemoryLength (nuint length, nuint index);
|
|
|
|
[Abstract]
|
|
[Export ("setStageInRegion:")]
|
|
void SetStageInRegion (MTLRegion region);
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Export ("setImageblockWidth:height:")]
|
|
void SetImageblock (nuint width, nuint height);
|
|
}
|
|
|
|
interface IMTLCounter { }
|
|
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
#if !NET
|
|
[BaseType (typeof (NSObject))]
|
|
#endif
|
|
interface MTLCounter {
|
|
[Abstract]
|
|
[Export ("name")]
|
|
string Name { get; }
|
|
}
|
|
|
|
interface IMTLCounterSet { }
|
|
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
#if !NET
|
|
[BaseType (typeof (NSObject))]
|
|
#endif
|
|
interface MTLCounterSet {
|
|
[Abstract]
|
|
[Export ("name")]
|
|
string Name { get; }
|
|
|
|
[Abstract]
|
|
[Export ("counters", ArgumentSemantic.Copy)]
|
|
IMTLCounter [] Counters { get; }
|
|
}
|
|
|
|
interface IMTLCounterSampleBuffer { }
|
|
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
#if !NET
|
|
[BaseType (typeof (NSObject))]
|
|
#endif
|
|
interface MTLCounterSampleBuffer {
|
|
[Abstract]
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract]
|
|
[Export ("label")]
|
|
string Label { get; }
|
|
|
|
[Abstract]
|
|
[Export ("sampleCount")]
|
|
nuint SampleCount { get; }
|
|
|
|
[Abstract]
|
|
[Export ("resolveCounterRange:")]
|
|
[return: NullAllowed]
|
|
NSData ResolveCounterRange (NSRange range);
|
|
}
|
|
|
|
[iOS (14, 0), TV (14, 0), Mac (10, 15)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLCounterSampleBufferDescriptor : NSCopying {
|
|
[NullAllowed]
|
|
[Export ("counterSet", ArgumentSemantic.Retain)]
|
|
IMTLCounterSet CounterSet { get; set; }
|
|
|
|
[Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Export ("storageMode", ArgumentSemantic.Assign)]
|
|
MTLStorageMode StorageMode { get; set; }
|
|
|
|
[Export ("sampleCount")]
|
|
nuint SampleCount { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
interface IMTLAccelerationStructure { }
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLAccelerationStructure : MTLResource {
|
|
[Abstract]
|
|
[Export ("size")]
|
|
nuint Size { get; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[DisableDefaultCtor]
|
|
[BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))]
|
|
interface MTLAccelerationStructureBoundingBoxGeometryDescriptor {
|
|
[NullAllowed, Export ("boundingBoxBuffer", ArgumentSemantic.Retain)]
|
|
IMTLBuffer BoundingBoxBuffer { get; set; }
|
|
|
|
[Export ("boundingBoxBufferOffset")]
|
|
nuint BoundingBoxBufferOffset { get; set; }
|
|
|
|
[Export ("boundingBoxStride")]
|
|
nuint BoundingBoxStride { get; set; }
|
|
|
|
[Export ("boundingBoxCount")]
|
|
nuint BoundingBoxCount { get; set; }
|
|
|
|
[Static]
|
|
[Export ("descriptor")]
|
|
MTLAccelerationStructureBoundingBoxGeometryDescriptor Create ();
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLAccelerationStructureDescriptor : NSCopying {
|
|
[Export ("usage", ArgumentSemantic.Assign)]
|
|
MTLAccelerationStructureUsage Usage { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLAccelerationStructureGeometryDescriptor : NSCopying {
|
|
[Export ("intersectionFunctionTableOffset")]
|
|
nuint IntersectionFunctionTableOffset { get; set; }
|
|
|
|
[Export ("opaque")]
|
|
bool Opaque { get; set; }
|
|
|
|
[Export ("allowDuplicateIntersectionFunctionInvocation")]
|
|
bool AllowDuplicateIntersectionFunctionInvocation { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), NoWatch, MacCatalyst (15, 0)]
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))]
|
|
interface MTLAccelerationStructureTriangleGeometryDescriptor {
|
|
[NullAllowed, Export ("vertexBuffer", ArgumentSemantic.Retain)]
|
|
IMTLBuffer VertexBuffer { get; set; }
|
|
|
|
[Export ("vertexBufferOffset")]
|
|
nuint VertexBufferOffset { get; set; }
|
|
|
|
[Export ("vertexStride")]
|
|
nuint VertexStride { get; set; }
|
|
|
|
[NullAllowed, Export ("indexBuffer", ArgumentSemantic.Retain)]
|
|
IMTLBuffer IndexBuffer { get; set; }
|
|
|
|
[Export ("indexBufferOffset")]
|
|
nuint IndexBufferOffset { get; set; }
|
|
|
|
[Export ("indexType", ArgumentSemantic.Assign)]
|
|
MTLIndexType IndexType { get; set; }
|
|
|
|
[Export ("triangleCount")]
|
|
nuint TriangleCount { get; set; }
|
|
|
|
[Static]
|
|
[Export ("descriptor")]
|
|
MTLAccelerationStructureTriangleGeometryDescriptor Create ();
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLBinaryArchiveDescriptor : NSCopying {
|
|
[NullAllowed, Export ("url", ArgumentSemantic.Copy)]
|
|
NSUrl Url { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLBlitPassDescriptor : NSCopying {
|
|
[Static]
|
|
[Export ("blitPassDescriptor")]
|
|
MTLBlitPassDescriptor Create ();
|
|
|
|
[Export ("sampleBufferAttachments")]
|
|
MTLBlitPassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLBlitPassSampleBufferAttachmentDescriptor : NSCopying {
|
|
[NullAllowed, Export ("sampleBuffer", ArgumentSemantic.Retain)]
|
|
IMTLCounterSampleBuffer SampleBuffer { get; set; }
|
|
|
|
[Export ("startOfEncoderSampleIndex")]
|
|
nuint StartOfEncoderSampleIndex { get; set; }
|
|
|
|
[Export ("endOfEncoderSampleIndex")]
|
|
nuint EndOfEncoderSampleIndex { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLBlitPassSampleBufferAttachmentDescriptorArray {
|
|
[Export ("objectAtIndexedSubscript:")]
|
|
MTLBlitPassSampleBufferAttachmentDescriptor GetObject (nuint attachmentIndex);
|
|
|
|
[Export ("setObject:atIndexedSubscript:")]
|
|
void SetObject ([NullAllowed] MTLBlitPassSampleBufferAttachmentDescriptor attachment, nuint attachmentIndex);
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLCommandBufferDescriptor : NSCopying {
|
|
|
|
[Field ("MTLCommandBufferEncoderInfoErrorKey")]
|
|
NSString BufferEncoderInfoErrorKey { get; }
|
|
|
|
[Export ("retainedReferences")]
|
|
bool RetainedReferences { get; set; }
|
|
|
|
[Export ("errorOptions", ArgumentSemantic.Assign)]
|
|
MTLCommandBufferErrorOption ErrorOptions { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLComputePassDescriptor : NSCopying {
|
|
[Static]
|
|
[Export ("computePassDescriptor")]
|
|
MTLComputePassDescriptor Create ();
|
|
|
|
[Export ("dispatchType", ArgumentSemantic.Assign)]
|
|
MTLDispatchType DispatchType { get; set; }
|
|
|
|
[Export ("sampleBufferAttachments")]
|
|
MTLComputePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLComputePassSampleBufferAttachmentDescriptor : NSCopying {
|
|
|
|
[NullAllowed, Export ("sampleBuffer", ArgumentSemantic.Retain)]
|
|
IMTLCounterSampleBuffer SampleBuffer { get; set; }
|
|
|
|
[Export ("startOfEncoderSampleIndex")]
|
|
nuint StartOfEncoderSampleIndex { get; set; }
|
|
|
|
[Export ("endOfEncoderSampleIndex")]
|
|
nuint EndOfEncoderSampleIndex { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLComputePassSampleBufferAttachmentDescriptorArray {
|
|
[Export ("objectAtIndexedSubscript:")]
|
|
MTLComputePassSampleBufferAttachmentDescriptor GetObject (nuint attachmentIndex);
|
|
|
|
[Export ("setObject:atIndexedSubscript:")]
|
|
void SetObject ([NullAllowed] MTLComputePassSampleBufferAttachmentDescriptor attachment, nuint attachmentIndex);
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[DisableDefaultCtor]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLFunctionDescriptor : NSCopying {
|
|
[Static]
|
|
[Export ("functionDescriptor")]
|
|
MTLFunctionDescriptor Create ();
|
|
|
|
[NullAllowed, Export ("name")]
|
|
string Name { get; set; }
|
|
|
|
[NullAllowed, Export ("specializedName")]
|
|
string SpecializedName { get; set; }
|
|
|
|
[NullAllowed, Export ("constantValues", ArgumentSemantic.Copy)]
|
|
MTLFunctionConstantValues ConstantValues { get; set; }
|
|
|
|
[Export ("options", ArgumentSemantic.Assign)]
|
|
MTLFunctionOptions Options { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), NoWatch, MacCatalyst (15, 0)]
|
|
[NullAllowed, Export ("binaryArchives", ArgumentSemantic.Copy)]
|
|
IMTLBinaryArchive [] BinaryArchives { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[DisableDefaultCtor]
|
|
[BaseType (typeof (MTLAccelerationStructureDescriptor))]
|
|
interface MTLInstanceAccelerationStructureDescriptor {
|
|
[NullAllowed, Export ("instanceDescriptorBuffer", ArgumentSemantic.Retain)]
|
|
IMTLBuffer InstanceDescriptorBuffer { get; set; }
|
|
|
|
[Export ("instanceDescriptorBufferOffset")]
|
|
nuint InstanceDescriptorBufferOffset { get; set; }
|
|
|
|
[Export ("instanceDescriptorStride")]
|
|
nuint InstanceDescriptorStride { get; set; }
|
|
|
|
[Export ("instanceCount")]
|
|
nuint InstanceCount { get; set; }
|
|
|
|
[NullAllowed, Export ("instancedAccelerationStructures", ArgumentSemantic.Retain)]
|
|
IMTLAccelerationStructure [] InstancedAccelerationStructures { get; set; }
|
|
|
|
[Static]
|
|
[Export ("descriptor")]
|
|
MTLInstanceAccelerationStructureDescriptor Create ();
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoTV, NoWatch]
|
|
[Export ("instanceDescriptorType", ArgumentSemantic.Assign)]
|
|
MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), NoWatch, MacCatalyst (15, 0)]
|
|
[NullAllowed, Export ("motionTransformBuffer", ArgumentSemantic.Retain)]
|
|
IMTLBuffer MotionTransformBuffer { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), NoWatch, MacCatalyst (15, 0)]
|
|
[Export ("motionTransformBufferOffset")]
|
|
nuint MotionTransformBufferOffset { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), NoWatch, MacCatalyst (15, 0)]
|
|
[Export ("motionTransformCount")]
|
|
nuint MotionTransformCount { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[DisableDefaultCtor]
|
|
[BaseType (typeof (MTLFunctionDescriptor))]
|
|
interface MTLIntersectionFunctionDescriptor : NSCopying { }
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[DisableDefaultCtor]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLIntersectionFunctionTableDescriptor : NSCopying {
|
|
[Static]
|
|
[Export ("intersectionFunctionTableDescriptor")]
|
|
MTLIntersectionFunctionTableDescriptor Create ();
|
|
|
|
[Export ("functionCount")]
|
|
nuint FunctionCount { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[DisableDefaultCtor]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLLinkedFunctions : NSCopying {
|
|
[Static]
|
|
[Export ("linkedFunctions")]
|
|
MTLLinkedFunctions Create ();
|
|
|
|
[NullAllowed, Export ("functions", ArgumentSemantic.Copy)]
|
|
IMTLFunction [] Functions { get; set; }
|
|
|
|
[NoTV]
|
|
[MacCatalyst (13, 1)]
|
|
[NullAllowed, Export ("binaryFunctions", ArgumentSemantic.Copy)]
|
|
IMTLFunction [] BinaryFunctions { get; set; }
|
|
|
|
[NullAllowed, Export ("groups", ArgumentSemantic.Copy)]
|
|
NSDictionary<NSString, NSArray<IMTLFunction>> Groups { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[NullAllowed, Export ("privateFunctions", ArgumentSemantic.Copy)]
|
|
IMTLFunction [] PrivateFunctions { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[Export ("instanceDescriptorType", ArgumentSemantic.Assign)]
|
|
MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[NullAllowed, Export ("motionTransformBuffer", ArgumentSemantic.Retain)]
|
|
IMTLBuffer MotionTransformBuffer { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("motionTransformBufferOffset")]
|
|
nuint MotionTransformBufferOffset { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("motionTransformCount")]
|
|
nuint MotionTransformCount { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[DisableDefaultCtor]
|
|
[BaseType (typeof (MTLAccelerationStructureDescriptor))]
|
|
interface MTLPrimitiveAccelerationStructureDescriptor {
|
|
[NullAllowed, Export ("geometryDescriptors", ArgumentSemantic.Retain)]
|
|
MTLAccelerationStructureGeometryDescriptor [] GeometryDescriptors { get; set; }
|
|
|
|
[Static]
|
|
[Export ("descriptor")]
|
|
MTLPrimitiveAccelerationStructureDescriptor Create ();
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
|
|
[Export ("motionStartBorderMode", ArgumentSemantic.Assign)]
|
|
MTLMotionBorderMode MotionStartBorderMode { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
|
|
[Export ("motionEndBorderMode", ArgumentSemantic.Assign)]
|
|
MTLMotionBorderMode MotionEndBorderMode { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
|
|
[Export ("motionStartTime")]
|
|
float MotionStartTime { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
|
|
[Export ("motionEndTime")]
|
|
float MotionEndTime { get; set; }
|
|
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0)]
|
|
[Export ("motionKeyframeCount")]
|
|
nuint MotionKeyframeCount { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRenderPassSampleBufferAttachmentDescriptor : NSCopying {
|
|
[NullAllowed, Export ("sampleBuffer", ArgumentSemantic.Retain)]
|
|
IMTLCounterSampleBuffer SampleBuffer { get; set; }
|
|
|
|
[Export ("startOfVertexSampleIndex")]
|
|
nuint StartOfVertexSampleIndex { get; set; }
|
|
|
|
[Export ("endOfVertexSampleIndex")]
|
|
nuint EndOfVertexSampleIndex { get; set; }
|
|
|
|
[Export ("startOfFragmentSampleIndex")]
|
|
nuint StartOfFragmentSampleIndex { get; set; }
|
|
|
|
[Export ("endOfFragmentSampleIndex")]
|
|
nuint EndOfFragmentSampleIndex { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRenderPassSampleBufferAttachmentDescriptorArray {
|
|
[Export ("objectAtIndexedSubscript:")]
|
|
MTLRenderPassSampleBufferAttachmentDescriptor GetObject (nuint attachmentIndex);
|
|
|
|
[Export ("setObject:atIndexedSubscript:")]
|
|
void SetObject ([NullAllowed] MTLRenderPassSampleBufferAttachmentDescriptor attachment, nuint attachmentIndex);
|
|
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[DisableDefaultCtor]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLResourceStatePassDescriptor : NSCopying {
|
|
[Static]
|
|
[Export ("resourceStatePassDescriptor")]
|
|
MTLResourceStatePassDescriptor Create ();
|
|
|
|
[Export ("sampleBufferAttachments")]
|
|
MTLResourceStatePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLResourceStatePassSampleBufferAttachmentDescriptor : NSCopying {
|
|
[NullAllowed, Export ("sampleBuffer", ArgumentSemantic.Retain)]
|
|
IMTLCounterSampleBuffer SampleBuffer { get; set; }
|
|
|
|
[Export ("startOfEncoderSampleIndex")]
|
|
nuint StartOfEncoderSampleIndex { get; set; }
|
|
|
|
[Export ("endOfEncoderSampleIndex")]
|
|
nuint EndOfEncoderSampleIndex { get; set; }
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLResourceStatePassSampleBufferAttachmentDescriptorArray {
|
|
[Export ("objectAtIndexedSubscript:")]
|
|
MTLResourceStatePassSampleBufferAttachmentDescriptor GetObject (nuint attachmentIndex);
|
|
|
|
[Export ("setObject:atIndexedSubscript:")]
|
|
void SetObject ([NullAllowed] MTLResourceStatePassSampleBufferAttachmentDescriptor attachment, nuint attachmentIndex);
|
|
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[DisableDefaultCtor]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLVisibleFunctionTableDescriptor : NSCopying {
|
|
[Static]
|
|
[Export ("visibleFunctionTableDescriptor")]
|
|
MTLVisibleFunctionTableDescriptor Create ();
|
|
|
|
[Export ("functionCount")]
|
|
nuint FunctionCount { get; set; }
|
|
}
|
|
|
|
interface IMTLFunctionHandle { }
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLFunctionHandle {
|
|
[Abstract]
|
|
[Export ("functionType")]
|
|
MTLFunctionType FunctionType { get; }
|
|
|
|
[Abstract]
|
|
[Export ("name")]
|
|
string Name { get; }
|
|
|
|
[Abstract]
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
}
|
|
|
|
interface IMTLAccelerationStructureCommandEncoder { }
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLAccelerationStructureCommandEncoder : MTLCommandEncoder {
|
|
[Abstract]
|
|
[Export ("buildAccelerationStructure:descriptor:scratchBuffer:scratchBufferOffset:")]
|
|
void BuildAccelerationStructure (IMTLAccelerationStructure accelerationStructure, MTLAccelerationStructureDescriptor descriptor, IMTLBuffer scratchBuffer, nuint scratchBufferOffset);
|
|
|
|
[Abstract]
|
|
[Export ("refitAccelerationStructure:descriptor:destination:scratchBuffer:scratchBufferOffset:")]
|
|
void RefitAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, MTLAccelerationStructureDescriptor descriptor, [NullAllowed] IMTLAccelerationStructure destinationAccelerationStructure, IMTLBuffer scratchBuffer, nuint scratchBufferOffset);
|
|
|
|
[Abstract]
|
|
[Export ("copyAccelerationStructure:toAccelerationStructure:")]
|
|
void CopyAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, IMTLAccelerationStructure destinationAccelerationStructure);
|
|
|
|
[Abstract]
|
|
[Export ("writeCompactedAccelerationStructureSize:toBuffer:offset:")]
|
|
void WriteCompactedAccelerationStructureSize (IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, nuint offset);
|
|
|
|
[Abstract]
|
|
[Export ("copyAndCompactAccelerationStructure:toAccelerationStructure:")]
|
|
void CopyAndCompactAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, IMTLAccelerationStructure destinationAccelerationStructure);
|
|
|
|
[Abstract]
|
|
[Export ("updateFence:")]
|
|
void UpdateFence (IMTLFence fence);
|
|
|
|
[Abstract]
|
|
[Export ("waitForFence:")]
|
|
void WaitForFence (IMTLFence fence);
|
|
|
|
[Abstract]
|
|
[Export ("useResource:usage:")]
|
|
void UseResource (IMTLResource resource, MTLResourceUsage usage);
|
|
|
|
[Abstract]
|
|
[Export ("useResources:count:usage:")]
|
|
void UseResources (IMTLResource [] resources, nuint count, MTLResourceUsage usage);
|
|
|
|
[Abstract]
|
|
[Export ("useHeap:")]
|
|
void UseHeap (IMTLHeap heap);
|
|
|
|
[Abstract]
|
|
[Export ("useHeaps:count:")]
|
|
void UseHeaps (IMTLHeap [] heaps, nuint count);
|
|
|
|
[Abstract]
|
|
[Export ("sampleCountersInBuffer:atSampleIndex:withBarrier:")]
|
|
#if NET
|
|
void SampleCountersInBuffer (IMTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);
|
|
#else
|
|
void SampleCountersInBuffer (MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);
|
|
#endif
|
|
|
|
#if NET
|
|
[Abstract]
|
|
#endif
|
|
[Mac (12, 0), iOS (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Export ("writeCompactedAccelerationStructureSize:toBuffer:offset:sizeDataType:")]
|
|
void WriteCompactedAccelerationStructureSize (IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, nuint offset, MTLDataType sizeDataType);
|
|
}
|
|
|
|
interface IMTLVisibleFunctionTable { }
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLVisibleFunctionTable : MTLResource {
|
|
[Abstract]
|
|
[Export ("setFunction:atIndex:")]
|
|
void SetFunction ([NullAllowed] IMTLFunctionHandle function, nuint index);
|
|
|
|
[Abstract]
|
|
[Export ("setFunctions:withRange:")]
|
|
void SetFunctions (IMTLFunctionHandle [] functions, NSRange range);
|
|
}
|
|
|
|
interface IMTLIntersectionFunctionTable { }
|
|
|
|
[Mac (11, 0), iOS (14, 0), NoTV]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLIntersectionFunctionTable : MTLResource {
|
|
[Abstract]
|
|
[Export ("setBuffer:offset:atIndex:")]
|
|
void SetBuffer ([NullAllowed] IMTLBuffer buffer, nuint offset, nuint index);
|
|
|
|
[Abstract]
|
|
[Export ("setBuffers:offsets:withRange:")]
|
|
void SetBuffers (IntPtr /* IMTLBuffer[] */ buffers, /* nuint[]*/ IntPtr offsets, NSRange range);
|
|
|
|
[Abstract]
|
|
[Export ("setFunction:atIndex:")]
|
|
void SetFunction ([NullAllowed] IMTLFunctionHandle function, nuint index);
|
|
|
|
[Abstract]
|
|
[Export ("setFunctions:withRange:")]
|
|
void SetFunctions (IMTLFunctionHandle [] functions, NSRange range);
|
|
|
|
[Abstract]
|
|
[Export ("setOpaqueTriangleIntersectionFunctionWithSignature:atIndex:")]
|
|
void SetOpaqueTriangleIntersectionFunction (MTLIntersectionFunctionSignature signature, nuint index);
|
|
|
|
[Abstract]
|
|
[Export ("setOpaqueTriangleIntersectionFunctionWithSignature:withRange:")]
|
|
void SetOpaqueTriangleIntersectionFunction (MTLIntersectionFunctionSignature signature, NSRange range);
|
|
|
|
[Abstract]
|
|
[Export ("setVisibleFunctionTable:atBufferIndex:")]
|
|
void SetVisibleFunctionTable ([NullAllowed] IMTLVisibleFunctionTable functionTable, nuint bufferIndex);
|
|
|
|
[Abstract]
|
|
[Export ("setVisibleFunctionTables:withBufferRange:")]
|
|
void SetVisibleFunctionTables (IMTLVisibleFunctionTable [] functionTables, NSRange bufferRange);
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLCommandBufferEncoderInfo {
|
|
|
|
[Abstract]
|
|
[Export ("label")]
|
|
string Label { get; }
|
|
|
|
[Abstract]
|
|
[Export ("debugSignposts")]
|
|
string [] DebugSignposts { get; }
|
|
|
|
[Abstract]
|
|
[Export ("errorState")]
|
|
MTLCommandEncoderErrorState ErrorState { get; }
|
|
}
|
|
|
|
interface IMTLDynamicLibrary { }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLDynamicLibrary {
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("label")]
|
|
string Label { get; set; }
|
|
|
|
[Abstract]
|
|
[Export ("device")]
|
|
IMTLDevice Device { get; }
|
|
|
|
[Abstract]
|
|
[Export ("installName")]
|
|
string InstallName { get; }
|
|
|
|
[Abstract]
|
|
[Export ("serializeToURL:error:")]
|
|
bool Serialize (NSUrl url, [NullAllowed] out NSError error);
|
|
}
|
|
|
|
interface IMTLLogContainer { }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLLogContainer {
|
|
|
|
}
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLFunctionLog {
|
|
[Abstract]
|
|
[Export ("type")]
|
|
MTLFunctionLogType Type { get; }
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("encoderLabel")]
|
|
string EncoderLabel { get; }
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("function")]
|
|
IMTLFunction Function { get; }
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("debugLocation")]
|
|
IMTLFunctionLogDebugLocation DebugLocation { get; }
|
|
}
|
|
|
|
interface IMTLFunctionLogDebugLocation { }
|
|
|
|
[Mac (11, 0), iOS (14, 0), TV (14, 0)]
|
|
[MacCatalyst (14, 0)]
|
|
[Protocol]
|
|
interface MTLFunctionLogDebugLocation {
|
|
[Abstract]
|
|
[NullAllowed, Export ("functionName")]
|
|
string FunctionName { get; }
|
|
|
|
[Abstract]
|
|
[NullAllowed, Export ("URL")]
|
|
NSUrl Url { get; }
|
|
|
|
[Abstract]
|
|
[Export ("line")]
|
|
nuint Line { get; }
|
|
|
|
[Abstract]
|
|
[Export ("column")]
|
|
nuint Column { get; }
|
|
}
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLStitchedLibraryDescriptor : NSCopying {
|
|
[Export ("functionGraphs", ArgumentSemantic.Copy)]
|
|
MTLFunctionStitchingGraph [] FunctionGraphs { get; set; }
|
|
|
|
[Export ("functions", ArgumentSemantic.Copy)]
|
|
IMTLFunction [] Functions { get; set; }
|
|
}
|
|
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLRenderPipelineFunctionsDescriptor : NSCopying {
|
|
[NullAllowed, Export ("vertexAdditionalBinaryFunctions", ArgumentSemantic.Copy)]
|
|
IMTLFunction [] VertexAdditionalBinaryFunctions { get; set; }
|
|
|
|
[NullAllowed, Export ("fragmentAdditionalBinaryFunctions", ArgumentSemantic.Copy)]
|
|
IMTLFunction [] FragmentAdditionalBinaryFunctions { get; set; }
|
|
|
|
[NullAllowed, Export ("tileAdditionalBinaryFunctions", ArgumentSemantic.Copy)]
|
|
IMTLFunction [] TileAdditionalBinaryFunctions { get; set; }
|
|
}
|
|
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLMotionKeyframeData {
|
|
[NullAllowed, Export ("buffer", ArgumentSemantic.Retain)]
|
|
IMTLBuffer Buffer { get; set; }
|
|
|
|
[Export ("offset")]
|
|
nuint Offset { get; set; }
|
|
|
|
[Static]
|
|
[Export ("data")]
|
|
MTLMotionKeyframeData Create ();
|
|
}
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
interface MTLFunctionStitchingNode : NSCopying { }
|
|
|
|
interface IMTLFunctionStitchingNode { }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[Protocol] // From Apple Docs: Your app does not define classes that implement this protocol. Model is not needed
|
|
interface MTLFunctionStitchingAttribute : NSCopying { }
|
|
|
|
interface IMTLFunctionStitchingAttribute { }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
interface MTLFunctionStitchingAttributeAlwaysInline : MTLFunctionStitchingAttribute { }
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[BaseType (typeof (NSObject))]
|
|
interface MTLFunctionStitchingInputNode : MTLFunctionStitchingNode {
|
|
[Export ("argumentIndex")]
|
|
nuint ArgumentIndex { get; set; }
|
|
|
|
[Export ("initWithArgumentIndex:")]
|
|
NativeHandle Constructor (nuint argument);
|
|
}
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[BaseType (typeof (NSObject))]
|
|
[DisableDefaultCtor]
|
|
interface MTLFunctionStitchingGraph : NSCopying {
|
|
[Export ("functionName")]
|
|
string FunctionName { get; set; }
|
|
|
|
[Export ("nodes", ArgumentSemantic.Copy)]
|
|
MTLFunctionStitchingFunctionNode [] Nodes { get; set; }
|
|
|
|
[NullAllowed, Export ("outputNode", ArgumentSemantic.Copy)]
|
|
MTLFunctionStitchingFunctionNode OutputNode { get; set; }
|
|
|
|
[Export ("attributes", ArgumentSemantic.Copy)]
|
|
IMTLFunctionStitchingAttribute [] Attributes { get; set; }
|
|
|
|
[Export ("initWithFunctionName:nodes:outputNode:attributes:")]
|
|
NativeHandle Constructor (string functionName, MTLFunctionStitchingFunctionNode [] nodes, [NullAllowed] MTLFunctionStitchingFunctionNode outputNode, IMTLFunctionStitchingAttribute [] attributes);
|
|
}
|
|
|
|
[Mac (12, 0), iOS (15, 0), TV (15, 0), MacCatalyst (15, 0), NoWatch]
|
|
[BaseType (typeof (NSObject))]
|
|
[DisableDefaultCtor]
|
|
interface MTLFunctionStitchingFunctionNode : MTLFunctionStitchingNode {
|
|
[Export ("name")]
|
|
string Name { get; set; }
|
|
|
|
[Export ("arguments", ArgumentSemantic.Copy)]
|
|
IMTLFunctionStitchingNode [] Arguments { get; set; }
|
|
|
|
[Export ("controlDependencies", ArgumentSemantic.Copy)]
|
|
MTLFunctionStitchingFunctionNode [] ControlDependencies { get; set; }
|
|
|
|
[Export ("initWithName:arguments:controlDependencies:")]
|
|
NativeHandle Constructor (string name, IMTLFunctionStitchingNode [] arguments, MTLFunctionStitchingFunctionNode [] controlDependencies);
|
|
}
|
|
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))]
|
|
interface MTLAccelerationStructureMotionTriangleGeometryDescriptor {
|
|
[Export ("vertexBuffers", ArgumentSemantic.Copy)]
|
|
MTLMotionKeyframeData [] VertexBuffers { get; set; }
|
|
|
|
[Export ("vertexStride")]
|
|
nuint VertexStride { get; set; }
|
|
|
|
[NullAllowed, Export ("indexBuffer", ArgumentSemantic.Retain)]
|
|
IMTLBuffer IndexBuffer { get; set; }
|
|
|
|
[Export ("indexBufferOffset")]
|
|
nuint IndexBufferOffset { get; set; }
|
|
|
|
[Export ("indexType", ArgumentSemantic.Assign)]
|
|
MTLIndexType IndexType { get; set; }
|
|
|
|
[Export ("triangleCount")]
|
|
nuint TriangleCount { get; set; }
|
|
|
|
[Static]
|
|
[Export ("descriptor")]
|
|
MTLAccelerationStructureMotionTriangleGeometryDescriptor Create ();
|
|
}
|
|
|
|
[Mac (12, 0), iOS (15, 0), NoTV, MacCatalyst (15, 0), NoWatch]
|
|
[BaseType (typeof (MTLAccelerationStructureGeometryDescriptor))]
|
|
interface MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor {
|
|
[Export ("boundingBoxBuffers", ArgumentSemantic.Copy)]
|
|
MTLMotionKeyframeData [] BoundingBoxBuffers { get; set; }
|
|
|
|
[Export ("boundingBoxStride")]
|
|
nuint BoundingBoxStride { get; set; }
|
|
|
|
[Export ("boundingBoxCount")]
|
|
nuint BoundingBoxCount { get; set; }
|
|
|
|
[Static]
|
|
[Export ("descriptor")]
|
|
MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor Create ();
|
|
}
|
|
}
|