Skip to content

Instantly share code, notes, and snippets.

@vs-mobiletools-engineering-service2
Created January 25, 2024 14:31
Show Gist options
  • Save vs-mobiletools-engineering-service2/41303658122409528be20b582e3f7abf to your computer and use it in GitHub Desktop.
Save vs-mobiletools-engineering-service2/41303658122409528be20b582e3f7abf to your computer and use it in GitHub Desktop.
stable-api-comparison/diff/dotnet/Microsoft.tvOS.Ref/ref/net8.0/Microsoft.tvOS.md

API diff: Microsoft.tvOS.dll

Microsoft.tvOS.dll

Namespace AudioToolbox

Type Changed: AudioToolbox.MusicPlayer

Modified methods:

-protected virtual void Dispose (bool disposing)
+protected override void Dispose (bool disposing)

Added methods:

public MusicPlayerStatus GetTime (out double time);
public MusicPlayerStatus SetTime (double time);

Namespace CoreText

Type Changed: CoreText.CTFontDescriptor

Obsoleted methods:

 [Obsolete ("Use 'MatchFontDescriptors (CTFontDescriptor[], NSSet, CTFontDescriptorProgressHandler)' instead.")]
 public static bool MatchFontDescriptors (CTFontDescriptor[] descriptors, Foundation.NSSet mandatoryAttributes, System.Func<CTFontDescriptorMatchingState,System.IntPtr,System.Boolean> progressHandler);

Added method:

public static bool MatchFontDescriptors (CTFontDescriptor[] descriptors, Foundation.NSSet mandatoryAttributes, CTFontDescriptor.CTFontDescriptorProgressHandler progressHandler);

Type Changed: CoreText.CTFontDescriptorAttributes

Added property:

public bool? WeakEnabled { get; set; }

New Type: CoreText.CTFontDescriptorMatchingProgress

public class CTFontDescriptorMatchingProgress : Foundation.DictionaryContainer {
	// constructors
	public CTFontDescriptorMatchingProgress ();
	public CTFontDescriptorMatchingProgress (Foundation.NSDictionary dictionary);
	// properties
	public long? CurrentAssetSize { get; }
	public CTFontDescriptor[] Descriptors { get; }
	public Foundation.NSError Error { get; }
	public double? Percentage { get; }
	public CTFontDescriptor[] Result { get; }
	public CTFontDescriptor SourceDescriptor { get; }
	public long? TotalAssetSize { get; }
	public long? TotalDownloadedSize { get; }
}

Namespace Foundation

Type Changed: Foundation.NSAttributedStringNameKey

Added values:

InflectionAgreementArgument = 10,
InflectionAgreementConcept = 11,
InflectionReferentConcept = 12,

Type Changed: Foundation.NSBundle

Added property:

public static NSString BundleDidLoadNotification { get; }

Type Changed: Foundation.NSDataWritingOptions

Added value:

FileProtectionCompleteWhenUserInactive = 1342177280,

Type Changed: Foundation.NSDate

Added property:

public static NSString SystemClockDidChangeNotification { get; }

Type Changed: Foundation.NSError

Added property:

public static NSString NSNetServicesErrorCode { get; }

Type Changed: Foundation.NSFileProtectionType

Added value:

CompleteWhenUserInactive = 4,

Type Changed: Foundation.NSLocale

Added properties:

public virtual string LanguageIdentifier { get; }
public virtual string RegionCode { get; }

Type Changed: Foundation.NSMorphology

Added properties:

public virtual NSGrammaticalDefiniteness Definiteness { get; set; }
public virtual NSGrammaticalDetermination Determination { get; set; }
public virtual NSGrammaticalCase GrammaticalCase { get; set; }
public virtual NSGrammaticalPerson GrammaticalPerson { get; set; }
public virtual NSGrammaticalPronounType PronounType { get; set; }

Type Changed: Foundation.NSPort

Added property:

public static NSString PortDidBecomeInvalidNotification { get; }

Type Changed: Foundation.NSThread

Added properties:

public static NSString ThreadWillExitNotification { get; }
public static NSString WillBecomeMultiThreadedNotification { get; }

Type Changed: Foundation.NSTimeZone

Added property:

public static NSString SystemTimeZoneDidChangeNotification { get; }

Type Changed: Foundation.NSUrl

Added properties:

public static NSString DirectoryEntryCountKey { get; }
public static NSString FileProtectionCompleteWhenUserInactive { get; }

Added method:

public static NSUrl FromString (string url, bool encodingInvalidCharacters);

Type Changed: Foundation.NSUrlComponents

Added method:

public static NSUrlComponents FromString (string url, bool encodingInvalidCharacters);

Type Changed: Foundation.NSUrlSession

Added methods:

public virtual NSUrlSessionUploadTask CreateUploadTask (NSData resumeData);
public virtual NSUrlSessionUploadTask CreateUploadTask (NSData resumeData, System.Action<NSData,Foundation.NSUrlResponse,Foundation.NSError> completionHandler);
public virtual System.Threading.Tasks.Task<NSUrlSessionUploadTaskResumeRequest> CreateUploadTaskAsync (NSData resumeData);
public virtual System.Threading.Tasks.Task<NSUrlSessionUploadTaskResumeRequest> CreateUploadTaskAsync (NSData resumeData, out NSUrlSessionUploadTask result);

Type Changed: Foundation.NSUrlSessionConfiguration

Added property:

public Network.NWProxyConfig[] ProxyConfigurations { get; set; }

Type Changed: Foundation.NSUrlSessionTaskDelegate

Added methods:

public virtual void DidReceiveInformationalResponse (NSUrlSession session, NSUrlSessionTask task, NSHttpUrlResponse response);
public virtual void NeedNewBodyStream (NSUrlSession session, NSUrlSessionTask task, long offset, System.Action<NSInputStream> completionHandler);

Type Changed: Foundation.NSUrlSessionTaskDelegate_Extensions

Added methods:

public static void DidReceiveInformationalResponse (this INSUrlSessionTaskDelegate This, NSUrlSession session, NSUrlSessionTask task, NSHttpUrlResponse response);
public static void NeedNewBodyStream (this INSUrlSessionTaskDelegate This, NSUrlSession session, NSUrlSessionTask task, long offset, System.Action<NSInputStream> completionHandler);

Type Changed: Foundation.NSUrlSessionUploadTask

Added property:

public static NSString ResumeDataKey { get; }

Added methods:

public virtual void CancelByProducingResumeData (System.Action<NSData> completionHandler);
public virtual System.Threading.Tasks.Task<NSData> CancelByProducingResumeDataAsync ();

Type Changed: Foundation.NSUserDefaults

Added properties:

public static NSString CompletedInitialSyncNotification { get; }
public static NSString DidChangeAccountsNotification { get; }
public static NSString SizeLimitExceededNotification { get; }

Type Changed: Foundation.NSUserDefaults.Notifications

Added methods:

public static NSObject ObserveCompletedInitialSync (System.EventHandler<NSNotificationEventArgs> handler);
public static NSObject ObserveCompletedInitialSync (NSObject objectToObserve, System.EventHandler<NSNotificationEventArgs> handler);
public static NSObject ObserveDidChangeAccounts (System.EventHandler<NSNotificationEventArgs> handler);
public static NSObject ObserveDidChangeAccounts (NSObject objectToObserve, System.EventHandler<NSNotificationEventArgs> handler);
public static NSObject ObserveSizeLimitExceeded (System.EventHandler<NSNotificationEventArgs> handler);
public static NSObject ObserveSizeLimitExceeded (NSObject objectToObserve, System.EventHandler<NSNotificationEventArgs> handler);

New Type: Foundation.NSGrammaticalCase

[Serializable]
public enum NSGrammaticalCase {
	Ablative = 6,
	Accusative = 2,
	Adessive = 7,
	Allative = 8,
	Dative = 3,
	Elative = 9,
	Essive = 11,
	Genitive = 4,
	Illative = 10,
	Inessive = 12,
	Locative = 13,
	Nominative = 1,
	NotSet = 0,
	Prepositional = 5,
	Translative = 14,
}

New Type: Foundation.NSGrammaticalDefiniteness

[Serializable]
public enum NSGrammaticalDefiniteness {
	Definite = 2,
	Indefinite = 1,
	NotSet = 0,
}

New Type: Foundation.NSGrammaticalDetermination

[Serializable]
public enum NSGrammaticalDetermination {
	Dependent = 2,
	Independent = 1,
	NotSet = 0,
}

New Type: Foundation.NSGrammaticalPerson

[Serializable]
public enum NSGrammaticalPerson {
	First = 1,
	NotSet = 0,
	Second = 2,
	Third = 3,
}

New Type: Foundation.NSGrammaticalPronounType

[Serializable]
public enum NSGrammaticalPronounType {
	NotSet = 0,
	Personal = 1,
	Possessive = 3,
	Reflexive = 2,
}

New Type: Foundation.NSMorphologyPronoun

public class NSMorphologyPronoun : Foundation.NSObject, INSCoding, INSCopying, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NSMorphologyPronoun (NSCoder coder);
	protected NSMorphologyPronoun (NSObjectFlag t);
	protected NSMorphologyPronoun (ObjCRuntime.NativeHandle handle);
	public NSMorphologyPronoun (string pronoun, NSMorphology morphology, NSMorphology dependentMorphology);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual NSMorphology DependentMorphology { get; }
	public virtual NSMorphology Morphology { get; }
	public virtual string Pronoun { get; }
	// methods
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
}

New Type: Foundation.NSTermOfAddress

public class NSTermOfAddress : Foundation.NSObject, INSCoding, INSCopying, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NSTermOfAddress (NSCoder coder);
	protected NSTermOfAddress (NSObjectFlag t);
	protected NSTermOfAddress (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static NSTermOfAddress Feminine { get; }
	public virtual string LanguageIdentifier { get; }
	public static NSTermOfAddress Masculine { get; }
	public static NSTermOfAddress Neutral { get; }
	public virtual NSMorphologyPronoun[] Pronouns { get; }
	// methods
	public virtual NSObject Copy (NSZone zone);
	public virtual void EncodeTo (NSCoder encoder);
	public static NSTermOfAddress GetLocalized (string language, NSMorphologyPronoun[] pronouns);
}

New Type: Foundation.NSUrlSessionUploadTaskResumeRequest

public class NSUrlSessionUploadTaskResumeRequest {
	// constructors
	public NSUrlSessionUploadTaskResumeRequest (NSData arg1, NSUrlResponse arg2);
	// properties
	public NSData Arg1 { get; set; }
	public NSUrlResponse Arg2 { get; set; }
}

Namespace GameKit

Type Changed: GameKit.GKAchievement

Added methods:

public virtual UIKit.UIViewController ChallengeComposeControllerWithMessage (string message, GKPlayer[] players, GKChallengeComposeHandler2 completionHandler);
public virtual System.Threading.Tasks.Task<GKChallengeComposeControllerResult> ChallengeComposeControllerWithMessageAsync (string message, GKPlayer[] players);
public virtual System.Threading.Tasks.Task<GKChallengeComposeControllerResult> ChallengeComposeControllerWithMessageAsync (string message, GKPlayer[] players, out UIKit.UIViewController result);

Type Changed: GameKit.GKAchievementDescription

Added property:

public virtual Foundation.NSNumber RarityPercent { get; }

Type Changed: GameKit.GKLeaderboardEntry

Added methods:

public virtual UIKit.UIViewController ChallengeComposeControllerWithMessage (string message, GKPlayer[] players, GKChallengeComposeHandler2 completionHandler);
public virtual System.Threading.Tasks.Task<GKChallengeComposeControllerResult> ChallengeComposeControllerWithMessageAsync (string message, GKPlayer[] players);
public virtual System.Threading.Tasks.Task<GKChallengeComposeControllerResult> ChallengeComposeControllerWithMessageAsync (string message, GKPlayer[] players, out UIKit.UIViewController result);

Type Changed: GameKit.GKVoiceChat

Added property:

public virtual System.Action<GKPlayer,GameKit.GKVoiceChatPlayerState> PlayerVoiceChatStateDidChangeHandler { get; }

New Type: GameKit.GKChallengeComposeControllerResult

public class GKChallengeComposeControllerResult {
	// constructors
	public GKChallengeComposeControllerResult (UIKit.UIViewController composeController, bool issuedChallenge, GKPlayer[] sentPlayers);
	// properties
	public UIKit.UIViewController ComposeController { get; set; }
	public bool IssuedChallenge { get; set; }
	public GKPlayer[] SentPlayers { get; set; }
}

New Type: GameKit.GKChallengeComposeHandler2

public sealed delegate GKChallengeComposeHandler2 : System.MulticastDelegate {
	// constructors
	public GKChallengeComposeHandler2 (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (UIKit.UIViewController composeController, bool issuedChallenge, GKPlayer[] sentPlayers, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (UIKit.UIViewController composeController, bool issuedChallenge, GKPlayer[] sentPlayers);
}

Namespace Metal

Type Changed: Metal.IMTLDevice

Added properties:

public virtual ulong RecommendedMaxWorkingSetSize { get; }
public virtual bool SupportsBCTextureCompression { get; }

Type Changed: Metal.IMTLRenderPipelineState

Added properties:

public virtual MTLResourceId GpuResourceId { get; }
public virtual UIntPtr MaxTotalThreadgroupsPerMeshGrid { get; }
public virtual UIntPtr MeshThreadExecutionWidth { get; }

Type Changed: Metal.IMTLTexture

Added property:

public virtual UIntPtr FirstMipmapInTail { get; }

Type Changed: Metal.MTLArgumentEncoder_Extensions

Added methods:

public static void SetAccelerationStructure (this IMTLArgumentEncoder This, IMTLAccelerationStructure accelerationStructure, UIntPtr index);
public static void SetIntersectionFunctionTable (this IMTLArgumentEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, UIntPtr index);
public static void SetIntersectionFunctionTables (this IMTLArgumentEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTables, Foundation.NSRange range);
public static void SetVisibleFunctionTable (this IMTLArgumentEncoder This, IMTLVisibleFunctionTable visibleFunctionTable, UIntPtr index);
public static void SetVisibleFunctionTables (this IMTLArgumentEncoder This, IMTLVisibleFunctionTable[] visibleFunctionTables, Foundation.NSRange range);

Type Changed: Metal.MTLAttributeFormat

Added values:

FloatRG11B10 = 54,
FloatRGB9E5 = 55,

Type Changed: Metal.MTLBinaryArchiveError

Added value:

InternalError = 4,

Type Changed: Metal.MTLCompileOptions

Added properties:

public virtual bool AllowReferencingUndefinedSymbols { get; set; }
public virtual MTLCompileSymbolVisibility CompileSymbolVisibility { get; set; }
public virtual UIntPtr MaxTotalThreadsPerThreadgroup { get; set; }
public virtual MTLLibraryOptimizationLevel OptimizationLevel { get; set; }

Type Changed: Metal.MTLComputePipelineDescriptor

Added properties:

public virtual UIntPtr MaxCallStackDepth { get; set; }
public virtual bool SupportAddingBinaryFunctions { get; set; }

Type Changed: Metal.MTLComputePipelineReflection

Added property:

public virtual IMTLBinding[] Bindings { get; }

Type Changed: Metal.MTLDataType

Added values:

BFloat = 121,
BFloat2 = 122,
BFloat3 = 123,
BFloat4 = 124,

Type Changed: Metal.MTLDevice_Extensions

Added methods:

public static void ConvertSparsePixelRegions (this IMTLDevice This, IntPtr pixelRegions, IntPtr tileRegions, MTLSize tileSize, MTLSparseTextureRegionAlignmentMode mode, UIntPtr numRegions);
public static void ConvertSparseTileRegions (this IMTLDevice This, IntPtr tileRegions, IntPtr pixelRegions, MTLSize tileSize, UIntPtr numRegions);
public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLDevice This, MTLAccelerationStructureDescriptor descriptor);
public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLDevice This, UIntPtr size);
public static MTLAccelerationStructureSizes CreateAccelerationStructureSizes (this IMTLDevice This, MTLAccelerationStructureDescriptor descriptor);
public static IMTLArgumentEncoder CreateArgumentEncoder (this IMTLDevice This, IMTLBufferBinding bufferBinding);
public static IMTLRasterizationRateMap CreateRasterizationRateMap (this IMTLDevice This, MTLRasterizationRateMapDescriptor descriptor);
public static void CreateRenderPipelineState (this IMTLDevice This, MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, MTLNewRenderPipelineStateWithReflectionCompletionHandler completionHandler);
public static IMTLRenderPipelineState CreateRenderPipelineState (this IMTLDevice This, MTLMeshRenderPipelineDescriptor descriptor, MTLPipelineOption options, out MTLRenderPipelineReflection reflection, out Foundation.NSError error);
public static MTLArchitecture GetArchitecture (this IMTLDevice This);
public static MTLSizeAndAlign GetHeapAccelerationStructureSizeAndAlign (this IMTLDevice This, MTLAccelerationStructureDescriptor descriptor);
public static MTLSizeAndAlign GetHeapAccelerationStructureSizeAndAlign (this IMTLDevice This, UIntPtr size);
public static MTLSize GetSparseTileSize (this IMTLDevice This, MTLTextureType textureType, MTLPixelFormat pixelFormat, UIntPtr sampleCount);
public static MTLSize GetSparseTileSize (this IMTLDevice This, MTLTextureType textureType, MTLPixelFormat pixelFormat, UIntPtr sampleCount, MTLSparsePageSize sparsePageSize);
public static UIntPtr GetSparseTileSizeInBytes (this IMTLDevice This);
public static UIntPtr GetSparseTileSizeInBytes (this IMTLDevice This, MTLSparsePageSize sparsePageSize);
public static bool GetSupports32BitFloatFiltering (this IMTLDevice This);
public static bool GetSupports32BitMsaa (this IMTLDevice This);
public static bool GetSupportsFunctionPointers (this IMTLDevice This);
public static bool GetSupportsFunctionPointersFromRender (this IMTLDevice This);
public static bool GetSupportsPrimitiveMotionBlur (this IMTLDevice This);
public static bool GetSupportsQueryTextureLod (this IMTLDevice This);
public static bool GetSupportsRaytracing (this IMTLDevice This);
public static bool GetSupportsRaytracingFromRender (this IMTLDevice This);
public static bool GetSupportsShaderBarycentricCoordinates (this IMTLDevice This);
public static bool SupportsRasterizationRateMap (this IMTLDevice This, UIntPtr layerCount);
public static bool SupportsVertexAmplification (this IMTLDevice This, UIntPtr count);

Type Changed: Metal.MTLFunctionOptions

Added value:

StoreFunctionInMetalScript = 2,

Type Changed: Metal.MTLFunctionType

Added values:

Mesh = 7,
Object = 8,

Type Changed: Metal.MTLGpuFamily

Added values:

Apple8 = 1008,
Apple9 = 1009,
Metal3 = 5001,

Type Changed: Metal.MTLHeapDescriptor

Added property:

public virtual MTLSparsePageSize SparsePageSize { get; set; }

Type Changed: Metal.MTLIndirectCommandBufferDescriptor

Added properties:

public virtual UIntPtr MaxKernelThreadgroupMemoryBindCount { get; set; }
public virtual UIntPtr MaxMeshBufferBindCount { get; set; }
public virtual UIntPtr MaxObjectBufferBindCount { get; set; }
public virtual UIntPtr MaxObjectThreadgroupMemoryBindCount { get; set; }
public virtual bool SupportDynamicAttributeStride { get; set; }
public virtual bool SupportRayTracing { get; set; }

Type Changed: Metal.MTLIndirectCommandType

Added values:

DrawMeshThreadgroups = 128,
DrawMeshThreads = 256,

Type Changed: Metal.MTLLanguageVersion

Added values:

v3_0 = 196608,
v3_1 = 196609,

Type Changed: Metal.MTLLibrary_Extensions

Added methods:

public static void CreateIntersectionFunction (this IMTLLibrary This, MTLIntersectionFunctionDescriptor descriptor, System.Action<IMTLFunction,Foundation.NSError> completionHandler);
public static IMTLFunction CreateIntersectionFunction (this IMTLLibrary This, MTLIntersectionFunctionDescriptor descriptor, out Foundation.NSError error);

Type Changed: Metal.MTLLinkedFunctions

Added property:

public virtual IMTLFunction[] BinaryFunctions { get; set; }

Type Changed: Metal.MTLRenderPassDescriptor

Added property:

public virtual IMTLRasterizationRateMap RasterizationRateMap { get; set; }

Type Changed: Metal.MTLRenderPipelineDescriptor

Added property:

public virtual UIntPtr MaxVertexAmplificationCount { get; set; }

Type Changed: Metal.MTLRenderPipelineReflection

Added properties:

public virtual IMTLBinding[] FragmentBindings { get; }
public virtual IMTLBinding[] MeshBindings { get; }
public virtual IMTLBinding[] ObjectBindings { get; }
public virtual IMTLBinding[] TileBindings { get; }
public virtual IMTLBinding[] VertexBindings { get; }

Type Changed: Metal.MTLRenderStages

Added values:

Mesh = 16,
Object = 8,

Type Changed: Metal.MTLSamplerDescriptor

Added property:

public virtual MTLSamplerBorderColor BorderColor { get; set; }

Type Changed: Metal.MTLTextureDescriptor

Added property:

public virtual MTLTextureCompressionType CompressionType { get; set; }

Type Changed: Metal.MTLTextureUsage

Added value:

ShaderAtomic = 32,

Type Changed: Metal.MTLTileRenderPipelineDescriptor

Added properties:

public virtual UIntPtr MaxCallStackDepth { get; set; }
public virtual bool SupportAddingBinaryFunctions { get; set; }

Type Changed: Metal.MTLVertexFormat

Added values:

FloatRG11B10 = 54,
FloatRgb9E5 = 55,

New Type: Metal.IMTLAccelerationStructure

public interface IMTLAccelerationStructure : IMTLResource, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual MTLResourceId GpuResourceId { get; }
	public virtual UIntPtr Size { get; }
}

New Type: Metal.IMTLAccelerationStructureCommandEncoder

public interface IMTLAccelerationStructureCommandEncoder : IMTLCommandEncoder, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public abstract void BuildAccelerationStructure (IMTLAccelerationStructure accelerationStructure, MTLAccelerationStructureDescriptor descriptor, IMTLBuffer scratchBuffer, UIntPtr scratchBufferOffset);
	public abstract void CopyAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, IMTLAccelerationStructure destinationAccelerationStructure);
	public abstract void CopyAndCompactAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, IMTLAccelerationStructure destinationAccelerationStructure);
	public abstract void RefitAccelerationStructure (IMTLAccelerationStructure sourceAccelerationStructure, MTLAccelerationStructureDescriptor descriptor, IMTLAccelerationStructure destinationAccelerationStructure, IMTLBuffer scratchBuffer, UIntPtr scratchBufferOffset);
	public abstract void SampleCountersInBuffer (IMTLCounterSampleBuffer sampleBuffer, UIntPtr sampleIndex, bool barrier);
	public abstract void UpdateFence (IMTLFence fence);
	public abstract void UseHeap (IMTLHeap heap);
	public abstract void UseHeaps (IMTLHeap[] heaps, UIntPtr count);
	public abstract void UseResource (IMTLResource resource, MTLResourceUsage usage);
	public abstract void UseResources (IMTLResource[] resources, UIntPtr count, MTLResourceUsage usage);
	public abstract void WaitForFence (IMTLFence fence);
	public abstract void WriteCompactedAccelerationStructureSize (IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, UIntPtr offset);
	public abstract void WriteCompactedAccelerationStructureSize (IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, UIntPtr offset, MTLDataType sizeDataType);
}

New Type: Metal.IMTLBinding

public interface IMTLBinding : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual MTLBindingAccess Access { get; }
	public virtual bool Argument { get; }
	public virtual UIntPtr Index { get; }
	public virtual string Name { get; }
	public virtual MTLBindingType Type { get; }
	public virtual bool Used { get; }
}

New Type: Metal.IMTLBufferBinding

public interface IMTLBufferBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual UIntPtr BufferAlignment { get; }
	public virtual UIntPtr BufferDataSize { get; }
	public virtual MTLDataType BufferDataType { get; }
	public virtual MTLPointerType BufferPointerType { get; }
	public virtual MTLStructType BufferStructType { get; }
}

New Type: Metal.IMTLFunctionHandle

public interface IMTLFunctionHandle : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IMTLDevice Device { get; }
	public virtual MTLFunctionType FunctionType { get; }
	public virtual string Name { get; }
}

New Type: Metal.IMTLIntersectionFunctionTable

public interface IMTLIntersectionFunctionTable : IMTLResource, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public abstract void SetBuffer (IMTLBuffer buffer, UIntPtr offset, UIntPtr index);
	public abstract void SetBuffers (IntPtr buffers, IntPtr offsets, Foundation.NSRange range);
	public abstract void SetFunction (IMTLFunctionHandle function, UIntPtr index);
	public abstract void SetFunctions (IMTLFunctionHandle[] functions, Foundation.NSRange range);
	public abstract void SetOpaqueTriangleIntersectionFunction (MTLIntersectionFunctionSignature signature, Foundation.NSRange range);
	public abstract void SetOpaqueTriangleIntersectionFunction (MTLIntersectionFunctionSignature signature, UIntPtr index);
	public abstract void SetVisibleFunctionTable (IMTLVisibleFunctionTable functionTable, UIntPtr bufferIndex);
	public abstract void SetVisibleFunctionTables (IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange bufferRange);
}

New Type: Metal.IMTLObjectPayloadBinding

public interface IMTLObjectPayloadBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual UIntPtr ObjectPayloadAlignment { get; }
	public virtual UIntPtr ObjectPayloadDataSize { get; }
}

New Type: Metal.IMTLRasterizationRateMap

public interface IMTLRasterizationRateMap : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IMTLDevice Device { get; }
	public virtual string Label { get; }
	public virtual UIntPtr LayerCount { get; }
	public virtual MTLSizeAndAlign ParameterBufferSizeAndAlign { get; }
	public virtual MTLSize PhysicalGranularity { get; }
	public virtual MTLSize ScreenSize { get; }
	// methods
	public abstract void CopyParameterData (IMTLBuffer buffer, UIntPtr offset);
	public abstract MTLSize GetPhysicalSize (UIntPtr layerIndex);
	public abstract MTLCoordinate2D MapPhysicalToScreenCoordinates (MTLCoordinate2D physicalCoordinates, UIntPtr layerIndex);
	public abstract MTLCoordinate2D MapScreenToPhysicalCoordinates (MTLCoordinate2D screenCoordinates, UIntPtr layerIndex);
}

New Type: Metal.IMTLResourceStateCommandEncoder

public interface IMTLResourceStateCommandEncoder : IMTLCommandEncoder, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public abstract void Update (IMTLFence fence);
	public abstract void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, IMTLBuffer indirectBuffer, UIntPtr indirectBufferOffset);
	public abstract void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, MTLRegion region, UIntPtr mipLevel, UIntPtr slice);
	public abstract void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, IntPtr regions, IntPtr mipLevels, IntPtr slices, UIntPtr numRegions);
	public abstract void Wait (IMTLFence fence);
}

New Type: Metal.IMTLTextureBinding

public interface IMTLTextureBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual UIntPtr ArrayLength { get; }
	public virtual bool DepthTexture { get; }
	public virtual MTLDataType TextureDataType { get; }
	public virtual MTLTextureType TextureType { get; }
}

New Type: Metal.IMTLThreadgroupBinding

public interface IMTLThreadgroupBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual UIntPtr ThreadgroupMemoryAlignment { get; }
	public virtual UIntPtr ThreadgroupMemoryDataSize { get; }
}

New Type: Metal.IMTLVisibleFunctionTable

public interface IMTLVisibleFunctionTable : IMTLResource, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public abstract void SetFunction (IMTLFunctionHandle function, UIntPtr index);
	public abstract void SetFunctions (IMTLFunctionHandle[] functions, Foundation.NSRange range);
}

New Type: Metal.MTLAccelerationStructureBoundingBoxGeometryDescriptor

public class MTLAccelerationStructureBoundingBoxGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	protected MTLAccelerationStructureBoundingBoxGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureBoundingBoxGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual IMTLBuffer BoundingBoxBuffer { get; set; }
	public virtual UIntPtr BoundingBoxBufferOffset { get; set; }
	public virtual UIntPtr BoundingBoxCount { get; set; }
	public virtual UIntPtr BoundingBoxStride { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public static MTLAccelerationStructureBoundingBoxGeometryDescriptor Create ();
}

New Type: Metal.MTLAccelerationStructureCommandEncoder_Extensions

public static class MTLAccelerationStructureCommandEncoder_Extensions {
	// methods
	public static void RefitAccelerationStructure (this IMTLAccelerationStructureCommandEncoder This, IMTLAccelerationStructure sourceAccelerationStructure, MTLAccelerationStructureDescriptor descriptor, IMTLAccelerationStructure destinationAccelerationStructure, IMTLBuffer scratchBuffer, UIntPtr scratchBufferOffset, MTLAccelerationStructureRefitOptions options);
}

New Type: Metal.MTLAccelerationStructureCurveGeometryDescriptor

public class MTLAccelerationStructureCurveGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	public MTLAccelerationStructureCurveGeometryDescriptor ();
	protected MTLAccelerationStructureCurveGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureCurveGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IMTLBuffer ControlPointBuffer { get; set; }
	public virtual UIntPtr ControlPointBufferOffset { get; set; }
	public virtual UIntPtr ControlPointCount { get; set; }
	public virtual MTLAttributeFormat ControlPointFormat { get; set; }
	public virtual UIntPtr ControlPointStride { get; set; }
	public virtual MTLCurveBasis CurveBasis { get; set; }
	public virtual MTLCurveEndCaps CurveEndCaps { get; set; }
	public virtual MTLCurveType CurveType { get; set; }
	public virtual IMTLBuffer IndexBuffer { get; set; }
	public virtual UIntPtr IndexBufferOffset { get; set; }
	public virtual MTLIndexType IndexType { get; set; }
	public virtual IMTLBuffer RadiusBuffer { get; set; }
	public virtual UIntPtr RadiusBufferOffset { get; set; }
	public virtual MTLAttributeFormat RadiusFormat { get; set; }
	public virtual UIntPtr RadiusStride { get; set; }
	public virtual UIntPtr SegmentControlPointCount { get; set; }
	public virtual UIntPtr SegmentCount { get; set; }
	// methods
	public static MTLAccelerationStructureCurveGeometryDescriptor GetDescriptor ();
}

New Type: Metal.MTLAccelerationStructureDescriptor

public class MTLAccelerationStructureDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLAccelerationStructureDescriptor ();
	protected MTLAccelerationStructureDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLAccelerationStructureUsage Usage { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLAccelerationStructureGeometryDescriptor

public class MTLAccelerationStructureGeometryDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLAccelerationStructureGeometryDescriptor ();
	protected MTLAccelerationStructureGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual bool AllowDuplicateIntersectionFunctionInvocation { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr IntersectionFunctionTableOffset { get; set; }
	public virtual string Label { get; set; }
	public virtual bool Opaque { get; set; }
	public virtual IMTLBuffer PrimitiveDataBuffer { get; set; }
	public virtual UIntPtr PrimitiveDataBufferOffset { get; set; }
	public virtual UIntPtr PrimitiveDataElementSize { get; set; }
	public virtual UIntPtr PrimitiveDataStride { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLAccelerationStructureInstanceDescriptorType

[Serializable]
public enum MTLAccelerationStructureInstanceDescriptorType {
	Default = 0,
	Indirect = 3,
	IndirectMotion = 4,
	Motion = 2,
	UserID = 1,
}

New Type: Metal.MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor

public class MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	public MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor ();
	protected MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual MTLMotionKeyframeData[] BoundingBoxBuffers { get; set; }
	public virtual UIntPtr BoundingBoxCount { get; set; }
	public virtual UIntPtr BoundingBoxStride { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public static MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor Create ();
}

New Type: Metal.MTLAccelerationStructureMotionCurveGeometryDescriptor

public class MTLAccelerationStructureMotionCurveGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	public MTLAccelerationStructureMotionCurveGeometryDescriptor ();
	protected MTLAccelerationStructureMotionCurveGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureMotionCurveGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLMotionKeyframeData[] ControlPointBuffers { get; set; }
	public virtual UIntPtr ControlPointCount { get; set; }
	public virtual MTLAttributeFormat ControlPointFormat { get; set; }
	public virtual UIntPtr ControlPointStride { get; set; }
	public virtual MTLCurveBasis CurveBasis { get; set; }
	public virtual MTLCurveEndCaps CurveEndCaps { get; set; }
	public virtual MTLCurveType CurveType { get; set; }
	public virtual IMTLBuffer IndexBuffer { get; set; }
	public virtual UIntPtr IndexBufferOffset { get; set; }
	public virtual MTLIndexType IndexType { get; set; }
	public virtual MTLMotionKeyframeData[] RadiusBuffers { get; set; }
	public virtual MTLAttributeFormat RadiusFormat { get; set; }
	public virtual UIntPtr RadiusStride { get; set; }
	public virtual UIntPtr SegmentControlPointCount { get; set; }
	public virtual UIntPtr SegmentCount { get; set; }
	// methods
	public static MTLAccelerationStructureMotionCurveGeometryDescriptor GetDescriptor ();
}

New Type: Metal.MTLAccelerationStructureMotionTriangleGeometryDescriptor

public class MTLAccelerationStructureMotionTriangleGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	public MTLAccelerationStructureMotionTriangleGeometryDescriptor ();
	protected MTLAccelerationStructureMotionTriangleGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureMotionTriangleGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IMTLBuffer IndexBuffer { get; set; }
	public virtual UIntPtr IndexBufferOffset { get; set; }
	public virtual MTLIndexType IndexType { get; set; }
	public virtual IMTLBuffer TransformationMatrixBuffer { get; set; }
	public virtual UIntPtr TransformationMatrixBufferOffset { get; set; }
	public virtual UIntPtr TriangleCount { get; set; }
	public virtual MTLMotionKeyframeData[] VertexBuffers { get; set; }
	public virtual MTLAttributeFormat VertexFormat { get; set; }
	public virtual UIntPtr VertexStride { get; set; }
	// methods
	public static MTLAccelerationStructureMotionTriangleGeometryDescriptor Create ();
}

New Type: Metal.MTLAccelerationStructurePassDescriptor

public class MTLAccelerationStructurePassDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLAccelerationStructurePassDescriptor ();
	protected MTLAccelerationStructurePassDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructurePassDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public static MTLAccelerationStructurePassDescriptor AccelerationStructurePassDescriptor { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLAccelerationStructurePassSampleBufferAttachmentDescriptor

public class MTLAccelerationStructurePassSampleBufferAttachmentDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLAccelerationStructurePassSampleBufferAttachmentDescriptor ();
	protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr EndOfEncoderSampleIndex { get; set; }
	public virtual IMTLCounterSampleBuffer SampleBuffer { get; set; }
	public virtual UIntPtr StartOfEncoderSampleIndex { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray

public class MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray : Foundation.NSObject {
	// constructors
	public MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray ();
	protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual MTLAccelerationStructurePassSampleBufferAttachmentDescriptor GetObject (UIntPtr attachmentIndex);
	public virtual void SetObject (MTLAccelerationStructurePassSampleBufferAttachmentDescriptor attachment, UIntPtr attachmentIndex);
}

New Type: Metal.MTLAccelerationStructureRefitOptions

[Serializable]
[Flags]
public enum MTLAccelerationStructureRefitOptions {
	PerPrimitiveData = 2,
	VertexData = 1,
}

New Type: Metal.MTLAccelerationStructureSizes

public struct MTLAccelerationStructureSizes {
	// fields
	public UIntPtr AccelerationStructureSize;
	public UIntPtr BuildScratchBufferSize;
	public UIntPtr RefitScratchBufferSize;
}

New Type: Metal.MTLAccelerationStructureTriangleGeometryDescriptor

public class MTLAccelerationStructureTriangleGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor {
	// constructors
	public MTLAccelerationStructureTriangleGeometryDescriptor ();
	protected MTLAccelerationStructureTriangleGeometryDescriptor (Foundation.NSObjectFlag t);
	protected MTLAccelerationStructureTriangleGeometryDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IMTLBuffer IndexBuffer { get; set; }
	public virtual UIntPtr IndexBufferOffset { get; set; }
	public virtual MTLIndexType IndexType { get; set; }
	public virtual IMTLBuffer TransformationMatrixBuffer { get; set; }
	public virtual UIntPtr TransformationMatrixBufferOffset { get; set; }
	public virtual UIntPtr TriangleCount { get; set; }
	public virtual IMTLBuffer VertexBuffer { get; set; }
	public virtual UIntPtr VertexBufferOffset { get; set; }
	public virtual MTLAttributeFormat VertexFormat { get; set; }
	public virtual UIntPtr VertexStride { get; set; }
	// methods
	public static MTLAccelerationStructureTriangleGeometryDescriptor Create ();
}

New Type: Metal.MTLAccelerationStructureUsage

[Serializable]
[Flags]
public enum MTLAccelerationStructureUsage {
	ExtendedLimits = 4,
	None = 0,
	PreferFastBuild = 2,
	Refit = 1,
}

New Type: Metal.MTLArchitecture

public class MTLArchitecture : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLArchitecture ();
	protected MTLArchitecture (Foundation.NSObjectFlag t);
	protected MTLArchitecture (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual string Name { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLBindingAccess

[Serializable]
public enum MTLBindingAccess {
	ReadOnly = 0,
	ReadWrite = 1,
	WriteOnly = 2,
}

New Type: Metal.MTLBindingType

[Serializable]
public enum MTLBindingType {
	Buffer = 0,
	Imageblock = 17,
	ImageblockData = 16,
	InstanceAccelerationStructure = 26,
	IntersectionFunctionTable = 27,
	ObjectPayload = 34,
	PrimitiveAccelerationStructure = 25,
	Sampler = 3,
	Texture = 2,
	ThreadgroupMemory = 1,
	VisibleFunctionTable = 24,
}

New Type: Metal.MTLBlitCommandEncoder_Extensions

public static class MTLBlitCommandEncoder_Extensions {
	// methods
	public static void GetTextureAccessCounters (this IMTLBlitCommandEncoder This, IMTLTexture texture, MTLRegion region, UIntPtr mipLevel, UIntPtr slice, bool resetCounters, IMTLBuffer countersBuffer, UIntPtr countersBufferOffset);
	public static void ResetTextureAccessCounters (this IMTLBlitCommandEncoder This, IMTLTexture texture, MTLRegion region, UIntPtr mipLevel, UIntPtr slice);
}

New Type: Metal.MTLBuffer_Extensions

public static class MTLBuffer_Extensions {
	// methods
	public static ulong GetGpuAddress (this IMTLBuffer This);
}

New Type: Metal.MTLCommandBuffer_Extensions

public static class MTLCommandBuffer_Extensions {
	// methods
	public static IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (this IMTLCommandBuffer This);
	public static IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (this IMTLCommandBuffer This, MTLAccelerationStructurePassDescriptor descriptor);
	public static IMTLResourceStateCommandEncoder CreateResourceStateCommandEncoder (this IMTLCommandBuffer This, MTLResourceStatePassDescriptor resourceStatePassDescriptor);
	public static IMTLResourceStateCommandEncoder GetResourceStateCommandEncoder (this IMTLCommandBuffer This);
}

New Type: Metal.MTLCompileSymbolVisibility

[Serializable]
public enum MTLCompileSymbolVisibility {
	Default = 0,
	Hidden = 1,
}

New Type: Metal.MTLComputeCommandEncoder_Extensions

public static class MTLComputeCommandEncoder_Extensions {
	// methods
	public static void SetAccelerationStructure (this IMTLComputeCommandEncoder This, IMTLAccelerationStructure accelerationStructure, UIntPtr bufferIndex);
	public static void SetBuffer (this IMTLComputeCommandEncoder This, IMTLBuffer buffer, UIntPtr offset, UIntPtr stride, UIntPtr index);
	public static void SetBufferOffset (this IMTLComputeCommandEncoder This, UIntPtr offset, UIntPtr stride, UIntPtr index);
	public static void SetBuffers (this IMTLComputeCommandEncoder This, IntPtr buffers, IntPtr offsets, IntPtr strides, Foundation.NSRange range);
	public static void SetBytes (this IMTLComputeCommandEncoder This, IntPtr bytes, UIntPtr length, UIntPtr stride, UIntPtr index);
	public static void SetIntersectionFunctionTable (this IMTLComputeCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, UIntPtr bufferIndex);
	public static void SetIntersectionFunctionTables (this IMTLComputeCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTables, Foundation.NSRange range);
	public static void SetVisibleFunctionTable (this IMTLComputeCommandEncoder This, IMTLVisibleFunctionTable visibleFunctionTable, UIntPtr bufferIndex);
	public static void SetVisibleFunctionTables (this IMTLComputeCommandEncoder This, IMTLVisibleFunctionTable[] visibleFunctionTables, Foundation.NSRange range);
}

New Type: Metal.MTLComputePipelineState_Extensions

public static class MTLComputePipelineState_Extensions {
	// methods
	public static IMTLComputePipelineState CreateComputePipelineState (this IMTLComputePipelineState This, IMTLFunction[] functions, out Foundation.NSError error);
	public static IMTLFunctionHandle CreateFunctionHandle (this IMTLComputePipelineState This, IMTLFunction function);
	public static IMTLIntersectionFunctionTable CreateIntersectionFunctionTable (this IMTLComputePipelineState This, MTLIntersectionFunctionTableDescriptor descriptor);
	public static IMTLVisibleFunctionTable CreateVisibleFunctionTable (this IMTLComputePipelineState This, MTLVisibleFunctionTableDescriptor descriptor);
	public static MTLResourceId GetGpuResourceId (this IMTLComputePipelineState This);
}

New Type: Metal.MTLCoordinate2D

public struct MTLCoordinate2D {
	// fields
	public float X;
	public float Y;
}

New Type: Metal.MTLCurveBasis

[Serializable]
public enum MTLCurveBasis {
	BSpline = 0,
	Bezier = 3,
	CatmullRom = 1,
	Linear = 2,
}

New Type: Metal.MTLCurveEndCaps

[Serializable]
public enum MTLCurveEndCaps {
	Disk = 1,
	None = 0,
	Sphere = 2,
}

New Type: Metal.MTLCurveType

[Serializable]
public enum MTLCurveType {
	Flat = 1,
	Round = 0,
}

New Type: Metal.MTLFunction_Extensions

public static class MTLFunction_Extensions {
	// methods
	public static MTLFunctionOptions GetOptions (this IMTLFunction This);
}

New Type: Metal.MTLHeap_Extensions

public static class MTLHeap_Extensions {
	// methods
	public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, MTLAccelerationStructureDescriptor descriptor);
	public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, UIntPtr size);
	public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, MTLAccelerationStructureDescriptor descriptor, UIntPtr offset);
	public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, UIntPtr size, UIntPtr offset);
}

New Type: Metal.MTLIOCommandQueueType

[Serializable]
public enum MTLIOCommandQueueType {
	Concurrent = 0,
	Serial = 1,
}

New Type: Metal.MTLIOCompressionContext

public class MTLIOCompressionContext : ObjCRuntime.DisposableObject {
	// properties
	public static IntPtr DefaultChunkSize { get; }
	// methods
	public void AppendData (Foundation.NSData data);
	public void AppendData (byte[] data);
	public void AppendData (System.ReadOnlySpan<byte> data);
	public static MTLIOCompressionContext Create (string path, MTLIOCompressionMethod type, long chunkSize);
	protected override void Dispose (bool disposing);
	public MTLIOCompressionStatus FlushAndDestroy ();
}

New Type: Metal.MTLIOCompressionMethod

[Serializable]
public enum MTLIOCompressionMethod {
	Lz4 = 2,
	LzBitmap = 4,
	Lzfse = 1,
	Lzma = 3,
	Zlib = 0,
}

New Type: Metal.MTLIOCompressionStatus

[Serializable]
public enum MTLIOCompressionStatus {
	Complete = 0,
	Error = 1,
}

New Type: Metal.MTLIOError

[Serializable]
public enum MTLIOError {
	Internal = 2,
	UrlInvalid = 1,
}

New Type: Metal.MTLIOErrorExtensions

public static class MTLIOErrorExtensions {
	// methods
	public static Foundation.NSString GetDomain (this MTLIOError self);
}

New Type: Metal.MTLIOPriority

[Serializable]
public enum MTLIOPriority {
	High = 0,
	Low = 2,
	Normal = 1,
}

New Type: Metal.MTLIOStatus

[Serializable]
public enum MTLIOStatus {
	Cancelled = 1,
	Complete = 3,
	Error = 2,
	Pending = 0,
}

New Type: Metal.MTLIndirectCommandBuffer_Extensions

public static class MTLIndirectCommandBuffer_Extensions {
	// methods
	public static MTLResourceId GetGpuResourceID (this IMTLIndirectCommandBuffer This);
}

New Type: Metal.MTLIndirectComputeCommand_Extensions

public static class MTLIndirectComputeCommand_Extensions {
	// methods
	public static void SetKernelBuffer (this IMTLIndirectComputeCommand This, IMTLBuffer buffer, UIntPtr offset, UIntPtr stride, UIntPtr index);
}

New Type: Metal.MTLIndirectInstanceAccelerationStructureDescriptor

public class MTLIndirectInstanceAccelerationStructureDescriptor : Metal.MTLAccelerationStructureDescriptor {
	// constructors
	public MTLIndirectInstanceAccelerationStructureDescriptor ();
	protected MTLIndirectInstanceAccelerationStructureDescriptor (Foundation.NSObjectFlag t);
	protected MTLIndirectInstanceAccelerationStructureDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IMTLBuffer InstanceCountBuffer { get; set; }
	public virtual UIntPtr InstanceCountBufferOffset { get; set; }
	public virtual IMTLBuffer InstanceDescriptorBuffer { get; set; }
	public virtual UIntPtr InstanceDescriptorBufferOffset { get; set; }
	public virtual UIntPtr InstanceDescriptorStride { get; set; }
	public virtual MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; }
	public virtual UIntPtr MaxInstanceCount { get; set; }
	public virtual UIntPtr MaxMotionTransformCount { get; set; }
	public virtual IMTLBuffer MotionTransformBuffer { get; set; }
	public virtual UIntPtr MotionTransformBufferOffset { get; set; }
	public virtual IMTLBuffer MotionTransformCountBuffer { get; set; }
	public virtual UIntPtr MotionTransformCountBufferOffset { get; set; }
	// methods
	public static MTLIndirectInstanceAccelerationStructureDescriptor GetDescriptor ();
}

New Type: Metal.MTLIndirectRenderCommand_Extensions

public static class MTLIndirectRenderCommand_Extensions {
	// methods
	public static void SetVertexBuffer (this IMTLIndirectRenderCommand This, IMTLBuffer buffer, UIntPtr offset, UIntPtr stride, UIntPtr index);
}

New Type: Metal.MTLInstanceAccelerationStructureDescriptor

public class MTLInstanceAccelerationStructureDescriptor : Metal.MTLAccelerationStructureDescriptor {
	// constructors
	protected MTLInstanceAccelerationStructureDescriptor (Foundation.NSObjectFlag t);
	protected MTLInstanceAccelerationStructureDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr InstanceCount { get; set; }
	public virtual IMTLBuffer InstanceDescriptorBuffer { get; set; }
	public virtual UIntPtr InstanceDescriptorBufferOffset { get; set; }
	public virtual UIntPtr InstanceDescriptorStride { get; set; }
	public virtual MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; }
	public virtual IMTLAccelerationStructure[] InstancedAccelerationStructures { get; set; }
	public virtual IMTLBuffer MotionTransformBuffer { get; set; }
	public virtual UIntPtr MotionTransformBufferOffset { get; set; }
	public virtual UIntPtr MotionTransformCount { get; set; }
	// methods
	public static MTLInstanceAccelerationStructureDescriptor Create ();
}

New Type: Metal.MTLIntersectionFunctionDescriptor

public class MTLIntersectionFunctionDescriptor : Metal.MTLFunctionDescriptor, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected MTLIntersectionFunctionDescriptor (Foundation.NSObjectFlag t);
	protected MTLIntersectionFunctionDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLIntersectionFunctionSignature

[Serializable]
[Flags]
public enum MTLIntersectionFunctionSignature {
	CurveData = 128,
	ExtendedLimits = 32,
	InstanceMotion = 8,
	Instancing = 1,
	MaxLevels = 64,
	None = 0,
	PrimitiveMotion = 16,
	TriangleData = 2,
	WorldSpaceData = 4,
}

New Type: Metal.MTLIntersectionFunctionTableDescriptor

public class MTLIntersectionFunctionTableDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected MTLIntersectionFunctionTableDescriptor (Foundation.NSObjectFlag t);
	protected MTLIntersectionFunctionTableDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr FunctionCount { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLIntersectionFunctionTableDescriptor Create ();
}

New Type: Metal.MTLIntersectionFunctionTable_Extensions

public static class MTLIntersectionFunctionTable_Extensions {
	// methods
	public static MTLResourceId GetGpuResourceId (this IMTLIntersectionFunctionTable This);
	public static void SetOpaqueCurveIntersectionFunction (this IMTLIntersectionFunctionTable This, MTLIntersectionFunctionSignature signature, Foundation.NSRange range);
	public static void SetOpaqueCurveIntersectionFunction (this IMTLIntersectionFunctionTable This, MTLIntersectionFunctionSignature signature, UIntPtr index);
}

New Type: Metal.MTLLibraryOptimizationLevel

[Serializable]
public enum MTLLibraryOptimizationLevel {
	Default = 0,
	Size = 1,
}

New Type: Metal.MTLMeshRenderPipelineDescriptor

public class MTLMeshRenderPipelineDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLMeshRenderPipelineDescriptor ();
	protected MTLMeshRenderPipelineDescriptor (Foundation.NSObjectFlag t);
	protected MTLMeshRenderPipelineDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual bool AlphaToCoverageEnabled { get; set; }
	public virtual bool AlphaToOneEnabled { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLRenderPipelineColorAttachmentDescriptorArray ColorAttachments { get; }
	public virtual MTLPixelFormat DepthAttachmentPixelFormat { get; set; }
	public virtual MTLPipelineBufferDescriptorArray FragmentBuffers { get; }
	public virtual IMTLFunction FragmentFunction { get; set; }
	public virtual MTLLinkedFunctions FragmentLinkedFunctions { get; set; }
	public virtual string Label { get; set; }
	public virtual UIntPtr MaxTotalThreadgroupsPerMeshGrid { get; set; }
	public virtual UIntPtr MaxTotalThreadsPerMeshThreadgroup { get; set; }
	public virtual UIntPtr MaxTotalThreadsPerObjectThreadgroup { get; set; }
	public virtual UIntPtr MaxVertexAmplificationCount { get; set; }
	public virtual MTLPipelineBufferDescriptorArray MeshBuffers { get; }
	public virtual IMTLFunction MeshFunction { get; set; }
	public virtual MTLLinkedFunctions MeshLinkedFunctions { get; set; }
	public virtual bool MeshThreadgroupSizeIsMultipleOfThreadExecutionWidth { get; set; }
	public virtual MTLPipelineBufferDescriptorArray ObjectBuffers { get; }
	public virtual IMTLFunction ObjectFunction { get; set; }
	public virtual MTLLinkedFunctions ObjectLinkedFunctions { get; set; }
	public virtual bool ObjectThreadgroupSizeIsMultipleOfThreadExecutionWidth { get; set; }
	public virtual UIntPtr PayloadMemoryLength { get; set; }
	public virtual UIntPtr RasterSampleCount { get; set; }
	public virtual bool RasterizationEnabled { get; set; }
	public virtual MTLPixelFormat StencilAttachmentPixelFormat { get; set; }
	public virtual bool SupportIndirectCommandBuffers { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void Reset ();
}

New Type: Metal.MTLMotionBorderMode

[Serializable]
public enum MTLMotionBorderMode {
	Clamp = 0,
	Vanish = 1,
}

New Type: Metal.MTLMotionKeyframeData

public class MTLMotionKeyframeData : Foundation.NSObject {
	// constructors
	public MTLMotionKeyframeData ();
	protected MTLMotionKeyframeData (Foundation.NSObjectFlag t);
	protected MTLMotionKeyframeData (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual IMTLBuffer Buffer { get; set; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr Offset { get; set; }
	// methods
	public static MTLMotionKeyframeData Create ();
}

New Type: Metal.MTLPrimitiveAccelerationStructureDescriptor

public class MTLPrimitiveAccelerationStructureDescriptor : Metal.MTLAccelerationStructureDescriptor {
	// constructors
	protected MTLPrimitiveAccelerationStructureDescriptor (Foundation.NSObjectFlag t);
	protected MTLPrimitiveAccelerationStructureDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLAccelerationStructureGeometryDescriptor[] GeometryDescriptors { get; set; }
	public virtual MTLMotionBorderMode MotionEndBorderMode { get; set; }
	public virtual float MotionEndTime { get; set; }
	public virtual UIntPtr MotionKeyframeCount { get; set; }
	public virtual MTLMotionBorderMode MotionStartBorderMode { get; set; }
	public virtual float MotionStartTime { get; set; }
	// methods
	public static MTLPrimitiveAccelerationStructureDescriptor Create ();
}

New Type: Metal.MTLRasterizationRateLayerArray

public class MTLRasterizationRateLayerArray : Foundation.NSObject {
	// constructors
	public MTLRasterizationRateLayerArray ();
	protected MTLRasterizationRateLayerArray (Foundation.NSObjectFlag t);
	protected MTLRasterizationRateLayerArray (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual MTLRasterizationRateLayerDescriptor GetObject (UIntPtr layerIndex);
	public virtual void SetObject (MTLRasterizationRateLayerDescriptor layer, UIntPtr layerIndex);
}

New Type: Metal.MTLRasterizationRateLayerDescriptor

public class MTLRasterizationRateLayerDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected MTLRasterizationRateLayerDescriptor (Foundation.NSObjectFlag t);
	public MTLRasterizationRateLayerDescriptor (MTLSize sampleCount);
	protected MTLRasterizationRateLayerDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLRasterizationRateSampleArray Horizontal { get; }
	public virtual MTLSize MaxSampleCount { get; }
	public virtual MTLSize SampleCount { get; set; }
	public virtual MTLRasterizationRateSampleArray Vertical { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLRasterizationRateMapDescriptor

public class MTLRasterizationRateMapDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLRasterizationRateMapDescriptor ();
	protected MTLRasterizationRateMapDescriptor (Foundation.NSObjectFlag t);
	protected MTLRasterizationRateMapDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual string Label { get; set; }
	public virtual UIntPtr LayerCount { get; }
	public virtual MTLRasterizationRateLayerArray Layers { get; }
	public virtual MTLSize ScreenSize { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLRasterizationRateMapDescriptor Create (MTLSize screenSize);
	public static MTLRasterizationRateMapDescriptor Create (MTLSize screenSize, MTLRasterizationRateLayerDescriptor layer);
	public static MTLRasterizationRateMapDescriptor Create (MTLSize screenSize, UIntPtr layerCount, out MTLRasterizationRateLayerDescriptor layers);
	public virtual MTLRasterizationRateLayerDescriptor GetLayer (UIntPtr layerIndex);
	public virtual void SetLayer (MTLRasterizationRateLayerDescriptor layer, UIntPtr layerIndex);
}

New Type: Metal.MTLRasterizationRateSampleArray

public class MTLRasterizationRateSampleArray : Foundation.NSObject {
	// constructors
	public MTLRasterizationRateSampleArray ();
	protected MTLRasterizationRateSampleArray (Foundation.NSObjectFlag t);
	protected MTLRasterizationRateSampleArray (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual Foundation.NSNumber GetObject (UIntPtr index);
	public virtual void SetObject (Foundation.NSNumber value, UIntPtr index);
}

New Type: Metal.MTLRenderCommandEncoder_Extensions

public static class MTLRenderCommandEncoder_Extensions {
	// methods
	public static void DrawMeshThreadgroups (this IMTLRenderCommandEncoder This, MTLSize threadgroupsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup);
	public static void DrawMeshThreadgroups (this IMTLRenderCommandEncoder This, IMTLBuffer indirectBuffer, UIntPtr indirectBufferOffset, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup);
	public static void DrawMeshThreads (this IMTLRenderCommandEncoder This, MTLSize threadsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup);
	public static void MemoryBarrier (this IMTLRenderCommandEncoder This, MTLBarrierScope scope, MTLRenderStages after, MTLRenderStages before);
	public static void MemoryBarrier (this IMTLRenderCommandEncoder This, IMTLResource[] resources, UIntPtr count, MTLRenderStages after, MTLRenderStages before);
	public static void SetFragmentAccelerationStructure (this IMTLRenderCommandEncoder This, IMTLAccelerationStructure accelerationStructure, UIntPtr bufferIndex);
	public static void SetFragmentIntersectionFunctionTable (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, UIntPtr bufferIndex);
	public static void SetFragmentIntersectionFunctionTables (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTable, Foundation.NSRange range);
	public static void SetFragmentVisibleFunctionTable (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable functionTable, UIntPtr bufferIndex);
	public static void SetFragmentVisibleFunctionTables (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange range);
	public static void SetMeshBuffer (this IMTLRenderCommandEncoder This, IMTLBuffer buffer, UIntPtr offset, UIntPtr index);
	public static void SetMeshBufferOffset (this IMTLRenderCommandEncoder This, UIntPtr offset, UIntPtr index);
	public static void SetMeshBuffers (this IMTLRenderCommandEncoder This, IntPtr buffers, IntPtr offsets, Foundation.NSRange range);
	public static void SetMeshBytes (this IMTLRenderCommandEncoder This, IntPtr bytes, UIntPtr length, UIntPtr index);
	public static void SetMeshSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, UIntPtr index);
	public static void SetMeshSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, UIntPtr index);
	public static void SetMeshSamplerStates (this IMTLRenderCommandEncoder This, IntPtr samplers, Foundation.NSRange range);
	public static void SetMeshSamplerStates (this IMTLRenderCommandEncoder This, IntPtr samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, Foundation.NSRange range);
	public static void SetMeshTexture (this IMTLRenderCommandEncoder This, IMTLTexture texture, UIntPtr index);
	public static void SetMeshTextures (this IMTLRenderCommandEncoder This, IntPtr textures, Foundation.NSRange range);
	public static void SetObjectBuffer (this IMTLRenderCommandEncoder This, IMTLBuffer buffer, UIntPtr offset, UIntPtr index);
	public static void SetObjectBufferOffset (this IMTLRenderCommandEncoder This, UIntPtr offset, UIntPtr index);
	public static void SetObjectBuffers (this IMTLRenderCommandEncoder This, IntPtr buffers, IntPtr offsets, Foundation.NSRange range);
	public static void SetObjectBytes (this IMTLRenderCommandEncoder This, IntPtr bytes, UIntPtr length, UIntPtr index);
	public static void SetObjectSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, UIntPtr index);
	public static void SetObjectSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, UIntPtr index);
	public static void SetObjectSamplerStates (this IMTLRenderCommandEncoder This, IntPtr samplers, Foundation.NSRange range);
	public static void SetObjectSamplerStates (this IMTLRenderCommandEncoder This, IntPtr samplers, IntPtr lodMinClamps, IntPtr lodMaxClamps, Foundation.NSRange range);
	public static void SetObjectTexture (this IMTLRenderCommandEncoder This, IMTLTexture texture, UIntPtr index);
	public static void SetObjectTextures (this IMTLRenderCommandEncoder This, IntPtr textures, Foundation.NSRange range);
	public static void SetObjectThreadgroupMemoryLength (this IMTLRenderCommandEncoder This, UIntPtr length, UIntPtr index);
	public static void SetTileAccelerationStructure (this IMTLRenderCommandEncoder This, IMTLAccelerationStructure accelerationStructure, UIntPtr bufferIndex);
	public static void SetTileIntersectionFunctionTable (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, UIntPtr bufferIndex);
	public static void SetTileIntersectionFunctionTables (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTable, Foundation.NSRange range);
	public static void SetTileVisibleFunctionTable (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable functionTable, UIntPtr bufferIndex);
	public static void SetTileVisibleFunctionTables (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange range);
	public static void SetVertexAccelerationStructure (this IMTLRenderCommandEncoder This, IMTLAccelerationStructure accelerationStructure, UIntPtr bufferIndex);
	public static void SetVertexAmplificationCount (this IMTLRenderCommandEncoder This, UIntPtr count, MTLVertexAmplificationViewMapping viewMappings);
	public static void SetVertexBuffer (this IMTLRenderCommandEncoder This, IMTLBuffer buffer, UIntPtr offset, UIntPtr stride, UIntPtr index);
	public static void SetVertexBufferOffset (this IMTLRenderCommandEncoder This, UIntPtr offset, UIntPtr stride, UIntPtr index);
	public static void SetVertexBuffers (this IMTLRenderCommandEncoder This, IntPtr buffers, IntPtr offsets, IntPtr strides, Foundation.NSRange range);
	public static void SetVertexBytes (this IMTLRenderCommandEncoder This, IntPtr bytes, UIntPtr length, UIntPtr stride, UIntPtr index);
	public static void SetVertexIntersectionFunctionTable (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, UIntPtr bufferIndex);
	public static void SetVertexIntersectionFunctionTables (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTable, Foundation.NSRange range);
	public static void SetVertexVisibleFunctionTable (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable functionTable, UIntPtr bufferIndex);
	public static void SetVertexVisibleFunctionTables (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange range);
}

New Type: Metal.MTLRenderPipelineFunctionsDescriptor

public class MTLRenderPipelineFunctionsDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLRenderPipelineFunctionsDescriptor ();
	protected MTLRenderPipelineFunctionsDescriptor (Foundation.NSObjectFlag t);
	protected MTLRenderPipelineFunctionsDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual IMTLFunction[] FragmentAdditionalBinaryFunctions { get; set; }
	public virtual IMTLFunction[] TileAdditionalBinaryFunctions { get; set; }
	public virtual IMTLFunction[] VertexAdditionalBinaryFunctions { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLRenderPipelineState_Extensions

public static class MTLRenderPipelineState_Extensions {
	// methods
	public static IMTLFunctionHandle FunctionHandleWithFunction (this IMTLRenderPipelineState This, IMTLFunction function, MTLRenderStages stage);
	public static UIntPtr GetMaxTotalThreadsPerMeshThreadgroup (this IMTLRenderPipelineState This);
	public static UIntPtr GetMaxTotalThreadsPerObjectThreadgroup (this IMTLRenderPipelineState This);
	public static UIntPtr GetObjectThreadExecutionWidth (this IMTLRenderPipelineState This);
	public static IMTLIntersectionFunctionTable NewIntersectionFunctionTableWithDescriptor (this IMTLRenderPipelineState This, MTLIntersectionFunctionTableDescriptor descriptor, MTLRenderStages stage);
	public static IMTLRenderPipelineState NewRenderPipelineStateWithAdditionalBinaryFunctions (this IMTLRenderPipelineState This, MTLRenderPipelineFunctionsDescriptor additionalBinaryFunctions, out Foundation.NSError error);
	public static IMTLVisibleFunctionTable NewVisibleFunctionTableWithDescriptor (this IMTLRenderPipelineState This, MTLVisibleFunctionTableDescriptor descriptor, MTLRenderStages stage);
}

New Type: Metal.MTLResourceId

public struct MTLResourceId {
	// fields
	public ulong Impl;
}

New Type: Metal.MTLResourceStateCommandEncoder_Extensions

public static class MTLResourceStateCommandEncoder_Extensions {
	// methods
	public static void MoveTextureMappings (this IMTLResourceStateCommandEncoder This, IMTLTexture sourceTexture, UIntPtr sourceSlice, UIntPtr sourceLevel, MTLOrigin sourceOrigin, MTLSize sourceSize, IMTLTexture destinationTexture, UIntPtr destinationSlice, UIntPtr destinationLevel, MTLOrigin destinationOrigin);
}

New Type: Metal.MTLResourceStatePassDescriptor

public class MTLResourceStatePassDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected MTLResourceStatePassDescriptor (Foundation.NSObjectFlag t);
	protected MTLResourceStatePassDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual MTLResourceStatePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLResourceStatePassDescriptor Create ();
}

New Type: Metal.MTLResourceStatePassSampleBufferAttachmentDescriptor

public class MTLResourceStatePassSampleBufferAttachmentDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public MTLResourceStatePassSampleBufferAttachmentDescriptor ();
	protected MTLResourceStatePassSampleBufferAttachmentDescriptor (Foundation.NSObjectFlag t);
	protected MTLResourceStatePassSampleBufferAttachmentDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr EndOfEncoderSampleIndex { get; set; }
	public virtual IMTLCounterSampleBuffer SampleBuffer { get; set; }
	public virtual UIntPtr StartOfEncoderSampleIndex { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLResourceStatePassSampleBufferAttachmentDescriptorArray

public class MTLResourceStatePassSampleBufferAttachmentDescriptorArray : Foundation.NSObject {
	// constructors
	public MTLResourceStatePassSampleBufferAttachmentDescriptorArray ();
	protected MTLResourceStatePassSampleBufferAttachmentDescriptorArray (Foundation.NSObjectFlag t);
	protected MTLResourceStatePassSampleBufferAttachmentDescriptorArray (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual MTLResourceStatePassSampleBufferAttachmentDescriptor GetObject (UIntPtr attachmentIndex);
	public virtual void SetObject (MTLResourceStatePassSampleBufferAttachmentDescriptor attachment, UIntPtr attachmentIndex);
}

New Type: Metal.MTLSamplerBorderColor

[Serializable]
public enum MTLSamplerBorderColor {
	OpaqueBlack = 1,
	OpaqueWhite = 2,
	TransparentBlack = 0,
}

New Type: Metal.MTLSamplerState_Extensions

public static class MTLSamplerState_Extensions {
	// methods
	public static MTLResourceId GetGpuResourceId (this IMTLSamplerState This);
}

New Type: Metal.MTLSparsePageSize

[Serializable]
public enum MTLSparsePageSize {
	Size16 = 101,
	Size256 = 103,
	Size64 = 102,
}

New Type: Metal.MTLSparseTextureMappingMode

[Serializable]
[Flags]
public enum MTLSparseTextureMappingMode {
	Map = 0,
	Unmap = 1,
}

New Type: Metal.MTLSparseTextureRegionAlignmentMode

[Serializable]
[Flags]
public enum MTLSparseTextureRegionAlignmentMode {
	Inward = 1,
	Outward = 0,
}

New Type: Metal.MTLTextureCompressionType

[Serializable]
public enum MTLTextureCompressionType {
	Lossless = 0,
	Lossy = 1,
}

New Type: Metal.MTLTexture_Extensions

public static class MTLTexture_Extensions {
	// methods
	public static MTLTextureCompressionType GetCompressionType (this IMTLTexture This);
	public static MTLResourceId GetGpuResourceId (this IMTLTexture This);
	public static bool GetIsSparse (this IMTLTexture This);
	public static UIntPtr GetTailSizeInBytes (this IMTLTexture This);
}

New Type: Metal.MTLVertexAmplificationViewMapping

public struct MTLVertexAmplificationViewMapping {
	// fields
	public uint RenderTargetArrayIndexOffset;
	public uint ViewportArrayIndexOffset;
}

New Type: Metal.MTLVisibleFunctionTableDescriptor

public class MTLVisibleFunctionTableDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	protected MTLVisibleFunctionTableDescriptor (Foundation.NSObjectFlag t);
	protected MTLVisibleFunctionTableDescriptor (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual UIntPtr FunctionCount { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MTLVisibleFunctionTableDescriptor Create ();
}

New Type: Metal.MTLVisibleFunctionTable_Extensions

public static class MTLVisibleFunctionTable_Extensions {
	// methods
	public static MTLResourceId GetGpuResourceId (this IMTLVisibleFunctionTable This);
}

Namespace MetalPerformanceShaders

Type Changed: MetalPerformanceShaders.MPSCommandBuffer

Added property:

public virtual Metal.IMTLResourceStateCommandEncoder ResourceStateCommandEncoder { get; }

Added methods:

public virtual Metal.IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder ();
public virtual Metal.IMTLAccelerationStructureCommandEncoder CreateAccelerationStructureCommandEncoder (Metal.MTLAccelerationStructurePassDescriptor descriptor);
public virtual Metal.IMTLResourceStateCommandEncoder CreateResourceStateCommandEncoder (Metal.MTLResourceStatePassDescriptor resourceStatePassDescriptor);

Namespace ModelIO

Type Changed: ModelIO.MDLMaterial

Added properties:

public MDLMaterialProperty Item { get; }
public MDLMaterialProperty Item { get; }

Namespace Network

Type Changed: Network.NWPrivacyContext

Added methods:

public void AddProxy (NWProxyConfig proxyConfig);
public void ClearProxies ();

New Type: Network.NWProxyConfig

public class NWProxyConfig : CoreFoundation.NativeObject {
	// properties
	public bool FailoverAllowed { get; set; }
	// methods
	public void AddExcludedDomain (string domain);
	public void AddMatchDomain (string domain);
	public void ClearExcludedDomains ();
	public void ClearMatchDomains ();
	public static NWProxyConfig CreateHttpConnect (NWEndpoint proxyEndpoint, NWProtocolTlsOptions options);
	public static NWProxyConfig CreateObliviousHttp (NWRelayHop hop, string relaysResourcePath, byte[] gatewayKeyConfig);
	public static NWProxyConfig CreateRelay (NWRelayHop firstHop, NWRelayHop secondHop);
	public static NWProxyConfig CreateSocksV5 (NWEndpoint endpoint);
	public void EnumerateExcludedDomains (System.Action<string> handler);
	public void EnumerateMatchDomains (System.Action<string> handler);
	public void SetUsernameAndPassword (string username, string password);
}

New Type: Network.NWRelayHop

public class NWRelayHop : CoreFoundation.NativeObject {
	// methods
	public void AddAdditionalHttpHeaderField (string fieldName, string fieldValue);
	public static NWRelayHop Create (NWEndpoint http3RelayEndpoint, NWEndpoint http2RelayEndpoint, NWProtocolOptions relayTlsOptions);
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "17.2.0";
+public const string Version = "17.3.0";

Added field:

public static const string CoreMidiLibrary = "/System/Library/Frameworks/CoreMIDI.framework/CoreMIDI";

Type Changed: ObjCRuntime.DisposableObject

Added method:

protected void ClearHandle ();

Namespace UIKit

New Type: UIKit.NSAttributedStringDocumentReadingOptions

public class NSAttributedStringDocumentReadingOptions : Foundation.DictionaryContainer {
	// constructors
	public NSAttributedStringDocumentReadingOptions ();
	public NSAttributedStringDocumentReadingOptions (Foundation.NSDictionary dictionary);
	// properties
	public Foundation.NSStringEncoding? CharacterEncoding { get; set; }
	public Foundation.NSDictionary DefaultAttributes { get; set; }
	public NSAttributedStringDocumentType? DocumentType { get; set; }
	public NSTextScalingType? SourceTextScaling { get; set; }
	public NSTextScalingType? TargetTextScaling { get; set; }
}

New Type: UIKit.NSAttributedStringDocumentType

[Serializable]
public enum NSAttributedStringDocumentType {
	DocFormat = 5,
	Html = 3,
	MacSimple = 4,
	OfficeOpenXml = 7,
	OpenDocument = 9,
	Plain = 0,
	Rtf = 1,
	Rtfd = 2,
	Unknown = -1,
	WebArchive = 8,
	WordML = 6,
}

New Type: UIKit.NSAttributedStringDocumentTypeExtensions

public static class NSAttributedStringDocumentTypeExtensions {
	// methods
	public static Foundation.NSString GetConstant (this NSAttributedStringDocumentType self);
	public static NSAttributedStringDocumentType GetValue (Foundation.NSString constant);
}

Namespace Vision

Type Changed: Vision.VNBarcodeObservation

Added properties:

public virtual bool IsColorInverted { get; }
public virtual bool IsGS1DataCarrier { get; }
public virtual Foundation.NSData PayloadData { get; }
public virtual VNBarcodeCompositeType SupplementalCompositeType { get; }
public virtual Foundation.NSData SupplementalPayloadData { get; }
public virtual string SupplementalPayloadString { get; }

Type Changed: Vision.VNBarcodeSymbology

Added value:

MsiPlessey = 23,

Type Changed: Vision.VNClassifyImageRequestRevision

Added value:

Two = 2,

Type Changed: Vision.VNDetectBarcodesRequest

Added property:

public virtual bool CoalesceCompositeSymbologies { get; set; }

Type Changed: Vision.VNDetectBarcodesRequestRevision

Added values:

Four = 4,
Three = 3,

Type Changed: Vision.VNDetectFaceCaptureQualityRequestRevision

Added value:

Three = 3,

Type Changed: Vision.VNDetectHumanBodyPoseRequest

Added methods:

public virtual VNHumanBodyPoseObservationJointName[] GetSupportedJointNames (out Foundation.NSError error);
public virtual VNHumanBodyPoseObservationJointsGroupName[] GetSupportedJointsGroupNames (out Foundation.NSError error);

Type Changed: Vision.VNDetectHumanHandPoseRequest

Added methods:

public virtual VNHumanHandPoseObservationJointName[] GetSupportedJointNames (out Foundation.NSError error);
public virtual VNHumanHandPoseObservationJointsGroupName[] GetSupportedJointsGroupNames (out Foundation.NSError error);

Type Changed: Vision.VNErrorCode

Added values:

UnsupportedComputeDevice = 22,
UnsupportedComputeStage = 21,

Type Changed: Vision.VNGenerateAttentionBasedSaliencyImageRequestRevision

Added value:

Two = 2,

Type Changed: Vision.VNGenerateImageFeaturePrintRequestRevision

Added value:

Two = 2,

Type Changed: Vision.VNGenerateObjectnessBasedSaliencyImageRequestRevision

Added value:

Two = 2,

Type Changed: Vision.VNImageRequestHandler

Added constructors:

public VNImageRequestHandler (CoreMedia.CMSampleBuffer sampleBuffer, AVFoundation.AVDepthData depthData, ImageIO.CGImagePropertyOrientation orientation, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options);
public VNImageRequestHandler (CoreVideo.CVPixelBuffer pixelBuffer, AVFoundation.AVDepthData depthData, ImageIO.CGImagePropertyOrientation orientation, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options);

Type Changed: Vision.VNRectangleObservation

Added method:

public static VNRectangleObservation FromRectangleObservation (VNRectangleObservationRequestRevision requestRevision, CoreGraphics.CGPoint topLeft, CoreGraphics.CGPoint topRight, CoreGraphics.CGPoint bottomRight, CoreGraphics.CGPoint bottomLeft);

Type Changed: Vision.VNRequest

Added methods:

public virtual CoreML.IMLComputeDeviceProtocol GetComputeDevice (string computeStage);
public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSArray<CoreML.IMLComputeDeviceProtocol>> GetSupportedComputeDevices (out Foundation.NSError error);
public virtual void SetComputeDevice (CoreML.IMLComputeDeviceProtocol computeDevice, string computeStage);

Type Changed: Vision.VNTrackingRequest

Added method:

public virtual UIntPtr GetSupportedNumberOfTrackers (out Foundation.NSError error);

New Type: Vision.VNAnimalBodyPoseObservation

public class VNAnimalBodyPoseObservation : Vision.VNRecognizedPointsObservation {
	// constructors
	public VNAnimalBodyPoseObservation (Foundation.NSCoder coder);
	protected VNAnimalBodyPoseObservation (Foundation.NSObjectFlag t);
	protected VNAnimalBodyPoseObservation (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual VNAnimalBodyPoseObservationJointsGroupName[] AvailableJointGroupNames { get; }
	public virtual VNAnimalBodyPoseObservationJointName[] AvailableJointNames { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual VNRecognizedPoint GetRecognizedPoint (VNAnimalBodyPoseObservationJointName jointName, out Foundation.NSError error);
	public virtual Foundation.NSDictionary<Foundation.NSString,Vision.VNRecognizedPoint> GetRecognizedPoints (VNAnimalBodyPoseObservationJointsGroupName jointsGroupName, out Foundation.NSError error);
}

New Type: Vision.VNAnimalBodyPoseObservationJointName

[Serializable]
public enum VNAnimalBodyPoseObservationJointName {
	LeftBackElbow = 17,
	LeftBackKnee = 19,
	LeftBackPaw = 21,
	LeftEarBottom = 5,
	LeftEarMiddle = 3,
	LeftEarTop = 1,
	LeftEye = 7,
	LeftFrontElbow = 11,
	LeftFrontKnee = 13,
	LeftFrontPaw = 15,
	Neck = 10,
	None = 0,
	Nose = 9,
	RightBackElbow = 18,
	RightBackKnee = 20,
	RightBackPaw = 22,
	RightEarBottom = 6,
	RightEarMiddle = 4,
	RightEarTop = 2,
	RightEye = 8,
	RightFrontElbow = 12,
	RightFrontKnee = 14,
	RightFrontPaw = 16,
	TailBottom = 25,
	TailMiddle = 24,
	TailTop = 23,
}

New Type: Vision.VNAnimalBodyPoseObservationJointNameExtensions

public static class VNAnimalBodyPoseObservationJointNameExtensions {
	// methods
	public static Foundation.NSString GetConstant (this VNAnimalBodyPoseObservationJointName self);
	public static VNAnimalBodyPoseObservationJointName GetValue (Foundation.NSString constant);
}

New Type: Vision.VNAnimalBodyPoseObservationJointsGroupName

[Serializable]
public enum VNAnimalBodyPoseObservationJointsGroupName {
	All = 6,
	Forelegs = 3,
	Head = 1,
	Hindlegs = 4,
	None = 0,
	Tail = 5,
	Trunk = 2,
}

New Type: Vision.VNAnimalBodyPoseObservationJointsGroupNameExtensions

public static class VNAnimalBodyPoseObservationJointsGroupNameExtensions {
	// methods
	public static Foundation.NSString GetConstant (this VNAnimalBodyPoseObservationJointsGroupName self);
	public static VNAnimalBodyPoseObservationJointsGroupName GetValue (Foundation.NSString constant);
}

New Type: Vision.VNBarcodeCompositeType

[Serializable]
public enum VNBarcodeCompositeType {
	Gs1TypeA = 2,
	Gs1TypeB = 3,
	Gs1TypeC = 4,
	Linked = 1,
	None = 0,
}

New Type: Vision.VNComputeStage

[Serializable]
public enum VNComputeStage {
	Main = 1,
	None = 0,
	PostProcessing = 2,
}

New Type: Vision.VNComputeStageExtensions

public static class VNComputeStageExtensions {
	// methods
	public static Foundation.NSString GetConstant (this VNComputeStage self);
	public static VNComputeStage GetValue (Foundation.NSString constant);
}

New Type: Vision.VNDetectAnimalBodyPoseRequest

public class VNDetectAnimalBodyPoseRequest : Vision.VNImageBasedRequest {
	// constructors
	protected VNDetectAnimalBodyPoseRequest (Foundation.NSObjectFlag t);
	protected VNDetectAnimalBodyPoseRequest (ObjCRuntime.NativeHandle handle);
	public VNDetectAnimalBodyPoseRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual VNAnimalBodyPoseObservation[] Results { get; }
	// methods
	public virtual VNAnimalBodyPoseObservationJointName[] GetSupportedJointNames (out Foundation.NSError error);
	public virtual VNAnimalBodyPoseObservationJointsGroupName[] GetSupportedJointsGroupNames (out Foundation.NSError error);
}

New Type: Vision.VNDetectHumanBodyPose3DRequest

public class VNDetectHumanBodyPose3DRequest : Vision.VNStatefulRequest {
	// constructors
	public VNDetectHumanBodyPose3DRequest ();
	protected VNDetectHumanBodyPose3DRequest (Foundation.NSObjectFlag t);
	protected VNDetectHumanBodyPose3DRequest (ObjCRuntime.NativeHandle handle);
	public VNDetectHumanBodyPose3DRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static VNDetectHumanBodyPose3DRequestRevision CurrentRevision { get; }
	public static VNDetectHumanBodyPose3DRequestRevision DefaultRevision { get; }
	public virtual VNHumanBodyPose3DObservation[] Results { get; }
	public virtual VNDetectHumanBodyPose3DRequestRevision Revision { get; set; }
	public static VNDetectHumanBodyPose3DRequestRevision[] SupportedRevisions { get; }
	public static Foundation.NSIndexSet WeakSupportedRevisions { get; }
	// methods
	public virtual VNHumanBodyPose3DObservationJointName[] GetSupportedJointNames (out Foundation.NSError error);
	public virtual VNHumanBodyPose3DObservationJointsGroupName[] GetSupportedJointsGroupNames (out Foundation.NSError error);
}

New Type: Vision.VNDetectHumanBodyPose3DRequestRevision

[Serializable]
public enum VNDetectHumanBodyPose3DRequestRevision {
	One = 1,
}

New Type: Vision.VNGenerateForegroundInstanceMaskRequest

public class VNGenerateForegroundInstanceMaskRequest : Vision.VNImageBasedRequest {
	// constructors
	protected VNGenerateForegroundInstanceMaskRequest (Foundation.NSObjectFlag t);
	protected VNGenerateForegroundInstanceMaskRequest (ObjCRuntime.NativeHandle handle);
	public VNGenerateForegroundInstanceMaskRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual VNInstanceMaskObservation[] Results { get; }
}

New Type: Vision.VNGeneratePersonInstanceMaskRequest

public class VNGeneratePersonInstanceMaskRequest : Vision.VNImageBasedRequest {
	// constructors
	protected VNGeneratePersonInstanceMaskRequest (Foundation.NSObjectFlag t);
	protected VNGeneratePersonInstanceMaskRequest (ObjCRuntime.NativeHandle handle);
	public VNGeneratePersonInstanceMaskRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual VNInstanceMaskObservation[] Results { get; }
}

New Type: Vision.VNHumanBodyPose3DObservation

public class VNHumanBodyPose3DObservation : Vision.VNRecognizedPoints3DObservation {
	// constructors
	public VNHumanBodyPose3DObservation (Foundation.NSCoder coder);
	protected VNHumanBodyPose3DObservation (Foundation.NSObjectFlag t);
	protected VNHumanBodyPose3DObservation (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual VNHumanBodyPose3DObservationJointName[] AvailableJointNames { get; }
	public virtual VNHumanBodyPose3DObservationJointsGroupName[] AvailableJointsGroupNames { get; }
	public virtual float BodyHeight { get; }
	public virtual CoreGraphics.NMatrix4 CameraOriginMatrix { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual VNHumanBodyPose3DObservationHeightEstimation HeightEstimation { get; }
	// methods
	public virtual bool GetCameraRelativePosition (out CoreGraphics.NMatrix4 modelPositionOut, VNHumanBodyPose3DObservationJointName jointName, out Foundation.NSError error);
	public virtual VNHumanBodyPose3DObservationJointName GetParentJointName (VNHumanBodyPose3DObservationJointName jointName);
	public virtual VNPoint GetPointInImage (VNHumanBodyPose3DObservationJointName jointName, out Foundation.NSError error);
	public virtual VNHumanBodyRecognizedPoint3D GetRecognizedPoint (VNHumanBodyPose3DObservationJointName jointName, out Foundation.NSError error);
	public virtual Foundation.NSDictionary<Foundation.NSString,Vision.VNHumanBodyRecognizedPoint3D> GetRecognizedPoints (VNHumanBodyPose3DObservationJointsGroupName jointName, out Foundation.NSError error);
}

New Type: Vision.VNHumanBodyPose3DObservationHeightEstimation

[Serializable]
public enum VNHumanBodyPose3DObservationHeightEstimation {
	Measured = 1,
	Reference = 0,
}

New Type: Vision.VNHumanBodyPose3DObservationJointName

[Serializable]
public enum VNHumanBodyPose3DObservationJointName {
	CenterHead = 11,
	CenterShoulder = 10,
	LeftAnkle = 8,
	LeftElbow = 14,
	LeftHip = 6,
	LeftKnee = 7,
	LeftShoulder = 13,
	LeftWrist = 15,
	None = 0,
	RightAnkle = 4,
	RightElbow = 16,
	RightHip = 2,
	RightKnee = 3,
	RightShoulder = 5,
	RightWrist = 17,
	Root = 1,
	Spine = 9,
	TopHead = 12,
}

New Type: Vision.VNHumanBodyPose3DObservationJointNameExtensions

public static class VNHumanBodyPose3DObservationJointNameExtensions {
	// methods
	public static Foundation.NSString GetConstant (this VNHumanBodyPose3DObservationJointName self);
	public static VNHumanBodyPose3DObservationJointName GetValue (Foundation.NSString constant);
}

New Type: Vision.VNHumanBodyPose3DObservationJointsGroupName

[Serializable]
public enum VNHumanBodyPose3DObservationJointsGroupName {
	All = 7,
	Head = 1,
	LeftArm = 3,
	LeftLeg = 5,
	None = 0,
	RightArm = 4,
	RightLeg = 6,
	Torso = 2,
}

New Type: Vision.VNHumanBodyPose3DObservationJointsGroupNameExtensions

public static class VNHumanBodyPose3DObservationJointsGroupNameExtensions {
	// methods
	public static Foundation.NSString GetConstant (this VNHumanBodyPose3DObservationJointsGroupName self);
	public static VNHumanBodyPose3DObservationJointsGroupName GetValue (Foundation.NSString constant);
}

New Type: Vision.VNHumanBodyRecognizedPoint3D

public class VNHumanBodyRecognizedPoint3D : Vision.VNRecognizedPoint3D {
	// constructors
	public VNHumanBodyRecognizedPoint3D (CoreGraphics.NMatrix4 position);
	public VNHumanBodyRecognizedPoint3D (Foundation.NSCoder coder);
	protected VNHumanBodyRecognizedPoint3D (Foundation.NSObjectFlag t);
	protected VNHumanBodyRecognizedPoint3D (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual CoreGraphics.NMatrix4 LocalPosition { get; }
	public virtual VNHumanBodyPose3DObservationJointName ParentJoint { get; }
}

New Type: Vision.VNInstanceMaskObservation

public class VNInstanceMaskObservation : Vision.VNObservation {
	// constructors
	public VNInstanceMaskObservation (Foundation.NSCoder coder);
	protected VNInstanceMaskObservation (Foundation.NSObjectFlag t);
	protected VNInstanceMaskObservation (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual Foundation.NSIndexSet AllInstances { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual CoreVideo.CVPixelBuffer InstanceMask { get; }
	// methods
	public virtual CoreVideo.CVPixelBuffer GenerateMask (Foundation.NSIndexSet instances, out Foundation.NSError error);
	public virtual CoreVideo.CVPixelBuffer GenerateMaskedImage (Foundation.NSIndexSet instances, VNImageRequestHandler requestHandler, bool cropResult, out Foundation.NSError error);
	public virtual CoreVideo.CVPixelBuffer GenerateScaledMask (Foundation.NSIndexSet instances, VNImageRequestHandler requestHandler, out Foundation.NSError error);
}

New Type: Vision.VNPoint3D

public class VNPoint3D : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public VNPoint3D (CoreGraphics.NMatrix4 position);
	public VNPoint3D (Foundation.NSCoder coder);
	protected VNPoint3D (Foundation.NSObjectFlag t);
	protected VNPoint3D (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual CoreGraphics.NMatrix4 Position { get; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public virtual void EncodeTo (Foundation.NSCoder encoder);
}

New Type: Vision.VNRecognizedPoint3D

public class VNRecognizedPoint3D : Vision.VNPoint3D {
	// constructors
	public VNRecognizedPoint3D (CoreGraphics.NMatrix4 position);
	public VNRecognizedPoint3D (Foundation.NSCoder coder);
	protected VNRecognizedPoint3D (Foundation.NSObjectFlag t);
	protected VNRecognizedPoint3D (ObjCRuntime.NativeHandle handle);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static Foundation.NSString GroupKeyAll { get; }
	public virtual string Identifier { get; }
}

New Type: Vision.VNRecognizedPoints3DObservation

public class VNRecognizedPoints3DObservation : Vision.VNObservation {
	// constructors
	public VNRecognizedPoints3DObservation (Foundation.NSCoder coder);
	protected VNRecognizedPoints3DObservation (Foundation.NSObjectFlag t);
	protected VNRecognizedPoints3DObservation (ObjCRuntime.NativeHandle handle);
	// properties
	public virtual Foundation.NSString[] AvailableGroupKeys { get; }
	public virtual Foundation.NSString[] AvailableKeys { get; }
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	// methods
	public virtual VNRecognizedPoint3D GetRecognizedPoint (Foundation.NSString pointKey, out Foundation.NSError error);
	public virtual Foundation.NSDictionary<Foundation.NSString,Vision.VNRecognizedPoint3D> GetRecognizedPoints (Foundation.NSString groupKey, out Foundation.NSError error);
}

New Type: Vision.VNTrackHomographicImageRegistrationRequest

public class VNTrackHomographicImageRegistrationRequest : Vision.VNStatefulRequest {
	// constructors
	public VNTrackHomographicImageRegistrationRequest ();
	protected VNTrackHomographicImageRegistrationRequest (Foundation.NSObjectFlag t);
	protected VNTrackHomographicImageRegistrationRequest (ObjCRuntime.NativeHandle handle);
	public VNTrackHomographicImageRegistrationRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static VNTrackHomographicImageRegistrationRequestRevision CurrentRevision { get; }
	public static VNTrackHomographicImageRegistrationRequestRevision DefaultRevision { get; }
	public virtual VNImageHomographicAlignmentObservation[] Results { get; }
	public virtual VNTrackHomographicImageRegistrationRequestRevision Revision { get; set; }
	public static VNTrackHomographicImageRegistrationRequestRevision[] SupportedRevisions { get; }
	public static Foundation.NSIndexSet WeakSupportedRevisions { get; }
}

New Type: Vision.VNTrackHomographicImageRegistrationRequestRevision

[Serializable]
public enum VNTrackHomographicImageRegistrationRequestRevision {
	One = 1,
}

New Type: Vision.VNTrackOpticalFlowRequest

public class VNTrackOpticalFlowRequest : Vision.VNStatefulRequest {
	// constructors
	public VNTrackOpticalFlowRequest ();
	protected VNTrackOpticalFlowRequest (Foundation.NSObjectFlag t);
	protected VNTrackOpticalFlowRequest (ObjCRuntime.NativeHandle handle);
	public VNTrackOpticalFlowRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public virtual VNTrackOpticalFlowRequestComputationAccuracy ComputationAccuracy { get; set; }
	public virtual bool KeepNetworkOutput { get; set; }
	public virtual uint OutputPixelFormat { get; set; }
	public virtual VNPixelBufferObservation[] Results { get; }
}

New Type: Vision.VNTrackOpticalFlowRequestComputationAccuracy

[Serializable]
public enum VNTrackOpticalFlowRequestComputationAccuracy {
	High = 2,
	Low = 0,
	Medium = 1,
	VeryHigh = 3,
}

New Type: Vision.VNTrackOpticalFlowRequestRevision

[Serializable]
public enum VNTrackOpticalFlowRequestRevision {
	One = 1,
}

New Type: Vision.VNTrackTranslationalImageRegistrationRequest

public class VNTrackTranslationalImageRegistrationRequest : Vision.VNStatefulRequest {
	// constructors
	public VNTrackTranslationalImageRegistrationRequest ();
	protected VNTrackTranslationalImageRegistrationRequest (Foundation.NSObjectFlag t);
	protected VNTrackTranslationalImageRegistrationRequest (ObjCRuntime.NativeHandle handle);
	public VNTrackTranslationalImageRegistrationRequest (VNRequestCompletionHandler completionHandler);
	// properties
	public override ObjCRuntime.NativeHandle ClassHandle { get; }
	public static VNTrackTranslationalImageRegistrationRequestRevision CurrentRevision { get; }
	public static VNTrackTranslationalImageRegistrationRequestRevision DefaultRevision { get; }
	public virtual VNImageTranslationAlignmentObservation[] Results { get; }
	public virtual VNTrackTranslationalImageRegistrationRequestRevision Revision { get; set; }
	public static VNTrackTranslationalImageRegistrationRequestRevision[] SupportedRevisions { get; }
	public static Foundation.NSIndexSet WeakSupportedRevisions { get; }
}

New Type: Vision.VNTrackTranslationalImageRegistrationRequestRevision

[Serializable]
public enum VNTrackTranslationalImageRegistrationRequestRevision {
	One = 1,
}

New Namespace CoreMidi

New Type: CoreMidi.MidiCVStatus

[Serializable]
public enum MidiCVStatus {
	AssignableControl = 3,
	AssignablePnc = 1,
	ChannelPressure = 13,
	ControlChange = 11,
	NoteOff = 8,
	NoteOn = 9,
	PerNoteMgmt = 15,
	PerNotePitchBend = 6,
	PitchBend = 14,
	PolyPressure = 10,
	ProgramChange = 12,
	RegisteredControl = 2,
	RegisteredPnc = 0,
	RelAssignableControl = 5,
	RelRegisteredControl = 4,
}

New Type: CoreMidi.MidiMessageType

[Serializable]
public enum MidiMessageType {
	ChannelVoice1 = 2,
	ChannelVoice2 = 4,
	Data128 = 5,
	SysEx = 3,
	System = 1,
	UnknownF = 15,
	Utility = 0,
}

New Type: CoreMidi.MidiNetworkConnectionPolicy

[Serializable]
public enum MidiNetworkConnectionPolicy {
	Anyone = 2,
	HostsInContactsList = 1,
	NoOne = 0,
}

New Type: CoreMidi.MidiNoteAttribute

[Serializable]
public enum MidiNoteAttribute {
	ManufacturerSpecific = 1,
	None = 0,
	Pitch = 3,
	ProfileSpecific = 2,
}

New Type: CoreMidi.MidiPerNoteManagementOptions

[Serializable]
[Flags]
public enum MidiPerNoteManagementOptions {
	Detach = 2,
	Reset = 1,
}

New Type: CoreMidi.MidiProgramChangeOptions

[Serializable]
[Flags]
public enum MidiProgramChangeOptions {
	BankValid = 1,
}

New Type: CoreMidi.MidiProtocolId

[Serializable]
public enum MidiProtocolId {
	Protocol_1_0 = 1,
	Protocol_2_0 = 2,
}

New Type: CoreMidi.MidiSysExStatus

[Serializable]
public enum MidiSysExStatus {
	Complete = 0,
	Continue = 2,
	End = 3,
	MixedDataSetHeader = 8,
	MixedDataSetPayload = 9,
	Start = 1,
}

New Type: CoreMidi.MidiSystemStatus

[Serializable]
public enum MidiSystemStatus {
	ActiveSending = 254,
	Continue = 251,
	EndOfExclusive = 247,
	Mtc = 241,
	SongPosPointer = 242,
	SongSelect = 243,
	Start = 250,
	StartOfExclusive = 240,
	Stop = 252,
	SystemReset = 255,
	TimingClock = 248,
	TuneRequest = 246,
}

New Type: CoreMidi.MidiUtilityStatus

[Serializable]
public enum MidiUtilityStatus {
	JitterReductionClock = 1,
	JitterReductionTimestamp = 2,
	Noop = 0,
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment