--- title: "Xamarin.TVOS SDK API diff: 16.4.0 vs 17.3.0" description: List of API changes between Xamarin.TVOS versions 16.4.0 and 17.3.0. author: spouliot ms.author: sepoulio ms.date: 4/16/2024 ms.topic: article ms.assetid: 08b482ee-ce6b-b0fc-b7cc-250d9fd02fbb ms.prod: xamarin --- # Xamarin.TVOS SDK API diff: 16.4.0 vs 17.3.0 <a name="Xamarin.TVOS.dll" /> ## Xamarin.TVOS.dll ### Namespace AVFoundation #### Type Changed: AVFoundation.AVAssetImageGenerator Added method: ```csharp public virtual void GenerateCGImageAsynchronously (CoreMedia.CMTime requestedTime, AVAssetImageGenerateAsynchronouslyForTimeCompletionHandler handler); ``` #### Type Changed: AVFoundation.AVAudioSession Obsoleted properties: ```diff [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryAmbient { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryMultiRoute { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryPlayAndRecord { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryPlayback { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategoryRecord { get; } [Obsolete ("Use 'AVAudioSessionCategory' enum values instead.")] public static Foundation.NSString CategorySoloAmbient { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeDefault { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeGameChat { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeMeasurement { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeMoviePlayback { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeSpokenAudio { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeVideoChat { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeVideoRecording { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString ModeVoiceChat { get; } [Obsolete ("Use 'AVAudioSessionMode' enum values instead.")] public static Foundation.NSString VoicePrompt { get; } ``` Added properties: ```csharp public static Foundation.NSString RenderingCapabilitiesChangeNotification { get; } public virtual AVAudioSessionRenderingMode RenderingMode { get; } public static Foundation.NSString RenderingModeChangeNotification { get; } public virtual AVAudioChannelLayout[] SupportedOutputChannelLayouts { get; } ``` Added methods: ```csharp public Foundation.NSError SetActive (bool active, AVAudioSessionSetActiveOptions options); public bool SetCategory (AVAudioSessionCategory category, AVAudioSessionCategoryOptions options, out Foundation.NSError outError); public Foundation.NSError SetCategory (AVAudioSessionCategory category, AVAudioSessionMode mode, AVAudioSessionCategoryOptions options); public Foundation.NSError SetCategory (AVAudioSessionCategory category, string mode, AVAudioSessionCategoryOptions options); public bool SetCategory (AVAudioSessionCategory category, AVAudioSessionMode mode, AVAudioSessionCategoryOptions options, out Foundation.NSError outError); public bool SetCategory (AVAudioSessionCategory category, string mode, AVAudioSessionCategoryOptions options, out Foundation.NSError outError); public bool SetCategory (AVAudioSessionCategory category, AVAudioSessionMode mode, AVAudioSessionRouteSharingPolicy policy, AVAudioSessionCategoryOptions options, out Foundation.NSError outError); public bool SetCategory (AVAudioSessionCategory category, string mode, AVAudioSessionRouteSharingPolicy policy, AVAudioSessionCategoryOptions options, out Foundation.NSError outError); public bool SetMode (AVAudioSessionMode mode, out Foundation.NSError error); ``` #### Type Changed: AVFoundation.AVAudioSession.Notifications Added methods: ```csharp public static Foundation.NSObject ObserveRenderingCapabilitiesChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler); public static Foundation.NSObject ObserveRenderingCapabilitiesChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler); public static Foundation.NSObject ObserveRenderingModeChange (System.EventHandler<RenderingModeChangeNotificationEventArgs> handler); public static Foundation.NSObject ObserveRenderingModeChange (Foundation.NSObject objectToObserve, System.EventHandler<RenderingModeChangeNotificationEventArgs> handler); ``` #### Type Changed: AVFoundation.AVAudioSinkNode Obsoleted constructors: ```diff [Obsolete ("Use the overload that takes a delegate that does not take a 'ref AudioBuffers' instead. Assigning a value to the 'inputData' parameter in the callback has no effect.")] public AVAudioSinkNode (AVAudioSinkNodeReceiverHandler receiverHandler); ``` Added constructors: ```csharp public AVAudioSinkNode (AVAudioSinkNodeReceiverHandler2 receiverHandler); public AVAudioSinkNode (AVAudioSinkNodeReceiverHandlerRaw receiverHandler); ``` #### Type Changed: AVFoundation.AVAudioSourceNode Obsoleted constructors: ```diff [Obsolete ("Use the overload that takes a delegate that does not take a 'ref AudioBuffers' instead. Assigning a value to the 'inputData' parameter in the callback has no effect.")] public AVAudioSourceNode (AVAudioSourceNodeRenderHandler2 renderHandler); [Obsolete ("Use the overload that takes a delegate that does not take a 'ref AudioBuffers' instead. Assigning a value to the 'inputData' parameter in the callback has no effect.")] public AVAudioSourceNode (AVAudioFormat format, AVAudioSourceNodeRenderHandler2 renderHandler); ``` Added constructors: ```csharp public AVAudioSourceNode (AVAudioSourceNodeRenderHandler3 renderHandler); public AVAudioSourceNode (AVAudioSourceNodeRenderHandlerRaw renderHandler); public AVAudioSourceNode (AVAudioFormat format, AVAudioSourceNodeRenderHandler3 renderHandler); public AVAudioSourceNode (AVAudioFormat format, AVAudioSourceNodeRenderHandlerRaw renderHandler); ``` #### Type Changed: AVFoundation.AVMetadataObjectTypeExtensions Added methods: ```csharp public static Foundation.NSString[] ToArray (this AVMetadataObjectType value); public static AVMetadataObjectType ToFlags (System.Collections.Generic.IEnumerable<Foundation.NSString> constants); ``` #### Type Changed: AVFoundation.AVMutableComposition Added method: ```csharp public virtual Cinematic.CNCompositionInfo AddTracks (Cinematic.CNAssetInfo assetInfo, int preferredStartingTrackID); ``` #### Type Changed: AVFoundation.AVSpeechSynthesizer Obsoleted methods: ```diff [Obsolete ("Do not use this API, it doesn't work correctly. Use the non-Async version (WriteUtterance) instead.")] public virtual System.Threading.Tasks.Task<AVAudioBuffer> WriteUtteranceAsync (AVSpeechUtterance utterance); ``` #### New Type: AVFoundation.AVAssetImageGenerateAsynchronouslyForTimeCompletionHandler ```csharp public sealed delegate AVAssetImageGenerateAsynchronouslyForTimeCompletionHandler : System.MulticastDelegate { // constructors public AVAssetImageGenerateAsynchronouslyForTimeCompletionHandler (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (CoreGraphics.CGImage imageRef, CoreMedia.CMTime actualTime, Foundation.NSError error, System.AsyncCallback callback, object object); public virtual void EndInvoke (System.IAsyncResult result); public virtual void Invoke (CoreGraphics.CGImage imageRef, CoreMedia.CMTime actualTime, Foundation.NSError error); } ``` #### New Type: AVFoundation.AVAudioSessionCategoryExtensions ```csharp public static class AVAudioSessionCategoryExtensions { // methods public static Foundation.NSString GetConstant (this AVAudioSessionCategory self); public static AVAudioSessionCategory GetValue (Foundation.NSString constant); } ``` #### New Type: AVFoundation.AVAudioSessionMode ```csharp [Serializable] public enum AVAudioSessionMode { Default = 0, GameChat = 4, Measurement = 3, MoviePlayback = 5, SpokenAudio = 7, VideoChat = 6, VideoRecording = 2, VoiceChat = 1, VoicePrompt = 8, } ``` #### New Type: AVFoundation.AVAudioSessionModeExtensions ```csharp public static class AVAudioSessionModeExtensions { // methods public static Foundation.NSString GetConstant (this AVAudioSessionMode self); public static AVAudioSessionMode GetValue (Foundation.NSString constant); } ``` #### New Type: AVFoundation.AVAudioSessionRenderingMode ```csharp [Serializable] public enum AVAudioSessionRenderingMode { DolbyAtmos = 5, DolbyAudio = 4, MonoStereo = 1, NotApplicable = 0, SpatialAudio = 3, Surround = 2, } ``` #### New Type: AVFoundation.AVAudioSinkNodeReceiverHandler2 ```csharp public sealed delegate AVAudioSinkNodeReceiverHandler2 : System.MulticastDelegate { // constructors public AVAudioSinkNodeReceiverHandler2 (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers inputData, System.AsyncCallback callback, object object); public virtual int EndInvoke (System.IAsyncResult result); public virtual int Invoke (AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers inputData); } ``` #### New Type: AVFoundation.AVAudioSinkNodeReceiverHandlerRaw ```csharp public sealed delegate AVAudioSinkNodeReceiverHandlerRaw : System.MulticastDelegate { // constructors public AVAudioSinkNodeReceiverHandlerRaw (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (IntPtr timestamp, uint frameCount, IntPtr inputData, System.AsyncCallback callback, object object); public virtual int EndInvoke (System.IAsyncResult result); public virtual int Invoke (IntPtr timestamp, uint frameCount, IntPtr inputData); } ``` #### New Type: AVFoundation.AVAudioSourceNodeRenderHandler3 ```csharp public sealed delegate AVAudioSourceNodeRenderHandler3 : System.MulticastDelegate { // constructors public AVAudioSourceNodeRenderHandler3 (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (ref bool isSilence, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers outputData, System.AsyncCallback callback, object object); public virtual int EndInvoke (ref bool isSilence, ref AudioToolbox.AudioTimeStamp timestamp, System.IAsyncResult result); public virtual int Invoke (ref bool isSilence, ref AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers outputData); } ``` #### New Type: AVFoundation.AVAudioSourceNodeRenderHandlerRaw ```csharp public sealed delegate AVAudioSourceNodeRenderHandlerRaw : System.MulticastDelegate { // constructors public AVAudioSourceNodeRenderHandlerRaw (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (IntPtr isSilence, IntPtr timestamp, uint frameCount, IntPtr outputData, System.AsyncCallback callback, object object); public virtual int EndInvoke (System.IAsyncResult result); public virtual int Invoke (IntPtr isSilence, IntPtr timestamp, uint frameCount, IntPtr outputData); } ``` #### New Type: AVFoundation.RenderingModeChangeNotificationEventArgs ```csharp public class RenderingModeChangeNotificationEventArgs : Foundation.NSNotificationEventArgs { // constructors public RenderingModeChangeNotificationEventArgs (Foundation.NSNotification notification); // properties public AVAudioSessionRenderingMode NewRenderingMode { get; } } ``` ### Namespace Accessibility #### New Type: Accessibility.AXAnimatedImagesUtilities ```csharp public static class AXAnimatedImagesUtilities { // properties public static Foundation.NSString AnimatedImagesEnabledDidChangeNotification { get; } public static bool Enabled { get; } // inner types public static class Notifications { // methods public static Foundation.NSObject ObserveAnimatedImagesEnabledDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler); public static Foundation.NSObject ObserveAnimatedImagesEnabledDidChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler); } } ``` #### New Type: Accessibility.AXCustomContentProvider_Extensions ```csharp public static class AXCustomContentProvider_Extensions { // methods public static System.Func<AXCustomContent[]> GetAccessibilityCustomContentHandler (this IAXCustomContentProvider This); public static void SetAccessibilityCustomContentHandler (this IAXCustomContentProvider This, System.Func<AXCustomContent[]> value); } ``` #### New Type: Accessibility.AXPrefers ```csharp public static class AXPrefers { // properties public static Foundation.NSString HorizontalTextLayoutDidChangeNotification { get; } // methods public static bool HorizontalTextEnabled (); // inner types public static class Notifications { // methods public static Foundation.NSObject ObserveHorizontalTextLayoutDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler); public static Foundation.NSObject ObserveHorizontalTextLayoutDidChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler); } } ``` ### Namespace AudioToolbox #### Type Changed: AudioToolbox.AudioChannelLayoutTag Added values: ```csharp Ogg_3_0 = 9830403, Ogg_4_0 = 12124164, Ogg_5_0 = 13893637, Ogg_5_1 = 13959174, Ogg_6_1 = 14024711, Ogg_7_1 = 14090248, ``` #### Type Changed: AudioToolbox.MusicPlayer Modified methods: ```diff -protected virtual void Dispose (bool disposing) +protected override void Dispose (bool disposing) ``` Added methods: ```csharp public MusicPlayerStatus GetTime (out double time); public MusicPlayerStatus SetTime (double time); ``` ### Namespace AuthenticationServices #### New Type: AuthenticationServices.ASAuthorizationPublicKeyCredentialAttachment ```csharp [Serializable] public enum ASAuthorizationPublicKeyCredentialAttachment { CrossPlatform = 1, Platform = 0, } ``` #### New Type: AuthenticationServices.ASAuthorizationWebBrowserPublicKeyCredentialManagerAuthorizationState ```csharp [Serializable] public enum ASAuthorizationWebBrowserPublicKeyCredentialManagerAuthorizationState { Authorized = 0, Denied = 1, NotDetermined = 2, } ``` #### New Type: AuthenticationServices.ASPublicKeyCredentialClientDataCrossOriginValue ```csharp [Serializable] public enum ASPublicKeyCredentialClientDataCrossOriginValue { CrossOrigin = 1, NotSet = 0, SameOriginWithAncestors = 2, } ``` ### Namespace BackgroundTasks #### New Type: BackgroundTasks.BGHealthResearchTask ```csharp public class BGHealthResearchTask : BackgroundTasks.BGProcessingTask { // constructors public BGHealthResearchTask (); protected BGHealthResearchTask (Foundation.NSObjectFlag t); protected BGHealthResearchTask (IntPtr handle); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: BackgroundTasks.BGHealthResearchTaskRequest ```csharp public class BGHealthResearchTaskRequest : BackgroundTasks.BGProcessingTaskRequest { // constructors public BGHealthResearchTaskRequest (); protected BGHealthResearchTaskRequest (Foundation.NSObjectFlag t); protected BGHealthResearchTaskRequest (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string ProtectionTypeOfRequiredData { get; set; } } ``` ### Namespace CloudKit #### Type Changed: CloudKit.CKQueryOperation Added property: ```csharp public static nint MaximumResults { get; } ``` #### Type Changed: CloudKit.CKRecord Added properties: ```csharp public static Foundation.NSString CreationDateKey { get; } public static Foundation.NSString CreatorUserRecordIdKey { get; } public static Foundation.NSString LastModifiedUserRecordIdKey { get; } public static Foundation.NSString ModificationDateKey { get; } public static Foundation.NSString RecordIdKey { get; } ``` #### Type Changed: CloudKit.CKShareMetadata Obsoleted constructors: ```diff [Obsolete ("Get them from 'CKFetchShareMetadataOperation' or platform-specific scene / app delegate callbacks.")] public CKShareMetadata (); ``` #### New Type: CloudKit.CKSyncEngine ```csharp public class CKSyncEngine : Foundation.NSObject { // constructors public CKSyncEngine (CKSyncEngineConfiguration configuration); protected CKSyncEngine (Foundation.NSObjectFlag t); protected CKSyncEngine (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKDatabase Database { get; } public virtual CKSyncEngineState State { get; } // methods public virtual void CancelOperations (System.Action completionHandler); public virtual System.Threading.Tasks.Task CancelOperationsAsync (); public virtual void FetchChanges (System.Action<Foundation.NSError> completionHandler); public virtual void FetchChanges (CKSyncEngineFetchChangesOptions options, System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task FetchChangesAsync (); public virtual System.Threading.Tasks.Task FetchChangesAsync (CKSyncEngineFetchChangesOptions options); public virtual void SendChanges (System.Action<Foundation.NSError> completionHandler); public virtual void SendChanges (CKSyncEngineSendChangesOptions options, System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task SendChangesAsync (); public virtual System.Threading.Tasks.Task SendChangesAsync (CKSyncEngineSendChangesOptions options); } ``` #### New Type: CloudKit.CKSyncEngineAccountChangeEvent ```csharp public class CKSyncEngineAccountChangeEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineAccountChangeEvent (); protected CKSyncEngineAccountChangeEvent (Foundation.NSObjectFlag t); protected CKSyncEngineAccountChangeEvent (IntPtr handle); // properties public virtual CKSyncEngineAccountChangeType ChangeType { get; } public override IntPtr ClassHandle { get; } public virtual CKRecordID CurrentUser { get; } public virtual CKRecordID PreviousUser { get; } } ``` #### New Type: CloudKit.CKSyncEngineAccountChangeType ```csharp [Serializable] public enum CKSyncEngineAccountChangeType { SignIn = 0, SignOut = 1, SwitchAccounts = 2, } ``` #### New Type: CloudKit.CKSyncEngineConfiguration ```csharp public class CKSyncEngineConfiguration : Foundation.NSObject { // constructors protected CKSyncEngineConfiguration (Foundation.NSObjectFlag t); protected CKSyncEngineConfiguration (IntPtr handle); public CKSyncEngineConfiguration (CKDatabase database, CKSyncEngineStateSerialization stateSerialization, ICKSyncEngineDelegate delegate); // properties public virtual bool AutomaticallySync { get; set; } public override IntPtr ClassHandle { get; } public virtual CKDatabase Database { get; set; } public ICKSyncEngineDelegate Delegate { get; set; } public virtual CKSyncEngineStateSerialization StateSerialization { get; set; } public virtual string SubscriptionId { get; set; } public virtual Foundation.NSObject WeakDelegate { get; set; } // methods protected override void Dispose (bool disposing); } ``` #### New Type: CloudKit.CKSyncEngineDelegate ```csharp public abstract class CKSyncEngineDelegate : Foundation.NSObject, ICKSyncEngineDelegate, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected CKSyncEngineDelegate (); protected CKSyncEngineDelegate (Foundation.NSObjectFlag t); protected CKSyncEngineDelegate (IntPtr handle); // methods public abstract void SyncEngine (CKSyncEngine syncEngine, CKSyncEngineEvent event); public virtual CKSyncEngineFetchChangesOptions SyncEngine (CKSyncEngine syncEngine, CKSyncEngineFetchChangesContext context); public abstract CKSyncEngineRecordZoneChangeBatch SyncEngine (CKSyncEngine syncEngine, CKSyncEngineSendChangesContext context); } ``` #### New Type: CloudKit.CKSyncEngineDelegate_Extensions ```csharp public static class CKSyncEngineDelegate_Extensions { // methods public static CKSyncEngineFetchChangesOptions SyncEngine (this ICKSyncEngineDelegate This, CKSyncEngine syncEngine, CKSyncEngineFetchChangesContext context); } ``` #### New Type: CloudKit.CKSyncEngineDidFetchChangesEvent ```csharp public class CKSyncEngineDidFetchChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineDidFetchChangesEvent (); protected CKSyncEngineDidFetchChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineDidFetchChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineFetchChangesContext Context { get; } } ``` #### New Type: CloudKit.CKSyncEngineDidFetchRecordZoneChangesEvent ```csharp public class CKSyncEngineDidFetchRecordZoneChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineDidFetchRecordZoneChangesEvent (); protected CKSyncEngineDidFetchRecordZoneChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineDidFetchRecordZoneChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSError Error { get; } public virtual CKRecordZoneID ZoneId { get; } } ``` #### New Type: CloudKit.CKSyncEngineDidSendChangesEvent ```csharp public class CKSyncEngineDidSendChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineDidSendChangesEvent (); protected CKSyncEngineDidSendChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineDidSendChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineSendChangesContext Context { get; } } ``` #### New Type: CloudKit.CKSyncEngineEvent ```csharp public class CKSyncEngineEvent : Foundation.NSObject { // constructors protected CKSyncEngineEvent (Foundation.NSObjectFlag t); protected CKSyncEngineEvent (IntPtr handle); // properties public virtual CKSyncEngineAccountChangeEvent AccountChangeEvent { get; } public override IntPtr ClassHandle { get; } public virtual CKSyncEngineDidFetchChangesEvent DidFetchChangesEvent { get; } public virtual CKSyncEngineDidFetchRecordZoneChangesEvent DidFetchRecordZoneChangesEvent { get; } public virtual CKSyncEngineDidSendChangesEvent DidSendChangesEvent { get; } public virtual CKSyncEngineFetchedDatabaseChangesEvent FetchedDatabaseChangesEvent { get; } public virtual CKSyncEngineFetchedRecordZoneChangesEvent FetchedRecordZoneChangesEvent { get; } public virtual CKSyncEngineSentDatabaseChangesEvent SentDatabaseChangesEvent { get; } public virtual CKSyncEngineSentRecordZoneChangesEvent SentRecordZoneChangesEvent { get; } public virtual CKSyncEngineStateUpdateEvent StateUpdateEvent { get; } public virtual CKSyncEngineEventType Type { get; } public virtual CKSyncEngineWillFetchChangesEvent WillFetchChangesEvent { get; } public virtual CKSyncEngineWillFetchRecordZoneChangesEvent WillFetchRecordZoneChangesEvent { get; } public virtual CKSyncEngineWillSendChangesEvent WillSendChangesEvent { get; } } ``` #### New Type: CloudKit.CKSyncEngineEventType ```csharp [Serializable] public enum CKSyncEngineEventType { AccountChange = 1, DidFetchChanges = 9, DidFetchRecordZoneChanges = 8, DidSendChanges = 11, FetchedDatabaseChanges = 2, FetchedRecordZoneChanges = 3, SentDatabaseChanges = 4, SentRecordZoneChanges = 5, StateUpdate = 0, WillFetchChanges = 6, WillFetchRecordZoneChanges = 7, WillSendChanges = 10, } ``` #### New Type: CloudKit.CKSyncEngineFailedRecordSave ```csharp public class CKSyncEngineFailedRecordSave : Foundation.NSObject { // constructors protected CKSyncEngineFailedRecordSave (Foundation.NSObjectFlag t); protected CKSyncEngineFailedRecordSave (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSError Error { get; } public virtual CKRecord Record { get; } } ``` #### New Type: CloudKit.CKSyncEngineFailedZoneSave ```csharp public class CKSyncEngineFailedZoneSave : Foundation.NSObject { // constructors protected CKSyncEngineFailedZoneSave (Foundation.NSObjectFlag t); protected CKSyncEngineFailedZoneSave (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSError Error { get; } public virtual CKRecordZone RecordZone { get; } } ``` #### New Type: CloudKit.CKSyncEngineFetchChangesContext ```csharp public class CKSyncEngineFetchChangesContext : Foundation.NSObject { // constructors protected CKSyncEngineFetchChangesContext (Foundation.NSObjectFlag t); protected CKSyncEngineFetchChangesContext (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineFetchChangesOptions Options { get; } public virtual CKSyncEngineSyncReason Reason { get; } } ``` #### New Type: CloudKit.CKSyncEngineFetchChangesOptions ```csharp public class CKSyncEngineFetchChangesOptions : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CKSyncEngineFetchChangesOptions (); public CKSyncEngineFetchChangesOptions (CKSyncEngineFetchChangesScope scope); protected CKSyncEngineFetchChangesOptions (Foundation.NSObjectFlag t); protected CKSyncEngineFetchChangesOptions (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKOperationGroup OperationGroup { get; set; } public virtual CKRecordZoneID[] PrioritizedZoneIds { get; set; } public virtual CKSyncEngineFetchChangesScope Scope { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: CloudKit.CKSyncEngineFetchChangesScope ```csharp public class CKSyncEngineFetchChangesScope : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CKSyncEngineFetchChangesScope (); protected CKSyncEngineFetchChangesScope (Foundation.NSObjectFlag t); protected CKSyncEngineFetchChangesScope (IntPtr handle); public CKSyncEngineFetchChangesScope (Foundation.NSSet<CKRecordZoneID> zoneIds, bool excluded); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSSet<CKRecordZoneID> ExcludedZoneIds { get; } public virtual Foundation.NSSet<CKRecordZoneID> ZoneIds { get; } // methods public virtual bool Contains (CKRecordZoneID zoneId); public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: CloudKit.CKSyncEngineFetchedDatabaseChangesEvent ```csharp public class CKSyncEngineFetchedDatabaseChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineFetchedDatabaseChangesEvent (); protected CKSyncEngineFetchedDatabaseChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineFetchedDatabaseChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineFetchedZoneDeletion[] Deletions { get; } public virtual CKRecordZone[] Modifications { get; } } ``` #### New Type: CloudKit.CKSyncEngineFetchedRecordDeletion ```csharp public class CKSyncEngineFetchedRecordDeletion : Foundation.NSObject { // constructors protected CKSyncEngineFetchedRecordDeletion (Foundation.NSObjectFlag t); protected CKSyncEngineFetchedRecordDeletion (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordID RecordId { get; } public virtual string RecordType { get; } } ``` #### New Type: CloudKit.CKSyncEngineFetchedRecordZoneChangesEvent ```csharp public class CKSyncEngineFetchedRecordZoneChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineFetchedRecordZoneChangesEvent (); protected CKSyncEngineFetchedRecordZoneChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineFetchedRecordZoneChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineFetchedRecordDeletion[] Deletions { get; } public virtual CKRecord[] Modifications { get; } } ``` #### New Type: CloudKit.CKSyncEngineFetchedZoneDeletion ```csharp public class CKSyncEngineFetchedZoneDeletion : Foundation.NSObject { // constructors protected CKSyncEngineFetchedZoneDeletion (Foundation.NSObjectFlag t); protected CKSyncEngineFetchedZoneDeletion (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineZoneDeletionReason Reason { get; } public virtual CKRecordZoneID ZoneId { get; } } ``` #### New Type: CloudKit.CKSyncEnginePendingDatabaseChange ```csharp public class CKSyncEnginePendingDatabaseChange : Foundation.NSObject { // constructors protected CKSyncEnginePendingDatabaseChange (Foundation.NSObjectFlag t); protected CKSyncEnginePendingDatabaseChange (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEnginePendingDatabaseChangeType Type { get; } public virtual CKRecordZoneID ZoneId { get; } } ``` #### New Type: CloudKit.CKSyncEnginePendingDatabaseChangeType ```csharp [Serializable] public enum CKSyncEnginePendingDatabaseChangeType { DeleteZone = 1, SaveZone = 0, } ``` #### New Type: CloudKit.CKSyncEnginePendingRecordZoneChange ```csharp public class CKSyncEnginePendingRecordZoneChange : Foundation.NSObject { // constructors protected CKSyncEnginePendingRecordZoneChange (Foundation.NSObjectFlag t); protected CKSyncEnginePendingRecordZoneChange (IntPtr handle); public CKSyncEnginePendingRecordZoneChange (CKRecordID recordId, CKSyncEnginePendingRecordZoneChangeType type); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordID RecordId { get; } public virtual CKSyncEnginePendingRecordZoneChangeType Type { get; } } ``` #### New Type: CloudKit.CKSyncEnginePendingRecordZoneChangeType ```csharp [Serializable] public enum CKSyncEnginePendingRecordZoneChangeType { DeleteRecord = 1, SaveRecord = 0, } ``` #### New Type: CloudKit.CKSyncEnginePendingZoneDelete ```csharp public class CKSyncEnginePendingZoneDelete : CloudKit.CKSyncEnginePendingDatabaseChange { // constructors public CKSyncEnginePendingZoneDelete (); public CKSyncEnginePendingZoneDelete (CKRecordZoneID zoneId); protected CKSyncEnginePendingZoneDelete (Foundation.NSObjectFlag t); protected CKSyncEnginePendingZoneDelete (IntPtr handle); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: CloudKit.CKSyncEnginePendingZoneSave ```csharp public class CKSyncEnginePendingZoneSave : CloudKit.CKSyncEnginePendingDatabaseChange { // constructors public CKSyncEnginePendingZoneSave (); public CKSyncEnginePendingZoneSave (CKRecordZone zone); protected CKSyncEnginePendingZoneSave (Foundation.NSObjectFlag t); protected CKSyncEnginePendingZoneSave (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordZone Zone { get; } } ``` #### New Type: CloudKit.CKSyncEngineRecordZoneChangeBatch ```csharp public class CKSyncEngineRecordZoneChangeBatch : Foundation.NSObject { // constructors protected CKSyncEngineRecordZoneChangeBatch (Foundation.NSObjectFlag t); protected CKSyncEngineRecordZoneChangeBatch (IntPtr handle); public CKSyncEngineRecordZoneChangeBatch (CKSyncEnginePendingRecordZoneChange[] pendingChanges, System.Func<CKRecordID,CloudKit.CKRecord> recordProvider); public CKSyncEngineRecordZoneChangeBatch (CKRecord[] recordsToSave, CKRecordID[] recordIdsToDelete, bool atomicByZone); // properties public virtual bool AtomicByZone { get; set; } public override IntPtr ClassHandle { get; } public virtual CKRecordID[] RecordIdsToDelete { get; } public virtual CKRecord[] RecordsToSave { get; } } ``` #### New Type: CloudKit.CKSyncEngineSendChangesContext ```csharp public class CKSyncEngineSendChangesContext : Foundation.NSObject { // constructors protected CKSyncEngineSendChangesContext (Foundation.NSObjectFlag t); protected CKSyncEngineSendChangesContext (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineSendChangesOptions Options { get; } public virtual CKSyncEngineSyncReason Reason { get; } } ``` #### New Type: CloudKit.CKSyncEngineSendChangesOptions ```csharp public class CKSyncEngineSendChangesOptions : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CKSyncEngineSendChangesOptions (); public CKSyncEngineSendChangesOptions (CKSyncEngineSendChangesScope scope); protected CKSyncEngineSendChangesOptions (Foundation.NSObjectFlag t); protected CKSyncEngineSendChangesOptions (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKOperationGroup OperationGroup { get; set; } public virtual CKSyncEngineSendChangesScope Scope { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: CloudKit.CKSyncEngineSendChangesScope ```csharp public class CKSyncEngineSendChangesScope : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CKSyncEngineSendChangesScope (); protected CKSyncEngineSendChangesScope (Foundation.NSObjectFlag t); public CKSyncEngineSendChangesScope (Foundation.NSSet<CKRecordID> recordIds); protected CKSyncEngineSendChangesScope (IntPtr handle); public CKSyncEngineSendChangesScope (Foundation.NSSet<CKRecordZoneID> zoneIds, bool excluded); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSSet<CKRecordZoneID> ExcludedZoneIds { get; } public virtual Foundation.NSSet<CKRecordID> RecordIds { get; } public virtual Foundation.NSSet<CKRecordZoneID> ZoneIds { get; } // methods public virtual bool ContainsPendingRecordZoneChange (CKSyncEnginePendingRecordZoneChange pendingRecordZoneChange); public virtual bool ContainsRecordId (CKRecordID recordId); public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: CloudKit.CKSyncEngineSentDatabaseChangesEvent ```csharp public class CKSyncEngineSentDatabaseChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineSentDatabaseChangesEvent (); protected CKSyncEngineSentDatabaseChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineSentDatabaseChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordZoneID[] DeletedZoneIds { get; } public virtual Foundation.NSDictionary<CKRecordZoneID,Foundation.NSError> FailedZoneDeletes { get; } public virtual CKSyncEngineFailedZoneSave[] FailedZoneSaves { get; } public virtual CKRecordZone[] SavedZones { get; } } ``` #### New Type: CloudKit.CKSyncEngineSentRecordZoneChangesEvent ```csharp public class CKSyncEngineSentRecordZoneChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineSentRecordZoneChangesEvent (); protected CKSyncEngineSentRecordZoneChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineSentRecordZoneChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordID[] DeletedRecordIds { get; } public virtual Foundation.NSDictionary<CKRecordID,Foundation.NSError> FailedRecordDeletes { get; } public virtual CKSyncEngineFailedRecordSave[] FailedRecordSaves { get; } public virtual CKRecord[] SavedRecords { get; } } ``` #### New Type: CloudKit.CKSyncEngineState ```csharp public class CKSyncEngineState : Foundation.NSObject { // constructors protected CKSyncEngineState (Foundation.NSObjectFlag t); protected CKSyncEngineState (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual bool HasPendingUntrackedChanges { get; set; } public virtual CKSyncEnginePendingDatabaseChange[] PendingDatabaseChanges { get; } public virtual CKSyncEnginePendingRecordZoneChange[] PendingRecordZoneChanges { get; } public virtual CKRecordZoneID[] ZoneIdsWithUnfetchedServerChanges { get; } // methods public virtual void AddPendingDatabaseChanges (CKSyncEnginePendingDatabaseChange[] changes); public virtual void AddPendingRecordZoneChanges (CKSyncEnginePendingRecordZoneChange[] changes); public virtual void RemovePendingDatabaseChanges (CKSyncEnginePendingDatabaseChange[] changes); public virtual void RemovePendingRecordZoneChanges (CKSyncEnginePendingRecordZoneChange[] changes); } ``` #### New Type: CloudKit.CKSyncEngineStateSerialization ```csharp public class CKSyncEngineStateSerialization : Foundation.NSObject, Foundation.INSCoding, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CKSyncEngineStateSerialization (Foundation.NSCoder coder); protected CKSyncEngineStateSerialization (Foundation.NSObjectFlag t); protected CKSyncEngineStateSerialization (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: CloudKit.CKSyncEngineStateUpdateEvent ```csharp public class CKSyncEngineStateUpdateEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineStateUpdateEvent (); protected CKSyncEngineStateUpdateEvent (Foundation.NSObjectFlag t); protected CKSyncEngineStateUpdateEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineStateSerialization StateSerialization { get; } } ``` #### New Type: CloudKit.CKSyncEngineSyncReason ```csharp [Serializable] public enum CKSyncEngineSyncReason { Manual = 1, Scheduled = 0, } ``` #### New Type: CloudKit.CKSyncEngineWillFetchChangesEvent ```csharp public class CKSyncEngineWillFetchChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineWillFetchChangesEvent (); protected CKSyncEngineWillFetchChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineWillFetchChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineFetchChangesContext Context { get; } } ``` #### New Type: CloudKit.CKSyncEngineWillFetchRecordZoneChangesEvent ```csharp public class CKSyncEngineWillFetchRecordZoneChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineWillFetchRecordZoneChangesEvent (); protected CKSyncEngineWillFetchRecordZoneChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineWillFetchRecordZoneChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKRecordZoneID ZoneId { get; } } ``` #### New Type: CloudKit.CKSyncEngineWillSendChangesEvent ```csharp public class CKSyncEngineWillSendChangesEvent : CloudKit.CKSyncEngineEvent { // constructors public CKSyncEngineWillSendChangesEvent (); protected CKSyncEngineWillSendChangesEvent (Foundation.NSObjectFlag t); protected CKSyncEngineWillSendChangesEvent (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CKSyncEngineSendChangesContext Context { get; } } ``` #### New Type: CloudKit.CKSyncEngineZoneDeletionReason ```csharp [Serializable] public enum CKSyncEngineZoneDeletionReason { Deleted = 0, EncryptedDataReset = 2, Purged = 1, } ``` #### New Type: CloudKit.ICKSyncEngineDelegate ```csharp public interface ICKSyncEngineDelegate : ObjCRuntime.INativeObject, System.IDisposable { // methods public abstract void SyncEngine (CKSyncEngine syncEngine, CKSyncEngineEvent event); public abstract CKSyncEngineRecordZoneChangeBatch SyncEngine (CKSyncEngine syncEngine, CKSyncEngineSendChangesContext context); } ``` ### Namespace Compression #### Type Changed: Compression.CompressionAlgorithm Added values: ```csharp Brotli = 2818, LZBitmap = 1794, ``` ### Namespace CoreBluetooth #### Type Changed: CoreBluetooth.CBCentralManager Added event: ```csharp public event System.EventHandler<CBPeripheralDiconnectionEventEventArgs> DidDisconnectPeripheral; ``` #### Type Changed: CoreBluetooth.CBCentralManagerDelegate Added method: ```csharp public virtual void DidDisconnectPeripheral (CBCentralManager central, CBPeripheral peripheral, double timestamp, bool isReconnecting, Foundation.NSError error); ``` #### Type Changed: CoreBluetooth.CBCentralManagerDelegate_Extensions Added method: ```csharp public static void DidDisconnectPeripheral (this ICBCentralManagerDelegate This, CBCentralManager central, CBPeripheral peripheral, double timestamp, bool isReconnecting, Foundation.NSError error); ``` #### Type Changed: CoreBluetooth.CBConnectPeripheralOptions Added property: ```csharp public bool? EnableAutoReconnect { get; } ``` #### New Type: CoreBluetooth.CBPeripheralDiconnectionEventEventArgs ```csharp public class CBPeripheralDiconnectionEventEventArgs : System.EventArgs { // constructors public CBPeripheralDiconnectionEventEventArgs (CBPeripheral peripheral, double timestamp, bool isReconnecting, Foundation.NSError error); // properties public Foundation.NSError Error { get; set; } public bool IsReconnecting { get; set; } public CBPeripheral Peripheral { get; set; } public double Timestamp { get; set; } } ``` ### Namespace CoreData #### Type Changed: CoreData.NSAttributeType Added value: ```csharp CompositeAttributeType = 2100, ``` #### Type Changed: CoreData.NSManagedObjectModel Added property: ```csharp public virtual string VersionChecksum { get; } ``` Added method: ```csharp public static Foundation.NSDictionary<Foundation.NSString,Foundation.NSString> ChecksumsForVersionedModel (Foundation.NSUrl modelUrl, out Foundation.NSError error); ``` #### Type Changed: CoreData.NSPersistentStoreCoordinator Added methods: ```csharp public virtual bool FinishDeferredLightweightMigration (out Foundation.NSError error); public virtual bool FinishDeferredLightweightMigrationTask (out Foundation.NSError error); ``` #### Type Changed: CoreData.UserInfoKeys Added properties: ```csharp public static Foundation.NSString DeferredLightweightMigrationOptionKey { get; } public static Foundation.NSString StagedMigrationManagerOptionKey { get; } ``` #### New Type: CoreData.NSCompositeAttributeDescription ```csharp public class NSCompositeAttributeDescription : CoreData.NSAttributeDescription { // constructors public NSCompositeAttributeDescription (); public NSCompositeAttributeDescription (Foundation.NSCoder coder); protected NSCompositeAttributeDescription (Foundation.NSObjectFlag t); protected NSCompositeAttributeDescription (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NSAttributeDescription[] Elements { get; set; } } ``` #### New Type: CoreData.NSCustomMigrationStage ```csharp public class NSCustomMigrationStage : CoreData.NSMigrationStage { // constructors protected NSCustomMigrationStage (Foundation.NSObjectFlag t); protected NSCustomMigrationStage (IntPtr handle); public NSCustomMigrationStage (NSManagedObjectModelReference currentModel, NSManagedObjectModelReference nextModel); // properties public override IntPtr ClassHandle { get; } public virtual NSManagedObjectModelReference CurrentModel { get; } public virtual System.Func<NSStagedMigrationManager,CoreData.NSCustomMigrationStage,Foundation.NSError,System.Boolean> DidMigrateHandler { get; set; } public virtual NSManagedObjectModelReference NextModel { get; } public virtual System.Func<NSStagedMigrationManager,CoreData.NSCustomMigrationStage,Foundation.NSError,System.Boolean> WillMigrateHandler { get; set; } } ``` #### New Type: CoreData.NSLightweightMigrationStage ```csharp public class NSLightweightMigrationStage : CoreData.NSMigrationStage { // constructors protected NSLightweightMigrationStage (Foundation.NSObjectFlag t); protected NSLightweightMigrationStage (IntPtr handle); public NSLightweightMigrationStage (string[] versionChecksums); // properties public override IntPtr ClassHandle { get; } public virtual string[] VersionChecksums { get; } } ``` #### New Type: CoreData.NSManagedObjectModelReference ```csharp public class NSManagedObjectModelReference : Foundation.NSObject { // constructors protected NSManagedObjectModelReference (Foundation.NSObjectFlag t); protected NSManagedObjectModelReference (IntPtr handle); public NSManagedObjectModelReference (NSManagedObjectModel model, string versionChecksum); public NSManagedObjectModelReference (Foundation.NSUrl fileUrl, string versionChecksum); public NSManagedObjectModelReference (Foundation.NSDictionary versionHash, Foundation.NSBundle bundle, string versionChecksum); public NSManagedObjectModelReference (string modelName, Foundation.NSBundle bundle, string versionChecksum); // properties public override IntPtr ClassHandle { get; } public virtual NSManagedObjectModel ResolvedModel { get; } public virtual string VersionChecksum { get; } } ``` #### New Type: CoreData.NSMigrationStage ```csharp public class NSMigrationStage : Foundation.NSObject { // constructors public NSMigrationStage (); protected NSMigrationStage (Foundation.NSObjectFlag t); protected NSMigrationStage (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Label { get; set; } } ``` #### New Type: CoreData.NSStagedMigrationManager ```csharp public class NSStagedMigrationManager : Foundation.NSObject { // constructors public NSStagedMigrationManager (NSMigrationStage[] stages); protected NSStagedMigrationManager (Foundation.NSObjectFlag t); protected NSStagedMigrationManager (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NSPersistentContainer Container { get; } public virtual NSMigrationStage[] Stages { get; } } ``` ### Namespace CoreFoundation #### Type Changed: CoreFoundation.CFRunLoop Added properties: ```csharp public string[] AllModes { get; } public string CurrentMode { get; } ``` Added method: ```csharp public CFRunLoopExitReason RunInMode (string mode, double seconds, bool returnAfterSourceHandled); ``` ### Namespace CoreGraphics #### Type Changed: CoreGraphics.CGContext Added method: ```csharp public void DrawConicGradient (CGGradient gradient, CGPoint point, nfloat angle); ``` ### Namespace CoreImage #### Type Changed: CoreImage.CIContext Added property: ```csharp public static Foundation.NSString MemoryLimit { get; } ``` Added methods: ```csharp public virtual Foundation.NSData GetOpenEXRRepresentation (CIImage image, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options, out Foundation.NSError errorPtr); public virtual bool WriteOpenExrRepresentation (CIImage image, Foundation.NSUrl url, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options, out Foundation.NSError errorPtr); ``` #### Type Changed: CoreImage.CIFilter Added properties: ```csharp public static CIBlurredRectangleGenerator BlurredRectangleGeneratorFilter { get; } public static CICannyEdgeDetector CannyEdgeDetectorFilter { get; } public static CIRoundedRectangleStrokeGenerator RoundedRectangleStrokeGeneratorFilter { get; } public static CISobelGradients SobelGradientsFilter { get; } ``` #### Type Changed: CoreImage.CIImage Added properties: ```csharp public static int FormatRgb10 { get; } public static int FormatRgbX16 { get; } public static int FormatRgbXf { get; } public static int FormatRgbXh { get; } ``` #### Type Changed: CoreImage.CIImageProcessorInput_Extensions Added methods: ```csharp public static nuint GetRoiTileCount (this ICIImageProcessorInput This); public static nuint GetRoiTileIndex (this ICIImageProcessorInput This); ``` #### Type Changed: CoreImage.CIImageProcessorKernel Added method: ```csharp public static CIVector[] GetRoiTileArray (int input, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> arguments, CoreGraphics.CGRect outputRect); ``` #### Type Changed: CoreImage.CIPhotoEffect Added property: ```csharp public bool Extrapolate { get; set; } ``` #### Type Changed: CoreImage.CIRenderInfo Added property: ```csharp public virtual double KernelCompileTime { get; } ``` #### New Type: CoreImage.CIBlurredRectangleGenerator ```csharp public class CIBlurredRectangleGenerator : CoreImage.CIFilter, ICIBlurredRectangleGeneratorProtocol, ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CIBlurredRectangleGenerator (); public CIBlurredRectangleGenerator (Foundation.NSCoder coder); protected CIBlurredRectangleGenerator (Foundation.NSObjectFlag t); protected CIBlurredRectangleGenerator (IntPtr handle); // properties public virtual CIColor Color { get; set; } public virtual CoreGraphics.CGRect InputExtent { get; set; } public virtual CIImage OutputImage { get; } public virtual float Sigma { get; set; } } ``` #### New Type: CoreImage.CICannyEdgeDetector ```csharp public class CICannyEdgeDetector : CoreImage.CIFilter, ICICannyEdgeDetectorProtocol, ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CICannyEdgeDetector (); public CICannyEdgeDetector (Foundation.NSCoder coder); protected CICannyEdgeDetector (Foundation.NSObjectFlag t); protected CICannyEdgeDetector (IntPtr handle); // properties public virtual float GaussianSigma { get; set; } public virtual nint HysteresisPasses { get; set; } public virtual CIImage InputImage { get; set; } public virtual CIImage OutputImage { get; } public virtual bool Perceptual { get; set; } public virtual float ThresholdHigh { get; set; } public virtual float ThresholdLow { get; set; } } ``` #### New Type: CoreImage.CIPhotoEffectProtocol_Extensions ```csharp public static class CIPhotoEffectProtocol_Extensions { // methods public static bool GetExtrapolate (this ICIPhotoEffectProtocol This); public static void SetExtrapolate (this ICIPhotoEffectProtocol This, bool value); } ``` #### New Type: CoreImage.CIRoundedRectangleStrokeGenerator ```csharp public class CIRoundedRectangleStrokeGenerator : CoreImage.CIFilter, ICIFilterProtocol, ICIRoundedRectangleStrokeGeneratorProtocol, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CIRoundedRectangleStrokeGenerator (); public CIRoundedRectangleStrokeGenerator (Foundation.NSCoder coder); protected CIRoundedRectangleStrokeGenerator (Foundation.NSObjectFlag t); protected CIRoundedRectangleStrokeGenerator (IntPtr handle); // properties public virtual CIColor Color { get; set; } public virtual CoreGraphics.CGRect InputExtent { get; set; } public virtual CIImage OutputImage { get; } public virtual float Radius { get; set; } public virtual float Width { get; set; } } ``` #### New Type: CoreImage.CISobelGradients ```csharp public class CISobelGradients : CoreImage.CIFilter, ICIFilterProtocol, ICISobelGradientsProtocol, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CISobelGradients (); public CISobelGradients (Foundation.NSCoder coder); protected CISobelGradients (Foundation.NSObjectFlag t); protected CISobelGradients (IntPtr handle); // properties public virtual CIImage InputImage { get; set; } public virtual CIImage OutputImage { get; } } ``` #### New Type: CoreImage.ICIBlurredRectangleGeneratorProtocol ```csharp public interface ICIBlurredRectangleGeneratorProtocol : ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual CIColor Color { get; set; } public virtual CoreGraphics.CGRect InputExtent { get; set; } public virtual float Sigma { get; set; } } ``` #### New Type: CoreImage.ICICannyEdgeDetectorProtocol ```csharp public interface ICICannyEdgeDetectorProtocol : ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual float GaussianSigma { get; set; } public virtual nint HysteresisPasses { get; set; } public virtual CIImage InputImage { get; set; } public virtual bool Perceptual { get; set; } public virtual float ThresholdHigh { get; set; } public virtual float ThresholdLow { get; set; } } ``` #### New Type: CoreImage.ICIRoundedRectangleStrokeGeneratorProtocol ```csharp public interface ICIRoundedRectangleStrokeGeneratorProtocol : ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual CIColor Color { get; set; } public virtual CoreGraphics.CGRect InputExtent { get; set; } public virtual float Radius { get; set; } public virtual float Width { get; set; } } ``` #### New Type: CoreImage.ICISobelGradientsProtocol ```csharp public interface ICISobelGradientsProtocol : ICIFilterProtocol, ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual CIImage InputImage { get; set; } } ``` ### Namespace CoreLocation #### New Type: CoreLocation.CLLiveUpdateConfiguration ```csharp [Serializable] public enum CLLiveUpdateConfiguration { Airborne = 4, AutomotiveNavigation = 1, Default = 0, Fitness = 3, OtherNavigation = 2, } ``` #### New Type: CoreLocation.CLLocationUpdater ```csharp public class CLLocationUpdater : Foundation.NSObject { // constructors protected CLLocationUpdater (Foundation.NSObjectFlag t); protected CLLocationUpdater (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public static CLLocationUpdater CreateLiveUpdates (CoreFoundation.DispatchQueue queue, System.Action<CLUpdate> handler); public static CLLocationUpdater CreateLiveUpdates (CLLiveUpdateConfiguration configuration, CoreFoundation.DispatchQueue queue, System.Action<CLUpdate> handler); public virtual void Invalidate (); public virtual void Pause (); public virtual void Resume (); } ``` #### New Type: CoreLocation.CLMonitoringState ```csharp [Serializable] public enum CLMonitoringState { Satisfied = 1, Unknown = 0, Unmonitored = 3, Unsatisfied = 2, } ``` #### New Type: CoreLocation.CLUpdate ```csharp public class CLUpdate : Foundation.NSObject { // constructors public CLUpdate (); protected CLUpdate (Foundation.NSObjectFlag t); protected CLUpdate (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual bool IsStationary { get; } public virtual CLLocation Location { get; } } ``` ### Namespace CoreML #### Type Changed: CoreML.MLModel Added properties: ```csharp public static IMLComputeDeviceProtocol[] AllComputeDevices { get; } public static IMLComputeDeviceProtocol[] AvailableComputeDevices { get; } ``` Added methods: ```csharp public virtual void GetPrediction (IMLFeatureProvider input, System.Action<IMLFeatureProvider,Foundation.NSError> completionHandler); public virtual void GetPrediction (IMLFeatureProvider input, MLPredictionOptions options, System.Action<IMLFeatureProvider,Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task<IMLFeatureProvider> GetPredictionAsync (IMLFeatureProvider input); public virtual System.Threading.Tasks.Task<IMLFeatureProvider> GetPredictionAsync (IMLFeatureProvider input, MLPredictionOptions options); ``` #### Type Changed: CoreML.MLModelError Added value: ```csharp PredictionCancelled = 11, ``` #### New Type: CoreML.IMLComputeDeviceProtocol ```csharp public interface IMLComputeDeviceProtocol : ObjCRuntime.INativeObject, System.IDisposable { } ``` #### New Type: CoreML.MLCpuComputeDevice ```csharp public class MLCpuComputeDevice : Foundation.NSObject, IMLComputeDeviceProtocol, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MLCpuComputeDevice (Foundation.NSObjectFlag t); protected MLCpuComputeDevice (IntPtr handle); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: CoreML.MLGpuComputeDevice ```csharp public class MLGpuComputeDevice : Foundation.NSObject, IMLComputeDeviceProtocol, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MLGpuComputeDevice (Foundation.NSObjectFlag t); protected MLGpuComputeDevice (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Metal.IMTLDevice MetalDevice { get; } } ``` #### New Type: CoreML.MLNeuralEngineComputeDevice ```csharp public class MLNeuralEngineComputeDevice : Foundation.NSObject, IMLComputeDeviceProtocol, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MLNeuralEngineComputeDevice (Foundation.NSObjectFlag t); protected MLNeuralEngineComputeDevice (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nint TotalCoreCount { get; } } ``` ### Namespace CoreText #### Type Changed: CoreText.CTFontDescriptor Obsoleted methods: ```diff [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: ```csharp public static bool MatchFontDescriptors (CTFontDescriptor[] descriptors, Foundation.NSSet mandatoryAttributes, CTFontDescriptor.CTFontDescriptorProgressHandler progressHandler); ``` #### Type Changed: CoreText.CTFontDescriptorAttributes Added property: ```csharp public bool? WeakEnabled { get; set; } ``` #### New Type: CoreText.CTFontDescriptorMatchingProgress ```csharp 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 CoreVideo #### Type Changed: CoreVideo.CVImageBuffer Added properties: ```csharp public static Foundation.NSString LogTransferFunctionAppleLogKey { get; } public static Foundation.NSString LogTransferFunctionKey { get; } ``` ### Namespace Foundation #### Type Changed: Foundation.DictionaryContainer Added methods: ```csharp protected T GetStrongDictionary<T> (NSString key, System.Func<NSDictionary,T> createStrongDictionary); protected UIKit.UIEdgeInsets? GetUIEdgeInsets (NSString key); protected void SetUIEdgeInsets (NSString key, UIKit.UIEdgeInsets? value); ``` #### Type Changed: Foundation.NSAttributedStringDocumentAttributes Obsoleted properties: ```diff [Obsolete ("Use 'CharacterEncoding' instead.")] public NSStringEncoding? StringEncoding { get; set; } ``` Added properties: ```csharp public NSStringEncoding? CharacterEncoding { get; set; } public float? CocoaVersion { get; set; } public NSAttributedStringDocumentAttributes DefaultAttributes { get; set; } public UIKit.NSTextScalingType? SourceTextScaling { get; set; } public UIKit.NSTextScalingType? TextScaling { get; set; } ``` #### Type Changed: Foundation.NSAttributedStringNameKey Added values: ```csharp InflectionAgreementArgument = 10, InflectionAgreementConcept = 11, InflectionReferentConcept = 12, ``` #### Type Changed: Foundation.NSBundle Added property: ```csharp public static NSString BundleDidLoadNotification { get; } ``` #### Type Changed: Foundation.NSDataWritingOptions Added value: ```csharp FileProtectionCompleteWhenUserInactive = 1342177280, ``` #### Type Changed: Foundation.NSDate Added property: ```csharp public static NSString SystemClockDidChangeNotification { get; } ``` #### Type Changed: Foundation.NSError Added property: ```csharp public static NSString NSNetServicesErrorCode { get; } ``` #### Type Changed: Foundation.NSFileManager Obsoleted properties: ```diff [Obsolete ("Use the 'NSFileProtectionType' instead.")] public static NSString FileProtectionComplete { get; } [Obsolete ("Use the 'NSFileProtectionType' instead.")] public static NSString FileProtectionCompleteUnlessOpen { get; } [Obsolete ("Use the 'NSFileProtectionType' instead.")] public static NSString FileProtectionCompleteUntilFirstUserAuthentication { get; } [Obsolete ("Use the 'NSFileProtectionType' instead.")] public static NSString FileProtectionNone { get; } ``` #### Type Changed: Foundation.NSLocale Added properties: ```csharp public virtual string LanguageIdentifier { get; } public virtual string RegionCode { get; } ``` #### Type Changed: Foundation.NSMorphology Added properties: ```csharp 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: ```csharp public static NSString PortDidBecomeInvalidNotification { get; } ``` #### Type Changed: Foundation.NSThread Added properties: ```csharp public static NSString ThreadWillExitNotification { get; } public static NSString WillBecomeMultiThreadedNotification { get; } ``` #### Type Changed: Foundation.NSTimeZone Added property: ```csharp public static NSString SystemTimeZoneDidChangeNotification { get; } ``` #### Type Changed: Foundation.NSUrl Added properties: ```csharp public static NSString DirectoryEntryCountKey { get; } public static NSString FileProtectionCompleteWhenUserInactive { get; } ``` Added methods: ```csharp public static NSUrl CreateFileUrl (string path); public static NSUrl CreateFileUrl (string path, bool isDir); public static NSUrl FromString (string url, bool encodingInvalidCharacters); ``` #### Type Changed: Foundation.NSUrlComponents Added method: ```csharp public static NSUrlComponents FromString (string url, bool encodingInvalidCharacters); ``` #### Type Changed: Foundation.NSUrlSession Added methods: ```csharp 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: ```csharp public Network.NWProxyConfig[] ProxyConfigurations { get; set; } ``` #### Type Changed: Foundation.NSUrlSessionTaskDelegate Added methods: ```csharp 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: ```csharp 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: ```csharp public static NSString ResumeDataKey { get; } ``` Added methods: ```csharp public virtual void CancelByProducingResumeData (System.Action<NSData> completionHandler); public virtual System.Threading.Tasks.Task<NSData> CancelByProducingResumeDataAsync (); ``` #### Type Changed: Foundation.NSUserDefaults Added properties: ```csharp public static NSString CompletedInitialSyncNotification { get; } public static NSString DidChangeAccountsNotification { get; } public static NSString SizeLimitExceededNotification { get; } ``` #### Type Changed: Foundation.NSUserDefaults.Notifications Added methods: ```csharp 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.NSExceptionError ```csharp public sealed class NSExceptionError : Foundation.NSError { // constructors public NSExceptionError (System.Exception exception); // properties public System.Exception Exception { get; } } ``` #### New Type: Foundation.NSFileProtectionType ```csharp [Serializable] public enum NSFileProtectionType { Complete = 0, CompleteUnlessOpen = 1, CompleteUntilFirstUserAuthentication = 2, CompleteWhenUserInactive = 4, None = 3, } ``` #### New Type: Foundation.NSFileProtectionTypeExtensions ```csharp public static class NSFileProtectionTypeExtensions { // methods public static NSString GetConstant (this NSFileProtectionType self); public static NSFileProtectionType GetValue (NSString constant); } ``` #### New Type: Foundation.NSGrammaticalCase ```csharp [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 ```csharp [Serializable] public enum NSGrammaticalDefiniteness { Definite = 2, Indefinite = 1, NotSet = 0, } ``` #### New Type: Foundation.NSGrammaticalDetermination ```csharp [Serializable] public enum NSGrammaticalDetermination { Dependent = 2, Independent = 1, NotSet = 0, } ``` #### New Type: Foundation.NSGrammaticalPerson ```csharp [Serializable] public enum NSGrammaticalPerson { First = 1, NotSet = 0, Second = 2, Third = 3, } ``` #### New Type: Foundation.NSGrammaticalPronounType ```csharp [Serializable] public enum NSGrammaticalPronounType { NotSet = 0, Personal = 1, Possessive = 3, Reflexive = 2, } ``` #### New Type: Foundation.NSMorphologyPronoun ```csharp public class NSMorphologyPronoun : Foundation.NSObject, INSCoding, INSCopying, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NSMorphologyPronoun (NSCoder coder); protected NSMorphologyPronoun (NSObjectFlag t); protected NSMorphologyPronoun (IntPtr handle); public NSMorphologyPronoun (string pronoun, NSMorphology morphology, NSMorphology dependentMorphology); // properties public override IntPtr 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 ```csharp public class NSTermOfAddress : Foundation.NSObject, INSCoding, INSCopying, INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NSTermOfAddress (NSCoder coder); protected NSTermOfAddress (NSObjectFlag t); protected NSTermOfAddress (IntPtr handle); // properties public override IntPtr 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 ```csharp 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: ```csharp 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: ```csharp public virtual Foundation.NSNumber RarityPercent { get; } ``` #### Type Changed: GameKit.GKError Added values: ```csharp ICloudUnavailable = 35, LockdownMode = 36, ``` #### Type Changed: GameKit.GKLeaderboardEntry Added methods: ```csharp 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.GKMatch Added properties: ```csharp public virtual Foundation.NSDictionary<GameKit.GKPlayer,Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject>> PlayerProperties { get; } public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> Properties { get; } ``` #### Type Changed: GameKit.GKMatchRequest Added properties: ```csharp public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> Properties { get; set; } public virtual string QueueName { get; set; } public virtual Foundation.NSDictionary<GameKit.GKPlayer,Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject>> RecipientProperties { get; set; } ``` #### Type Changed: GameKit.GKMatchmaker Added methods: ```csharp public virtual void FindMatchedPlayers (GKMatchRequest request, System.Action<GKMatchedPlayers,Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task<GKMatchedPlayers> FindMatchedPlayersAsync (GKMatchRequest request); public virtual void QueryQueueActivity (string queueName, System.Action<System.nint,Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task<nint> QueryQueueActivityAsync (string queueName); ``` #### Type Changed: GameKit.GKMatchmakerViewControllerDelegate Added method: ```csharp public virtual void GetMatchProperties (GKMatchmakerViewController viewController, GKPlayer recipient, System.Action<Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject>> completionHandler); ``` #### Type Changed: GameKit.GKMatchmakerViewControllerDelegate_Extensions Added method: ```csharp public static void GetMatchProperties (this IGKMatchmakerViewControllerDelegate This, GKMatchmakerViewController viewController, GKPlayer recipient, System.Action<Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject>> completionHandler); ``` #### Type Changed: GameKit.GKVoiceChat Added property: ```csharp public virtual System.Action<GKPlayer,GameKit.GKVoiceChatPlayerState> PlayerVoiceChatStateDidChangeHandler { get; } ``` #### New Type: GameKit.GKChallengeComposeControllerResult ```csharp 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 ```csharp 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); } ``` #### New Type: GameKit.GKMatchedPlayers ```csharp public class GKMatchedPlayers : Foundation.NSObject { // constructors public GKMatchedPlayers (); protected GKMatchedPlayers (Foundation.NSObjectFlag t); protected GKMatchedPlayers (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSDictionary<GameKit.GKPlayer,Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject>> PlayerProperties { get; } public virtual GKPlayer[] Players { get; } public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> Properties { get; } } ``` ### Namespace HomeKit #### Type Changed: HomeKit.HMServiceTypeExtensions Added methods: ```csharp public static Foundation.NSString[] ToArray (this HMServiceType value); public static HMServiceType ToFlags (System.Collections.Generic.IEnumerable<Foundation.NSString> constants); ``` ### Namespace ImageIO #### Type Changed: ImageIO.CGImageDestinationOptions Added property: ```csharp public Foundation.NSDictionary AvisDictionary { get; set; } ``` #### Type Changed: ImageIO.CGImageDestinationOptionsKeys Added property: ```csharp public static Foundation.NSString AvisDictionary { get; } ``` #### Type Changed: ImageIO.CGImageProperties Added property: ```csharp public static Foundation.NSString AvisDictionary { get; } ``` #### New Type: ImageIO.CGImageDecodeOptions ```csharp public class CGImageDecodeOptions { // constructors public CGImageDecodeOptions (); } ``` ### Namespace Intents #### Type Changed: Intents.INIntentErrorCode Added values: ```csharp NoAppIntent = 10001, UnableToCreateAppIntentRepresentation = 10000, ``` ### Namespace MapKit #### Type Changed: MapKit.MKMapSnapshotOptions Added property: ```csharp public virtual MKMapConfiguration PreferredConfiguration { get; set; } ``` #### Type Changed: MapKit.MKMapView Added properties: ```csharp public virtual MKFeatureVisibility PitchButtonVisibility { get; set; } public virtual bool ShowsUserTrackingButton { get; set; } ``` ### Namespace MediaAccessibility #### New Type: MediaAccessibility.MAFlashingLightsProcessor ```csharp public class MAFlashingLightsProcessor : Foundation.NSObject { // constructors public MAFlashingLightsProcessor (); protected MAFlashingLightsProcessor (Foundation.NSObjectFlag t); protected MAFlashingLightsProcessor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual bool CanProcess (IOSurface.IOSurface surface); public virtual MAFlashingLightsProcessorResult Process (IOSurface.IOSurface inSurface, IOSurface.IOSurface outSurface, double timestamp, Foundation.NSDictionary options); } ``` #### New Type: MediaAccessibility.MAFlashingLightsProcessorResult ```csharp public class MAFlashingLightsProcessorResult : Foundation.NSObject { // constructors public MAFlashingLightsProcessorResult (); protected MAFlashingLightsProcessorResult (Foundation.NSObjectFlag t); protected MAFlashingLightsProcessorResult (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual float IntensityLevel { get; } public virtual float MitigationLevel { get; } public virtual bool SurfaceProcessed { get; } } ``` ### Namespace Metal #### Type Changed: Metal.IMTLRenderPipelineState Added properties: ```csharp public virtual MTLResourceId GpuResourceId { get; } public virtual nuint MaxTotalThreadgroupsPerMeshGrid { get; } public virtual nuint MeshThreadExecutionWidth { get; } ``` #### Type Changed: Metal.MTLArgumentEncoder_Extensions Added methods: ```csharp public static void SetAccelerationStructure (this IMTLArgumentEncoder This, IMTLAccelerationStructure accelerationStructure, nuint index); public static void SetIntersectionFunctionTable (this IMTLArgumentEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, nuint index); public static void SetIntersectionFunctionTables (this IMTLArgumentEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTables, Foundation.NSRange range); public static void SetVisibleFunctionTable (this IMTLArgumentEncoder This, IMTLVisibleFunctionTable visibleFunctionTable, nuint index); public static void SetVisibleFunctionTables (this IMTLArgumentEncoder This, IMTLVisibleFunctionTable[] visibleFunctionTables, Foundation.NSRange range); ``` #### Type Changed: Metal.MTLAttributeFormat Added values: ```csharp FloatRG11B10 = 54, FloatRGB9E5 = 55, ``` #### Type Changed: Metal.MTLBinaryArchiveError Added value: ```csharp InternalError = 4, ``` #### Type Changed: Metal.MTLBlitCommandEncoder_Extensions Added methods: ```csharp public static void GetTextureAccessCounters (this IMTLBlitCommandEncoder This, IMTLTexture texture, MTLRegion region, nuint mipLevel, nuint slice, bool resetCounters, IMTLBuffer countersBuffer, nuint countersBufferOffset); public static void ResetTextureAccessCounters (this IMTLBlitCommandEncoder This, IMTLTexture texture, MTLRegion region, nuint mipLevel, nuint slice); ``` #### Type Changed: Metal.MTLBuffer_Extensions Added method: ```csharp public static ulong GetGpuAddress (this IMTLBuffer This); ``` #### Type Changed: Metal.MTLCommandBuffer_Extensions Added methods: ```csharp 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); ``` #### Type Changed: Metal.MTLCompileOptions Added properties: ```csharp public virtual bool AllowReferencingUndefinedSymbols { get; set; } public virtual MTLCompileSymbolVisibility CompileSymbolVisibility { get; set; } public virtual nuint MaxTotalThreadsPerThreadgroup { get; set; } public virtual MTLLibraryOptimizationLevel OptimizationLevel { get; set; } ``` #### Type Changed: Metal.MTLComputeCommandEncoder_Extensions Added methods: ```csharp public static void SetAccelerationStructure (this IMTLComputeCommandEncoder This, IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); public static void SetBuffer (this IMTLComputeCommandEncoder This, IMTLBuffer buffer, nuint offset, nuint stride, nuint index); public static void SetBufferOffset (this IMTLComputeCommandEncoder This, nuint offset, nuint stride, nuint 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, nuint length, nuint stride, nuint index); public static void SetIntersectionFunctionTable (this IMTLComputeCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); public static void SetIntersectionFunctionTables (this IMTLComputeCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTables, Foundation.NSRange range); public static void SetVisibleFunctionTable (this IMTLComputeCommandEncoder This, IMTLVisibleFunctionTable visibleFunctionTable, nuint bufferIndex); public static void SetVisibleFunctionTables (this IMTLComputeCommandEncoder This, IMTLVisibleFunctionTable[] visibleFunctionTables, Foundation.NSRange range); ``` #### Type Changed: Metal.MTLComputePipelineDescriptor Added properties: ```csharp public virtual nuint MaxCallStackDepth { get; set; } public virtual bool SupportAddingBinaryFunctions { get; set; } ``` #### Type Changed: Metal.MTLComputePipelineReflection Added property: ```csharp public virtual IMTLBinding[] Bindings { get; } ``` #### Type Changed: Metal.MTLComputePipelineState_Extensions Added methods: ```csharp 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); ``` #### Type Changed: Metal.MTLDataType Added values: ```csharp BFloat = 121, BFloat2 = 122, BFloat3 = 123, BFloat4 = 124, ``` #### Type Changed: Metal.MTLDevice_Extensions Added methods: ```csharp public static void ConvertSparsePixelRegions (this IMTLDevice This, IntPtr pixelRegions, IntPtr tileRegions, MTLSize tileSize, MTLSparseTextureRegionAlignmentMode mode, nuint numRegions); public static void ConvertSparseTileRegions (this IMTLDevice This, IntPtr tileRegions, IntPtr pixelRegions, MTLSize tileSize, nuint numRegions); public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLDevice This, MTLAccelerationStructureDescriptor descriptor); public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLDevice This, nuint 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, nuint size); public static ulong GetRecommendedMaxWorkingSetSize (this IMTLDevice This); public static MTLSize GetSparseTileSize (this IMTLDevice This, MTLTextureType textureType, MTLPixelFormat pixelFormat, nuint sampleCount); public static MTLSize GetSparseTileSize (this IMTLDevice This, MTLTextureType textureType, MTLPixelFormat pixelFormat, nuint sampleCount, MTLSparsePageSize sparsePageSize); public static nuint GetSparseTileSizeInBytes (this IMTLDevice This); public static nuint GetSparseTileSizeInBytes (this IMTLDevice This, MTLSparsePageSize sparsePageSize); public static bool GetSupports32BitFloatFiltering (this IMTLDevice This); public static bool GetSupports32BitMsaa (this IMTLDevice This); public static bool GetSupportsBCTextureCompression (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, nuint layerCount); public static bool SupportsVertexAmplification (this IMTLDevice This, nuint count); ``` #### Type Changed: Metal.MTLFunctionOptions Added value: ```csharp StoreFunctionInMetalScript = 2, ``` #### Type Changed: Metal.MTLFunctionType Added values: ```csharp Mesh = 7, Object = 8, ``` #### Type Changed: Metal.MTLFunction_Extensions Added method: ```csharp public static MTLFunctionOptions GetOptions (this IMTLFunction This); ``` #### Type Changed: Metal.MTLGpuFamily Added values: ```csharp Apple8 = 1008, Apple9 = 1009, Metal3 = 5001, ``` #### Type Changed: Metal.MTLHeapDescriptor Added property: ```csharp public virtual MTLSparsePageSize SparsePageSize { get; set; } ``` #### Type Changed: Metal.MTLHeap_Extensions Added methods: ```csharp public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, MTLAccelerationStructureDescriptor descriptor); public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, nuint size); public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, MTLAccelerationStructureDescriptor descriptor, nuint offset); public static IMTLAccelerationStructure CreateAccelerationStructure (this IMTLHeap This, nuint size, nuint offset); ``` #### Type Changed: Metal.MTLIndirectCommandBufferDescriptor Added properties: ```csharp public virtual nuint MaxKernelThreadgroupMemoryBindCount { get; set; } public virtual nuint MaxMeshBufferBindCount { get; set; } public virtual nuint MaxObjectBufferBindCount { get; set; } public virtual nuint MaxObjectThreadgroupMemoryBindCount { get; set; } public virtual bool SupportDynamicAttributeStride { get; set; } public virtual bool SupportRayTracing { get; set; } ``` #### Type Changed: Metal.MTLIndirectCommandBuffer_Extensions Added method: ```csharp public static MTLResourceId GetGpuResourceID (this IMTLIndirectCommandBuffer This); ``` #### Type Changed: Metal.MTLIndirectCommandType Added values: ```csharp DrawMeshThreadgroups = 128, DrawMeshThreads = 256, ``` #### Type Changed: Metal.MTLIndirectComputeCommand_Extensions Added method: ```csharp public static void SetKernelBuffer (this IMTLIndirectComputeCommand This, IMTLBuffer buffer, nuint offset, nuint stride, nuint index); ``` #### Type Changed: Metal.MTLIndirectRenderCommand_Extensions Added method: ```csharp public static void SetVertexBuffer (this IMTLIndirectRenderCommand This, IMTLBuffer buffer, nuint offset, nuint stride, nuint index); ``` #### Type Changed: Metal.MTLLanguageVersion Added values: ```csharp v3_0 = 196608, v3_1 = 196609, ``` #### Type Changed: Metal.MTLLibrary_Extensions Added methods: ```csharp 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: ```csharp public virtual IMTLFunction[] BinaryFunctions { get; set; } ``` #### Type Changed: Metal.MTLRenderCommandEncoder_Extensions Added methods: ```csharp public static void DrawMeshThreadgroups (this IMTLRenderCommandEncoder This, MTLSize threadgroupsPerGrid, MTLSize threadsPerObjectThreadgroup, MTLSize threadsPerMeshThreadgroup); public static void DrawMeshThreadgroups (this IMTLRenderCommandEncoder This, IMTLBuffer indirectBuffer, nuint 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, nuint count, MTLRenderStages after, MTLRenderStages before); public static void SetFragmentAccelerationStructure (this IMTLRenderCommandEncoder This, IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); public static void SetFragmentIntersectionFunctionTable (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); public static void SetFragmentIntersectionFunctionTables (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTable, Foundation.NSRange range); public static void SetFragmentVisibleFunctionTable (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable functionTable, nuint bufferIndex); public static void SetFragmentVisibleFunctionTables (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange range); public static void SetMeshBuffer (this IMTLRenderCommandEncoder This, IMTLBuffer buffer, nuint offset, nuint index); public static void SetMeshBufferOffset (this IMTLRenderCommandEncoder This, nuint offset, nuint index); public static void SetMeshBuffers (this IMTLRenderCommandEncoder This, IntPtr buffers, IntPtr offsets, Foundation.NSRange range); public static void SetMeshBytes (this IMTLRenderCommandEncoder This, IntPtr bytes, nuint length, nuint index); public static void SetMeshSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, nuint index); public static void SetMeshSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, nuint 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, nuint index); public static void SetMeshTextures (this IMTLRenderCommandEncoder This, IntPtr textures, Foundation.NSRange range); public static void SetObjectBuffer (this IMTLRenderCommandEncoder This, IMTLBuffer buffer, nuint offset, nuint index); public static void SetObjectBufferOffset (this IMTLRenderCommandEncoder This, nuint offset, nuint index); public static void SetObjectBuffers (this IMTLRenderCommandEncoder This, IntPtr buffers, IntPtr offsets, Foundation.NSRange range); public static void SetObjectBytes (this IMTLRenderCommandEncoder This, IntPtr bytes, nuint length, nuint index); public static void SetObjectSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, nuint index); public static void SetObjectSamplerState (this IMTLRenderCommandEncoder This, IMTLSamplerState sampler, float lodMinClamp, float lodMaxClamp, nuint 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, nuint index); public static void SetObjectTextures (this IMTLRenderCommandEncoder This, IntPtr textures, Foundation.NSRange range); public static void SetObjectThreadgroupMemoryLength (this IMTLRenderCommandEncoder This, nuint length, nuint index); public static void SetTileAccelerationStructure (this IMTLRenderCommandEncoder This, IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); public static void SetTileIntersectionFunctionTable (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); public static void SetTileIntersectionFunctionTables (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTable, Foundation.NSRange range); public static void SetTileVisibleFunctionTable (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable functionTable, nuint bufferIndex); public static void SetTileVisibleFunctionTables (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange range); public static void SetVertexAccelerationStructure (this IMTLRenderCommandEncoder This, IMTLAccelerationStructure accelerationStructure, nuint bufferIndex); public static void SetVertexAmplificationCount (this IMTLRenderCommandEncoder This, nuint count, MTLVertexAmplificationViewMapping viewMappings); public static void SetVertexBuffer (this IMTLRenderCommandEncoder This, IMTLBuffer buffer, nuint offset, nuint stride, nuint index); public static void SetVertexBufferOffset (this IMTLRenderCommandEncoder This, nuint offset, nuint stride, nuint 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, nuint length, nuint stride, nuint index); public static void SetVertexIntersectionFunctionTable (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable intersectionFunctionTable, nuint bufferIndex); public static void SetVertexIntersectionFunctionTables (this IMTLRenderCommandEncoder This, IMTLIntersectionFunctionTable[] intersectionFunctionTable, Foundation.NSRange range); public static void SetVertexVisibleFunctionTable (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable functionTable, nuint bufferIndex); public static void SetVertexVisibleFunctionTables (this IMTLRenderCommandEncoder This, IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange range); ``` #### Type Changed: Metal.MTLRenderPassDescriptor Added property: ```csharp public virtual IMTLRasterizationRateMap RasterizationRateMap { get; set; } ``` #### Type Changed: Metal.MTLRenderPipelineDescriptor Added property: ```csharp public virtual nuint MaxVertexAmplificationCount { get; set; } ``` #### Type Changed: Metal.MTLRenderPipelineReflection Added properties: ```csharp 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.MTLRenderPipelineState_Extensions Added methods: ```csharp public static IMTLFunctionHandle FunctionHandleWithFunction (this IMTLRenderPipelineState This, IMTLFunction function, MTLRenderStages stage); public static nuint GetMaxTotalThreadsPerMeshThreadgroup (this IMTLRenderPipelineState This); public static nuint GetMaxTotalThreadsPerObjectThreadgroup (this IMTLRenderPipelineState This); public static nuint 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); ``` #### Type Changed: Metal.MTLRenderStages Added values: ```csharp Mesh = 16, Object = 8, ``` #### Type Changed: Metal.MTLSamplerDescriptor Added property: ```csharp public virtual MTLSamplerBorderColor BorderColor { get; set; } ``` #### Type Changed: Metal.MTLTextureDescriptor Added property: ```csharp public virtual MTLTextureCompressionType CompressionType { get; set; } ``` #### Type Changed: Metal.MTLTextureUsage Added value: ```csharp ShaderAtomic = 32, ``` #### Type Changed: Metal.MTLTexture_Extensions Added methods: ```csharp public static MTLTextureCompressionType GetCompressionType (this IMTLTexture This); public static nuint GetFirstMipmapInTail (this IMTLTexture This); public static MTLResourceId GetGpuResourceId (this IMTLTexture This); public static bool GetIsSparse (this IMTLTexture This); public static nuint GetTailSizeInBytes (this IMTLTexture This); ``` #### Type Changed: Metal.MTLTileRenderPipelineDescriptor Added properties: ```csharp public virtual nuint MaxCallStackDepth { get; set; } public virtual bool SupportAddingBinaryFunctions { get; set; } ``` #### Type Changed: Metal.MTLVertexFormat Added values: ```csharp FloatRG11B10 = 54, FloatRgb9E5 = 55, ``` #### New Type: Metal.IMTLAccelerationStructure ```csharp public interface IMTLAccelerationStructure : IMTLResource, ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual MTLResourceId GpuResourceId { get; } public virtual nuint Size { get; } } ``` #### New Type: Metal.IMTLAccelerationStructureCommandEncoder ```csharp public interface IMTLAccelerationStructureCommandEncoder : IMTLCommandEncoder, ObjCRuntime.INativeObject, System.IDisposable { // methods public abstract void BuildAccelerationStructure (IMTLAccelerationStructure accelerationStructure, MTLAccelerationStructureDescriptor descriptor, IMTLBuffer scratchBuffer, nuint 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, nuint scratchBufferOffset); public abstract void SampleCountersInBuffer (MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier); public abstract void UpdateFence (IMTLFence fence); public abstract void UseHeap (IMTLHeap heap); public abstract void UseHeaps (IMTLHeap[] heaps, nuint count); public abstract void UseResource (IMTLResource resource, MTLResourceUsage usage); public abstract void UseResources (IMTLResource[] resources, nuint count, MTLResourceUsage usage); public abstract void WaitForFence (IMTLFence fence); public abstract void WriteCompactedAccelerationStructureSize (IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, nuint offset); } ``` #### New Type: Metal.IMTLBinding ```csharp public interface IMTLBinding : ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual MTLBindingAccess Access { get; } public virtual bool Argument { get; } public virtual nuint Index { get; } public virtual string Name { get; } public virtual MTLBindingType Type { get; } public virtual bool Used { get; } } ``` #### New Type: Metal.IMTLBufferBinding ```csharp public interface IMTLBufferBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual nuint BufferAlignment { get; } public virtual nuint BufferDataSize { get; } public virtual MTLDataType BufferDataType { get; } public virtual MTLPointerType BufferPointerType { get; } public virtual MTLStructType BufferStructType { get; } } ``` #### New Type: Metal.IMTLFunctionHandle ```csharp 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 ```csharp public interface IMTLIntersectionFunctionTable : IMTLResource, ObjCRuntime.INativeObject, System.IDisposable { // methods public abstract void SetBuffer (IMTLBuffer buffer, nuint offset, nuint index); public abstract void SetBuffers (IntPtr buffers, IntPtr offsets, Foundation.NSRange range); public abstract void SetFunction (IMTLFunctionHandle function, nuint 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, nuint index); public abstract void SetVisibleFunctionTable (IMTLVisibleFunctionTable functionTable, nuint bufferIndex); public abstract void SetVisibleFunctionTables (IMTLVisibleFunctionTable[] functionTables, Foundation.NSRange bufferRange); } ``` #### New Type: Metal.IMTLObjectPayloadBinding ```csharp public interface IMTLObjectPayloadBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual nuint ObjectPayloadAlignment { get; } public virtual nuint ObjectPayloadDataSize { get; } } ``` #### New Type: Metal.IMTLRasterizationRateMap ```csharp public interface IMTLRasterizationRateMap : ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual IMTLDevice Device { get; } public virtual string Label { get; } public virtual nuint LayerCount { get; } public virtual MTLSizeAndAlign ParameterBufferSizeAndAlign { get; } public virtual MTLSize PhysicalGranularity { get; } public virtual MTLSize ScreenSize { get; } // methods public abstract void CopyParameterData (IMTLBuffer buffer, nuint offset); public abstract MTLSize GetPhysicalSize (nuint layerIndex); public abstract MTLCoordinate2D MapPhysicalToScreenCoordinates (MTLCoordinate2D physicalCoordinates, nuint layerIndex); public abstract MTLCoordinate2D MapScreenToPhysicalCoordinates (MTLCoordinate2D screenCoordinates, nuint layerIndex); } ``` #### New Type: Metal.IMTLResourceStateCommandEncoder ```csharp 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, nuint indirectBufferOffset); public abstract void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, MTLRegion region, nuint mipLevel, nuint slice); public abstract void Update (IMTLTexture texture, MTLSparseTextureMappingMode mode, IntPtr regions, IntPtr mipLevels, IntPtr slices, nuint numRegions); public abstract void Wait (IMTLFence fence); } ``` #### New Type: Metal.IMTLTextureBinding ```csharp public interface IMTLTextureBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual nuint ArrayLength { get; } public virtual bool DepthTexture { get; } public virtual MTLDataType TextureDataType { get; } public virtual MTLTextureType TextureType { get; } } ``` #### New Type: Metal.IMTLThreadgroupBinding ```csharp public interface IMTLThreadgroupBinding : IMTLBinding, ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual nuint ThreadgroupMemoryAlignment { get; } public virtual nuint ThreadgroupMemoryDataSize { get; } } ``` #### New Type: Metal.IMTLVisibleFunctionTable ```csharp public interface IMTLVisibleFunctionTable : IMTLResource, ObjCRuntime.INativeObject, System.IDisposable { // methods public abstract void SetFunction (IMTLFunctionHandle function, nuint index); public abstract void SetFunctions (IMTLFunctionHandle[] functions, Foundation.NSRange range); } ``` #### New Type: Metal.MTLAccelerationStructureBoundingBoxGeometryDescriptor ```csharp public class MTLAccelerationStructureBoundingBoxGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor { // constructors protected MTLAccelerationStructureBoundingBoxGeometryDescriptor (Foundation.NSObjectFlag t); protected MTLAccelerationStructureBoundingBoxGeometryDescriptor (IntPtr handle); // properties public virtual IMTLBuffer BoundingBoxBuffer { get; set; } public virtual nuint BoundingBoxBufferOffset { get; set; } public virtual nuint BoundingBoxCount { get; set; } public virtual nuint BoundingBoxStride { get; set; } public override IntPtr ClassHandle { get; } // methods public static MTLAccelerationStructureBoundingBoxGeometryDescriptor Create (); } ``` #### New Type: Metal.MTLAccelerationStructureCommandEncoder_Extensions ```csharp public static class MTLAccelerationStructureCommandEncoder_Extensions { // methods public static void RefitAccelerationStructure (this IMTLAccelerationStructureCommandEncoder This, IMTLAccelerationStructure sourceAccelerationStructure, MTLAccelerationStructureDescriptor descriptor, IMTLAccelerationStructure destinationAccelerationStructure, IMTLBuffer scratchBuffer, nuint scratchBufferOffset, MTLAccelerationStructureRefitOptions options); public static void WriteCompactedAccelerationStructureSize (this IMTLAccelerationStructureCommandEncoder This, IMTLAccelerationStructure accelerationStructure, IMTLBuffer buffer, nuint offset, MTLDataType sizeDataType); } ``` #### New Type: Metal.MTLAccelerationStructureCurveGeometryDescriptor ```csharp public class MTLAccelerationStructureCurveGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor { // constructors public MTLAccelerationStructureCurveGeometryDescriptor (); protected MTLAccelerationStructureCurveGeometryDescriptor (Foundation.NSObjectFlag t); protected MTLAccelerationStructureCurveGeometryDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual IMTLBuffer ControlPointBuffer { get; set; } public virtual nuint ControlPointBufferOffset { get; set; } public virtual nuint ControlPointCount { get; set; } public virtual MTLAttributeFormat ControlPointFormat { get; set; } public virtual nuint 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 nuint IndexBufferOffset { get; set; } public virtual MTLIndexType IndexType { get; set; } public virtual IMTLBuffer RadiusBuffer { get; set; } public virtual nuint RadiusBufferOffset { get; set; } public virtual MTLAttributeFormat RadiusFormat { get; set; } public virtual nuint RadiusStride { get; set; } public virtual nuint SegmentControlPointCount { get; set; } public virtual nuint SegmentCount { get; set; } // methods public static MTLAccelerationStructureCurveGeometryDescriptor GetDescriptor (); } ``` #### New Type: Metal.MTLAccelerationStructureDescriptor ```csharp public class MTLAccelerationStructureDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MTLAccelerationStructureDescriptor (); protected MTLAccelerationStructureDescriptor (Foundation.NSObjectFlag t); protected MTLAccelerationStructureDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MTLAccelerationStructureUsage Usage { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: Metal.MTLAccelerationStructureGeometryDescriptor ```csharp public class MTLAccelerationStructureGeometryDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MTLAccelerationStructureGeometryDescriptor (); protected MTLAccelerationStructureGeometryDescriptor (Foundation.NSObjectFlag t); protected MTLAccelerationStructureGeometryDescriptor (IntPtr handle); // properties public virtual bool AllowDuplicateIntersectionFunctionInvocation { get; set; } public override IntPtr ClassHandle { get; } public virtual nuint IntersectionFunctionTableOffset { get; set; } public virtual string Label { get; set; } public virtual bool Opaque { get; set; } public virtual IMTLBuffer PrimitiveDataBuffer { get; set; } public virtual nuint PrimitiveDataBufferOffset { get; set; } public virtual nuint PrimitiveDataElementSize { get; set; } public virtual nuint PrimitiveDataStride { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: Metal.MTLAccelerationStructureInstanceDescriptorType ```csharp [Serializable] public enum MTLAccelerationStructureInstanceDescriptorType { Default = 0, Indirect = 3, IndirectMotion = 4, Motion = 2, UserID = 1, } ``` #### New Type: Metal.MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor ```csharp public class MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor { // constructors public MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor (); protected MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor (Foundation.NSObjectFlag t); protected MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor (IntPtr handle); // properties public virtual MTLMotionKeyframeData[] BoundingBoxBuffers { get; set; } public virtual nuint BoundingBoxCount { get; set; } public virtual nuint BoundingBoxStride { get; set; } public override IntPtr ClassHandle { get; } // methods public static MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor Create (); } ``` #### New Type: Metal.MTLAccelerationStructureMotionCurveGeometryDescriptor ```csharp public class MTLAccelerationStructureMotionCurveGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor { // constructors public MTLAccelerationStructureMotionCurveGeometryDescriptor (); protected MTLAccelerationStructureMotionCurveGeometryDescriptor (Foundation.NSObjectFlag t); protected MTLAccelerationStructureMotionCurveGeometryDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MTLMotionKeyframeData[] ControlPointBuffers { get; set; } public virtual nuint ControlPointCount { get; set; } public virtual MTLAttributeFormat ControlPointFormat { get; set; } public virtual nuint 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 nuint IndexBufferOffset { get; set; } public virtual MTLIndexType IndexType { get; set; } public virtual MTLMotionKeyframeData[] RadiusBuffers { get; set; } public virtual MTLAttributeFormat RadiusFormat { get; set; } public virtual nuint RadiusStride { get; set; } public virtual nuint SegmentControlPointCount { get; set; } public virtual nuint SegmentCount { get; set; } // methods public static MTLAccelerationStructureMotionCurveGeometryDescriptor GetDescriptor (); } ``` #### New Type: Metal.MTLAccelerationStructureMotionTriangleGeometryDescriptor ```csharp public class MTLAccelerationStructureMotionTriangleGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor { // constructors public MTLAccelerationStructureMotionTriangleGeometryDescriptor (); protected MTLAccelerationStructureMotionTriangleGeometryDescriptor (Foundation.NSObjectFlag t); protected MTLAccelerationStructureMotionTriangleGeometryDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual IMTLBuffer IndexBuffer { get; set; } public virtual nuint IndexBufferOffset { get; set; } public virtual MTLIndexType IndexType { get; set; } public virtual IMTLBuffer TransformationMatrixBuffer { get; set; } public virtual nuint TransformationMatrixBufferOffset { get; set; } public virtual nuint TriangleCount { get; set; } public virtual MTLMotionKeyframeData[] VertexBuffers { get; set; } public virtual MTLAttributeFormat VertexFormat { get; set; } public virtual nuint VertexStride { get; set; } // methods public static MTLAccelerationStructureMotionTriangleGeometryDescriptor Create (); } ``` #### New Type: Metal.MTLAccelerationStructurePassDescriptor ```csharp public class MTLAccelerationStructurePassDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MTLAccelerationStructurePassDescriptor (); protected MTLAccelerationStructurePassDescriptor (Foundation.NSObjectFlag t); protected MTLAccelerationStructurePassDescriptor (IntPtr handle); // properties public static MTLAccelerationStructurePassDescriptor AccelerationStructurePassDescriptor { get; } public override IntPtr ClassHandle { get; } public virtual MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: Metal.MTLAccelerationStructurePassSampleBufferAttachmentDescriptor ```csharp public class MTLAccelerationStructurePassSampleBufferAttachmentDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MTLAccelerationStructurePassSampleBufferAttachmentDescriptor (); protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptor (Foundation.NSObjectFlag t); protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nuint EndOfEncoderSampleIndex { get; set; } public virtual IMTLCounterSampleBuffer SampleBuffer { get; set; } public virtual nuint StartOfEncoderSampleIndex { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: Metal.MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray ```csharp public class MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray : Foundation.NSObject { // constructors public MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray (); protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray (Foundation.NSObjectFlag t); protected MTLAccelerationStructurePassSampleBufferAttachmentDescriptorArray (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual MTLAccelerationStructurePassSampleBufferAttachmentDescriptor GetObject (nuint attachmentIndex); public virtual void SetObject (MTLAccelerationStructurePassSampleBufferAttachmentDescriptor attachment, nuint attachmentIndex); } ``` #### New Type: Metal.MTLAccelerationStructureRefitOptions ```csharp [Serializable] [Flags] public enum MTLAccelerationStructureRefitOptions { PerPrimitiveData = 2, VertexData = 1, } ``` #### New Type: Metal.MTLAccelerationStructureTriangleGeometryDescriptor ```csharp public class MTLAccelerationStructureTriangleGeometryDescriptor : Metal.MTLAccelerationStructureGeometryDescriptor { // constructors public MTLAccelerationStructureTriangleGeometryDescriptor (); protected MTLAccelerationStructureTriangleGeometryDescriptor (Foundation.NSObjectFlag t); protected MTLAccelerationStructureTriangleGeometryDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual IMTLBuffer IndexBuffer { get; set; } public virtual nuint IndexBufferOffset { get; set; } public virtual MTLIndexType IndexType { get; set; } public virtual IMTLBuffer TransformationMatrixBuffer { get; set; } public virtual nuint TransformationMatrixBufferOffset { get; set; } public virtual nuint TriangleCount { get; set; } public virtual IMTLBuffer VertexBuffer { get; set; } public virtual nuint VertexBufferOffset { get; set; } public virtual MTLAttributeFormat VertexFormat { get; set; } public virtual nuint VertexStride { get; set; } // methods public static MTLAccelerationStructureTriangleGeometryDescriptor Create (); } ``` #### New Type: Metal.MTLAccelerationStructureUsage ```csharp [Serializable] [Flags] public enum MTLAccelerationStructureUsage { ExtendedLimits = 4, None = 0, PreferFastBuild = 2, Refit = 1, } ``` #### New Type: Metal.MTLArchitecture ```csharp public class MTLArchitecture : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MTLArchitecture (); protected MTLArchitecture (Foundation.NSObjectFlag t); protected MTLArchitecture (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Name { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: Metal.MTLBindingAccess ```csharp [Serializable] public enum MTLBindingAccess { ReadOnly = 0, ReadWrite = 1, WriteOnly = 2, } ``` #### New Type: Metal.MTLBindingType ```csharp [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.MTLCompileSymbolVisibility ```csharp [Serializable] public enum MTLCompileSymbolVisibility { Default = 0, Hidden = 1, } ``` #### New Type: Metal.MTLCoordinate2D ```csharp public struct MTLCoordinate2D { // fields public float X; public float Y; } ``` #### New Type: Metal.MTLCurveBasis ```csharp [Serializable] public enum MTLCurveBasis { BSpline = 0, Bezier = 3, CatmullRom = 1, Linear = 2, } ``` #### New Type: Metal.MTLCurveEndCaps ```csharp [Serializable] public enum MTLCurveEndCaps { Disk = 1, None = 0, Sphere = 2, } ``` #### New Type: Metal.MTLCurveType ```csharp [Serializable] public enum MTLCurveType { Flat = 1, Round = 0, } ``` #### New Type: Metal.MTLIOCommandQueueType ```csharp [Serializable] public enum MTLIOCommandQueueType { Concurrent = 0, Serial = 1, } ``` #### New Type: Metal.MTLIOCompressionContext ```csharp public class MTLIOCompressionContext : ObjCRuntime.DisposableObject { // properties public static nint 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 ```csharp [Serializable] public enum MTLIOCompressionMethod { Lz4 = 2, LzBitmap = 4, Lzfse = 1, Lzma = 3, Zlib = 0, } ``` #### New Type: Metal.MTLIOCompressionStatus ```csharp [Serializable] public enum MTLIOCompressionStatus { Complete = 0, Error = 1, } ``` #### New Type: Metal.MTLIOError ```csharp [Serializable] public enum MTLIOError { Internal = 2, UrlInvalid = 1, } ``` #### New Type: Metal.MTLIOErrorExtensions ```csharp public static class MTLIOErrorExtensions { // methods public static Foundation.NSString GetDomain (this MTLIOError self); } ``` #### New Type: Metal.MTLIOPriority ```csharp [Serializable] public enum MTLIOPriority { High = 0, Low = 2, Normal = 1, } ``` #### New Type: Metal.MTLIOStatus ```csharp [Serializable] public enum MTLIOStatus { Cancelled = 1, Complete = 3, Error = 2, Pending = 0, } ``` #### New Type: Metal.MTLIndirectInstanceAccelerationStructureDescriptor ```csharp public class MTLIndirectInstanceAccelerationStructureDescriptor : Metal.MTLAccelerationStructureDescriptor { // constructors public MTLIndirectInstanceAccelerationStructureDescriptor (); protected MTLIndirectInstanceAccelerationStructureDescriptor (Foundation.NSObjectFlag t); protected MTLIndirectInstanceAccelerationStructureDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual IMTLBuffer InstanceCountBuffer { get; set; } public virtual nuint InstanceCountBufferOffset { get; set; } public virtual IMTLBuffer InstanceDescriptorBuffer { get; set; } public virtual nuint InstanceDescriptorBufferOffset { get; set; } public virtual nuint InstanceDescriptorStride { get; set; } public virtual MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; } public virtual nuint MaxInstanceCount { get; set; } public virtual nuint MaxMotionTransformCount { get; set; } public virtual IMTLBuffer MotionTransformBuffer { get; set; } public virtual nuint MotionTransformBufferOffset { get; set; } public virtual IMTLBuffer MotionTransformCountBuffer { get; set; } public virtual nuint MotionTransformCountBufferOffset { get; set; } // methods public static MTLIndirectInstanceAccelerationStructureDescriptor GetDescriptor (); } ``` #### New Type: Metal.MTLInstanceAccelerationStructureDescriptor ```csharp public class MTLInstanceAccelerationStructureDescriptor : Metal.MTLAccelerationStructureDescriptor { // constructors protected MTLInstanceAccelerationStructureDescriptor (Foundation.NSObjectFlag t); protected MTLInstanceAccelerationStructureDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nuint InstanceCount { get; set; } public virtual IMTLBuffer InstanceDescriptorBuffer { get; set; } public virtual nuint InstanceDescriptorBufferOffset { get; set; } public virtual nuint InstanceDescriptorStride { get; set; } public virtual MTLAccelerationStructureInstanceDescriptorType InstanceDescriptorType { get; set; } public virtual IMTLAccelerationStructure[] InstancedAccelerationStructures { get; set; } public virtual IMTLBuffer MotionTransformBuffer { get; set; } public virtual nuint MotionTransformBufferOffset { get; set; } public virtual nuint MotionTransformCount { get; set; } // methods public static MTLInstanceAccelerationStructureDescriptor Create (); } ``` #### New Type: Metal.MTLIntersectionFunctionDescriptor ```csharp public class MTLIntersectionFunctionDescriptor : Metal.MTLFunctionDescriptor, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MTLIntersectionFunctionDescriptor (Foundation.NSObjectFlag t); protected MTLIntersectionFunctionDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: Metal.MTLIntersectionFunctionSignature ```csharp [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 ```csharp public class MTLIntersectionFunctionTableDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MTLIntersectionFunctionTableDescriptor (Foundation.NSObjectFlag t); protected MTLIntersectionFunctionTableDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nuint FunctionCount { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MTLIntersectionFunctionTableDescriptor Create (); } ``` #### New Type: Metal.MTLIntersectionFunctionTable_Extensions ```csharp 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, nuint index); } ``` #### New Type: Metal.MTLLibraryOptimizationLevel ```csharp [Serializable] public enum MTLLibraryOptimizationLevel { Default = 0, Size = 1, } ``` #### New Type: Metal.MTLMeshRenderPipelineDescriptor ```csharp public class MTLMeshRenderPipelineDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MTLMeshRenderPipelineDescriptor (); protected MTLMeshRenderPipelineDescriptor (Foundation.NSObjectFlag t); protected MTLMeshRenderPipelineDescriptor (IntPtr handle); // properties public virtual bool AlphaToCoverageEnabled { get; set; } public virtual bool AlphaToOneEnabled { get; set; } public override IntPtr 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 nuint MaxTotalThreadgroupsPerMeshGrid { get; set; } public virtual nuint MaxTotalThreadsPerMeshThreadgroup { get; set; } public virtual nuint MaxTotalThreadsPerObjectThreadgroup { get; set; } public virtual nuint 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 nuint PayloadMemoryLength { get; set; } public virtual nuint 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 ```csharp [Serializable] public enum MTLMotionBorderMode { Clamp = 0, Vanish = 1, } ``` #### New Type: Metal.MTLMotionKeyframeData ```csharp public class MTLMotionKeyframeData : Foundation.NSObject { // constructors public MTLMotionKeyframeData (); protected MTLMotionKeyframeData (Foundation.NSObjectFlag t); protected MTLMotionKeyframeData (IntPtr handle); // properties public virtual IMTLBuffer Buffer { get; set; } public override IntPtr ClassHandle { get; } public virtual nuint Offset { get; set; } // methods public static MTLMotionKeyframeData Create (); } ``` #### New Type: Metal.MTLPrimitiveAccelerationStructureDescriptor ```csharp public class MTLPrimitiveAccelerationStructureDescriptor : Metal.MTLAccelerationStructureDescriptor { // constructors protected MTLPrimitiveAccelerationStructureDescriptor (Foundation.NSObjectFlag t); protected MTLPrimitiveAccelerationStructureDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MTLAccelerationStructureGeometryDescriptor[] GeometryDescriptors { get; set; } public virtual MTLMotionBorderMode MotionEndBorderMode { get; set; } public virtual float MotionEndTime { get; set; } public virtual nuint MotionKeyframeCount { get; set; } public virtual MTLMotionBorderMode MotionStartBorderMode { get; set; } public virtual float MotionStartTime { get; set; } // methods public static MTLPrimitiveAccelerationStructureDescriptor Create (); } ``` #### New Type: Metal.MTLRasterizationRateLayerArray ```csharp public class MTLRasterizationRateLayerArray : Foundation.NSObject { // constructors public MTLRasterizationRateLayerArray (); protected MTLRasterizationRateLayerArray (Foundation.NSObjectFlag t); protected MTLRasterizationRateLayerArray (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual MTLRasterizationRateLayerDescriptor GetObject (nuint layerIndex); public virtual void SetObject (MTLRasterizationRateLayerDescriptor layer, nuint layerIndex); } ``` #### New Type: Metal.MTLRasterizationRateLayerDescriptor ```csharp public class MTLRasterizationRateLayerDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MTLRasterizationRateLayerDescriptor (Foundation.NSObjectFlag t); public MTLRasterizationRateLayerDescriptor (MTLSize sampleCount); protected MTLRasterizationRateLayerDescriptor (IntPtr handle); // properties public override IntPtr 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 ```csharp public class MTLRasterizationRateMapDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MTLRasterizationRateMapDescriptor (); protected MTLRasterizationRateMapDescriptor (Foundation.NSObjectFlag t); protected MTLRasterizationRateMapDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Label { get; set; } public virtual nuint 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, nuint layerCount, out MTLRasterizationRateLayerDescriptor layers); public virtual MTLRasterizationRateLayerDescriptor GetLayer (nuint layerIndex); public virtual void SetLayer (MTLRasterizationRateLayerDescriptor layer, nuint layerIndex); } ``` #### New Type: Metal.MTLRasterizationRateSampleArray ```csharp public class MTLRasterizationRateSampleArray : Foundation.NSObject { // constructors public MTLRasterizationRateSampleArray (); protected MTLRasterizationRateSampleArray (Foundation.NSObjectFlag t); protected MTLRasterizationRateSampleArray (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSNumber GetObject (nuint index); public virtual void SetObject (Foundation.NSNumber value, nuint index); } ``` #### New Type: Metal.MTLRenderPipelineFunctionsDescriptor ```csharp public class MTLRenderPipelineFunctionsDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MTLRenderPipelineFunctionsDescriptor (); protected MTLRenderPipelineFunctionsDescriptor (Foundation.NSObjectFlag t); protected MTLRenderPipelineFunctionsDescriptor (IntPtr handle); // properties public override IntPtr 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.MTLResourceId ```csharp public struct MTLResourceId { // fields public ulong Impl; } ``` #### New Type: Metal.MTLResourceStateCommandEncoder_Extensions ```csharp public static class MTLResourceStateCommandEncoder_Extensions { // methods public static void MoveTextureMappings (this IMTLResourceStateCommandEncoder This, IMTLTexture sourceTexture, nuint sourceSlice, nuint sourceLevel, MTLOrigin sourceOrigin, MTLSize sourceSize, IMTLTexture destinationTexture, nuint destinationSlice, nuint destinationLevel, MTLOrigin destinationOrigin); } ``` #### New Type: Metal.MTLResourceStatePassDescriptor ```csharp public class MTLResourceStatePassDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MTLResourceStatePassDescriptor (Foundation.NSObjectFlag t); protected MTLResourceStatePassDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual MTLResourceStatePassSampleBufferAttachmentDescriptorArray SampleBufferAttachments { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MTLResourceStatePassDescriptor Create (); } ``` #### New Type: Metal.MTLResourceStatePassSampleBufferAttachmentDescriptor ```csharp public class MTLResourceStatePassSampleBufferAttachmentDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public MTLResourceStatePassSampleBufferAttachmentDescriptor (); protected MTLResourceStatePassSampleBufferAttachmentDescriptor (Foundation.NSObjectFlag t); protected MTLResourceStatePassSampleBufferAttachmentDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nuint EndOfEncoderSampleIndex { get; set; } public virtual IMTLCounterSampleBuffer SampleBuffer { get; set; } public virtual nuint StartOfEncoderSampleIndex { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: Metal.MTLResourceStatePassSampleBufferAttachmentDescriptorArray ```csharp public class MTLResourceStatePassSampleBufferAttachmentDescriptorArray : Foundation.NSObject { // constructors public MTLResourceStatePassSampleBufferAttachmentDescriptorArray (); protected MTLResourceStatePassSampleBufferAttachmentDescriptorArray (Foundation.NSObjectFlag t); protected MTLResourceStatePassSampleBufferAttachmentDescriptorArray (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual MTLResourceStatePassSampleBufferAttachmentDescriptor GetObject (nuint attachmentIndex); public virtual void SetObject (MTLResourceStatePassSampleBufferAttachmentDescriptor attachment, nuint attachmentIndex); } ``` #### New Type: Metal.MTLSamplerState_Extensions ```csharp public static class MTLSamplerState_Extensions { // methods public static MTLResourceId GetGpuResourceId (this IMTLSamplerState This); } ``` #### New Type: Metal.MTLSparsePageSize ```csharp [Serializable] public enum MTLSparsePageSize { Size16 = 101, Size256 = 103, Size64 = 102, } ``` #### New Type: Metal.MTLSparseTextureMappingMode ```csharp [Serializable] [Flags] public enum MTLSparseTextureMappingMode { Map = 0, Unmap = 1, } ``` #### New Type: Metal.MTLSparseTextureRegionAlignmentMode ```csharp [Serializable] [Flags] public enum MTLSparseTextureRegionAlignmentMode { Inward = 1, Outward = 0, } ``` #### New Type: Metal.MTLTextureCompressionType ```csharp [Serializable] public enum MTLTextureCompressionType { Lossless = 0, Lossy = 1, } ``` #### New Type: Metal.MTLVertexAmplificationViewMapping ```csharp public struct MTLVertexAmplificationViewMapping { // fields public uint RenderTargetArrayIndexOffset; public uint ViewportArrayIndexOffset; } ``` #### New Type: Metal.MTLVisibleFunctionTableDescriptor ```csharp public class MTLVisibleFunctionTableDescriptor : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected MTLVisibleFunctionTableDescriptor (Foundation.NSObjectFlag t); protected MTLVisibleFunctionTableDescriptor (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nuint FunctionCount { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static MTLVisibleFunctionTableDescriptor Create (); } ``` #### New Type: Metal.MTLVisibleFunctionTable_Extensions ```csharp public static class MTLVisibleFunctionTable_Extensions { // methods public static MTLResourceId GetGpuResourceId (this IMTLVisibleFunctionTable This); } ``` ### Namespace MetalKit #### Type Changed: MetalKit.MTKTextureLoaderOptions Added property: ```csharp public bool? LoadAsArray { get; set; } ``` #### Type Changed: MetalKit.MTKView Added property: ```csharp public virtual Metal.MTLStorageMode DepthStencilStorageMode { get; set; } ``` ### Namespace MetalPerformanceShaders #### Type Changed: MetalPerformanceShaders.MPSCommandBuffer Added property: ```csharp public virtual Metal.IMTLResourceStateCommandEncoder ResourceStateCommandEncoder { get; } ``` Added methods: ```csharp 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: ```csharp public MDLMaterialProperty Item { get; } public MDLMaterialProperty Item { get; } ``` ### Namespace NaturalLanguage #### New Type: NaturalLanguage.NLContextualEmbedding ```csharp public class NLContextualEmbedding : Foundation.NSObject { // constructors protected NLContextualEmbedding (Foundation.NSObjectFlag t); protected NLContextualEmbedding (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nuint Dimension { get; } public virtual bool HasAvailableAssets { get; } public virtual string[] Languages { get; } public virtual nuint MaximumSequenceLength { get; } public virtual string ModelIdentifier { get; } public virtual nuint Revision { get; } public virtual string[] Scripts { get; } // methods public static NLContextualEmbedding[] Create (Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> values); public static NLContextualEmbedding CreateWithLanguage (string language); public static NLContextualEmbedding CreateWithModelIdentifier (string modelIdentifier); public static NLContextualEmbedding CreateWithScript (string script); public virtual NLContextualEmbeddingResult GetEmbeddingResult (string string, string language, out Foundation.NSError error); public virtual bool Load (out Foundation.NSError error); public virtual void RequestAssets (System.Action<NLContextualEmbeddingAssetsResult,Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task<NLContextualEmbeddingAssetsResult> RequestAssetsAsync (); public virtual void Unload (); } ``` #### New Type: NaturalLanguage.NLContextualEmbeddingAssetsResult ```csharp [Serializable] public enum NLContextualEmbeddingAssetsResult { Available = 0, Error = 2, NotAvailable = 1, } ``` #### New Type: NaturalLanguage.NLContextualEmbeddingResult ```csharp public class NLContextualEmbeddingResult : Foundation.NSObject { // constructors protected NLContextualEmbeddingResult (Foundation.NSObjectFlag t); protected NLContextualEmbeddingResult (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Language { get; } public virtual nuint SequenceLength { get; } public virtual string String { get; } // methods public virtual void EnumerateTokenVectors (Foundation.NSRange range, TokenVectorEnumeratorHandler enumerationHandler); public virtual nuint[] GetVector (nuint characterIndex, ref Foundation.NSRange tokenRange); } ``` #### New Type: NaturalLanguage.NLContextualEmebeddingKey ```csharp [Serializable] public enum NLContextualEmebeddingKey { Languages = 0, Revision = 2, Scripts = 1, } ``` #### New Type: NaturalLanguage.NLContextualEmebeddingKeyExtensions ```csharp public static class NLContextualEmebeddingKeyExtensions { // methods public static Foundation.NSString GetConstant (this NLContextualEmebeddingKey self); public static NLContextualEmebeddingKey GetValue (Foundation.NSString constant); } ``` #### New Type: NaturalLanguage.NLScript ```csharp [Serializable] public enum NLScript { Arabic = 1, Armenian = 2, Bengali = 3, CanadianAboriginalSyllabics = 4, Cherokee = 5, Cyrillic = 6, Devanagari = 7, Ethiopic = 8, Georgian = 9, Greek = 10, Gujarati = 11, Gurmukhi = 12, Hebrew = 13, Japanese = 14, Kannada = 15, Khmer = 16, Korean = 17, Lao = 18, Latin = 19, Malayalam = 20, Mongolian = 21, Myanmar = 22, Oriya = 23, SimplifiedChinese = 24, Sinhala = 25, Tamil = 26, Telugu = 27, Thai = 28, Tibetan = 29, TraditionalChinese = 30, Undetermined = 0, } ``` #### New Type: NaturalLanguage.NLScriptExtensions ```csharp public static class NLScriptExtensions { // methods public static Foundation.NSString GetConstant (this NLScript self); public static NLScript GetValue (Foundation.NSString constant); } ``` #### New Type: NaturalLanguage.TokenVectorEnumeratorHandler ```csharp public sealed delegate TokenVectorEnumeratorHandler : System.MulticastDelegate { // constructors public TokenVectorEnumeratorHandler (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (Foundation.NSArray<Foundation.NSNumber> tokenVector, Foundation.NSRange tokenRange, out bool stop, System.AsyncCallback callback, object object); public virtual void EndInvoke (out bool stop, System.IAsyncResult result); public virtual void Invoke (Foundation.NSArray<Foundation.NSNumber> tokenVector, Foundation.NSRange tokenRange, out bool stop); } ``` ### Namespace Network #### Type Changed: Network.NWPrivacyContext Added methods: ```csharp public void AddProxy (NWProxyConfig proxyConfig); public void ClearProxies (); ``` #### New Type: Network.NWProxyConfig ```csharp public class NWProxyConfig : CoreFoundation.NativeObject { // constructors public NWProxyConfig (IntPtr handle, bool owns); // 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 ```csharp public class NWRelayHop : CoreFoundation.NativeObject { // constructors public NWRelayHop (IntPtr handle, bool owns); // 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: ```diff -public const string SdkVersion = "16.4"; +public const string SdkVersion = "17.2"; -public const string Version = "16.4.0"; +public const string Version = "17.3.0"; ``` Added fields: ```csharp public static const string CinematicLibrary = "/System/Library/Frameworks/Cinematic.framework/Cinematic"; public static const string CoreMidiLibrary = "/System/Library/Frameworks/CoreMIDI.framework/CoreMIDI"; public static const string DeviceDiscoveryUILibrary = "/System/Library/Frameworks/DeviceDiscoveryUI.framework/DeviceDiscoveryUI"; public static const string NetworkExtensionLibrary = "/System/Library/Frameworks/NetworkExtension.framework/NetworkExtension"; public static const string PhaseLibrary = "/System/Library/Frameworks/PHASE.framework/PHASE"; public static const string SymbolsLibrary = "/System/Library/Frameworks/Symbols.framework/Symbols"; ``` #### New Type: ObjCRuntime.BlockCallbackAttribute ```csharp public class BlockCallbackAttribute : System.Attribute { // constructors public BlockCallbackAttribute (); } ``` #### New Type: ObjCRuntime.CCallbackAttribute ```csharp public class CCallbackAttribute : System.Attribute { // constructors public CCallbackAttribute (); } ``` ### Namespace Photos #### Type Changed: Photos.PHAssetResourceType Added value: ```csharp PhotoProxy = 19, ``` #### Type Changed: Photos.PHContentEditingOutput Added properties: ```csharp public virtual UniformTypeIdentifiers.UTType DefaultRenderedContentType { get; } public virtual UniformTypeIdentifiers.UTType[] SupportedRenderedContentTypes { get; } ``` Added method: ```csharp public virtual Foundation.NSUrl GetRenderedContentUrl (UniformTypeIdentifiers.UTType type, out Foundation.NSError error); ``` #### Type Changed: Photos.PHImageRequestOptions Added property: ```csharp public virtual bool AllowSecondaryDegradedImage { get; set; } ``` #### Type Changed: Photos.PHVideoRequestOptions Added interfaces: ```csharp Foundation.INSCopying ObjCRuntime.INativeObject System.IDisposable ``` Added method: ```csharp public virtual Foundation.NSObject Copy (Foundation.NSZone zone); ``` ### Namespace PhotosUI #### Type Changed: PhotosUI.PHLivePhotoView Added property: ```csharp public virtual CoreGraphics.CGRect ContentsRect { get; set; } ``` ### Namespace SceneKit #### Type Changed: SceneKit.SCNRenderer Added property: ```csharp public virtual CoreGraphics.CGColorSpace WorkingColorSpace { get; } ``` #### Type Changed: SceneKit.SCNSceneRenderer Added property: ```csharp public virtual CoreGraphics.CGColorSpace WorkingColorSpace { get; } ``` #### Type Changed: SceneKit.SCNSceneRenderer_Extensions Added method: ```csharp public static CoreGraphics.CGColorSpace GetWorkingColorSpace (this ISCNSceneRenderer This); ``` #### Type Changed: SceneKit.SCNView Added property: ```csharp public virtual CoreGraphics.CGColorSpace WorkingColorSpace { get; } ``` ### Namespace Security #### Type Changed: Security.SecKeyAlgorithm Added values: ```csharp EcdsaSignatureDigestRfc4754 = 76, EcdsaSignatureDigestRfc4754Sha1 = 77, EcdsaSignatureDigestRfc4754Sha224 = 78, EcdsaSignatureDigestRfc4754Sha256 = 79, EcdsaSignatureDigestRfc4754Sha384 = 80, EcdsaSignatureDigestRfc4754Sha512 = 81, EcdsaSignatureMessageRfc4754Sha1 = 82, EcdsaSignatureMessageRfc4754Sha224 = 83, EcdsaSignatureMessageRfc4754Sha256 = 84, EcdsaSignatureMessageRfc4754Sha384 = 85, EcdsaSignatureMessageRfc4754Sha512 = 86, ``` ### Namespace ShazamKit #### Type Changed: ShazamKit.SHErrorCode Added value: ```csharp MediaItemFetchFailed = 600, ``` #### Type Changed: ShazamKit.SHMediaItem Added property: ```csharp public virtual Foundation.NSDate CreationDate { get; } ``` #### Type Changed: ShazamKit.SHMediaItemProperty Added value: ```csharp CreationDate = 16, ``` ### Namespace StoreKit #### Type Changed: StoreKit.SKCloudServiceController Added constructor: ```csharp public SKCloudServiceController (); ``` #### Type Changed: StoreKit.SKStoreProductParameterKey Added property: ```csharp public static Foundation.NSString AdNetworkSourceIdentifier { get; } ``` ### Namespace UIKit #### Type Changed: UIKit.NSCollectionLayoutDimension Added property: ```csharp public virtual bool IsUniformAcrossSiblings { get; } ``` Added method: ```csharp public static NSCollectionLayoutDimension CreateUniformAcrossSiblings (nfloat estimatedDimension); ``` #### Type Changed: UIKit.NSCollectionLayoutSection Added property: ```csharp public virtual UICollectionLayoutSectionOrthogonalScrollingProperties OrthogonalScrollingProperties { get; } ``` #### Type Changed: UIKit.NSTextLayoutFragment Added methods: ```csharp public virtual NSTextLineFragment GetTextLineFragment (nfloat verticalOffset, bool requiresExactMatch); public virtual NSTextLineFragment GetTextLineFragment (INSTextLocation textLocation, bool isUpstreamAffinity); ``` #### Type Changed: UIKit.UIAction Added property: ```csharp public virtual UIImage SelectedImage { get; set; } ``` #### Type Changed: UIKit.UIApplication Added method: ```csharp public virtual void ActivateSceneSession (UISceneSessionActivationRequest request, System.Action<Foundation.NSError> errorHandler); ``` #### Type Changed: UIKit.UIBarButtonItem Added properties: ```csharp public virtual bool ChangesSelectionAsPrimaryAction { get; set; } public virtual UIMenu Menu { get; set; } public virtual UIContextMenuConfigurationElementOrder PreferredMenuElementOrder { get; set; } public virtual bool SymbolAnimationEnabled { get; set; } ``` Added methods: ```csharp public virtual void AddSymbolEffect (Symbols.NSSymbolEffect symbolEffect); public virtual void AddSymbolEffect (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options); public virtual void AddSymbolEffect (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options, bool animated); public virtual void RemoveAllSymbolEffects (); public virtual void RemoveAllSymbolEffects (Symbols.NSSymbolEffectOptions options); public virtual void RemoveAllSymbolEffects (Symbols.NSSymbolEffectOptions options, bool animated); public virtual void RemoveSymbolEffect (Symbols.NSSymbolEffect symbolEffect); public virtual void RemoveSymbolEffect (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options); public virtual void RemoveSymbolEffect (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options, bool animated); public virtual void SetSymbolImage (UIImage symbolImage, Symbols.NSSymbolContentTransition transition); public virtual void SetSymbolImage (UIImage symbolImage, Symbols.NSSymbolContentTransition transition, Symbols.NSSymbolEffectOptions options); ``` #### Type Changed: UIKit.UIBarItem Obsoleted properties: ```diff [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitAdjustable { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitAllowsDirectInteraction { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitButton { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitCausesPageTurn { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitHeader { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitImage { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitKeyboardKey { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitLink { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitNone { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitNotEnabled { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitPlaysSound { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSearchField { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSelected { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitStartsMediaSession { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitStaticText { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSummaryElement { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitTabBar { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitUpdatesFrequently { get; } ``` Added properties: ```csharp public virtual UIAccessibilityDirectTouchOptions AccessibilityDirectTouchOptions { get; set; } public static Foundation.NSString SpeechAttributeAnnouncementPriority { get; } ``` #### Type Changed: UIKit.UIButton Added properties: ```csharp public virtual bool ChangesSelectionAsPrimaryAction { get; set; } public virtual UIMenu Menu { get; set; } public virtual UIContextMenuConfigurationElementOrder PreferredMenuElementOrder { get; set; } ``` #### Type Changed: UIKit.UICollectionView Added property: ```csharp public virtual UIContextMenuInteraction ContextMenuInteraction { get; } ``` #### Type Changed: UIKit.UICollectionViewController Added methods: ```csharp public virtual UIContextMenuConfiguration GetContextMenuConfiguration (UICollectionView collectionView, Foundation.NSIndexPath[] indexPaths, CoreGraphics.CGPoint point); public virtual UITargetedPreview GetContextMenuConfigurationDismissalPreview (UICollectionView collectionView, UIContextMenuConfiguration configuration, Foundation.NSIndexPath indexPath); public virtual UITargetedPreview GetContextMenuConfigurationHighlightPreview (UICollectionView collectionView, UIContextMenuConfiguration configuration, Foundation.NSIndexPath indexPath); public virtual void WillDisplayContextMenu (UICollectionView collectionView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public virtual void WillEndContextMenuInteraction (UICollectionView collectionView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); ``` #### Type Changed: UIKit.UICollectionViewDelegate Added methods: ```csharp public virtual UIContextMenuConfiguration GetContextMenuConfiguration (UICollectionView collectionView, Foundation.NSIndexPath[] indexPaths, CoreGraphics.CGPoint point); public virtual UITargetedPreview GetContextMenuConfigurationDismissalPreview (UICollectionView collectionView, UIContextMenuConfiguration configuration, Foundation.NSIndexPath indexPath); public virtual UITargetedPreview GetContextMenuConfigurationHighlightPreview (UICollectionView collectionView, UIContextMenuConfiguration configuration, Foundation.NSIndexPath indexPath); public virtual void WillDisplayContextMenu (UICollectionView collectionView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public virtual void WillEndContextMenuInteraction (UICollectionView collectionView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); ``` #### Type Changed: UIKit.UICollectionViewDelegate_Extensions Added methods: ```csharp public static UIContextMenuConfiguration GetContextMenuConfiguration (this IUICollectionViewDelegate This, UICollectionView collectionView, Foundation.NSIndexPath[] indexPaths, CoreGraphics.CGPoint point); public static UITargetedPreview GetContextMenuConfigurationDismissalPreview (this IUICollectionViewDelegate This, UICollectionView collectionView, UIContextMenuConfiguration configuration, Foundation.NSIndexPath indexPath); public static UITargetedPreview GetContextMenuConfigurationHighlightPreview (this IUICollectionViewDelegate This, UICollectionView collectionView, UIContextMenuConfiguration configuration, Foundation.NSIndexPath indexPath); public static void WillDisplayContextMenu (this IUICollectionViewDelegate This, UICollectionView collectionView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public static void WillEndContextMenuInteraction (this IUICollectionViewDelegate This, UICollectionView collectionView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); ``` #### Type Changed: UIKit.UICollectionViewSource Added methods: ```csharp public virtual UIContextMenuConfiguration GetContextMenuConfiguration (UICollectionView collectionView, Foundation.NSIndexPath[] indexPaths, CoreGraphics.CGPoint point); public virtual UITargetedPreview GetContextMenuConfigurationDismissalPreview (UICollectionView collectionView, UIContextMenuConfiguration configuration, Foundation.NSIndexPath indexPath); public virtual UITargetedPreview GetContextMenuConfigurationHighlightPreview (UICollectionView collectionView, UIContextMenuConfiguration configuration, Foundation.NSIndexPath indexPath); public virtual void WillDisplayContextMenu (UICollectionView collectionView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public virtual void WillEndContextMenuInteraction (UICollectionView collectionView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); ``` #### Type Changed: UIKit.UICommand Added property: ```csharp public virtual UIImage SelectedImage { get; set; } ``` #### Type Changed: UIKit.UIControl Added interfaces: ```csharp ObjCRuntime.INativeObject System.IDisposable IUIContextMenuInteractionDelegate ``` Added properties: ```csharp public virtual UIContextMenuInteraction ContextMenuInteraction { get; } public virtual bool ContextMenuInteractionEnabled { get; set; } public virtual bool ShowsMenuAsPrimaryAction { get; set; } public virtual bool SymbolAnimationEnabled { get; set; } ``` Added methods: ```csharp public virtual UIContextMenuConfiguration GetConfigurationForMenu (UIContextMenuInteraction interaction, CoreGraphics.CGPoint location); public virtual UITargetedPreview GetDismissalPreview (UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, Foundation.INSCopying identifier); public virtual UITargetedPreview GetHighlightPreview (UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, Foundation.INSCopying identifier); public virtual CoreGraphics.CGPoint GetMenuAttachmentPoint (UIContextMenuConfiguration configuration); public virtual void WillDisplayMenu (UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public virtual void WillEnd (UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); ``` #### Type Changed: UIKit.UIFontTextStyle Added values: ```csharp ExtraLargeTitle = 11, ExtraLargeTitle2 = 12, ``` #### Type Changed: UIKit.UIGraphicsImageRendererFormat Added property: ```csharp public virtual bool SupportsHighDynamicRange { get; } ``` #### Type Changed: UIKit.UIImage Obsoleted properties: ```diff [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitAdjustable { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitAllowsDirectInteraction { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitButton { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitCausesPageTurn { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitHeader { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitImage { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitKeyboardKey { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitLink { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitNone { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitNotEnabled { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitPlaysSound { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSearchField { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSelected { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitStartsMediaSession { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitStaticText { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSummaryElement { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitTabBar { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitUpdatesFrequently { get; } ``` Added properties: ```csharp public virtual UIAccessibilityDirectTouchOptions AccessibilityDirectTouchOptions { get; set; } public Foundation.NSData HeicRepresentation { get; } public virtual UIImage ImageRestrictedToStandardDynamicRange { get; } public virtual bool IsHighDynamicRange { get; } public static Foundation.NSString SpeechAttributeAnnouncementPriority { get; } ``` #### Type Changed: UIKit.UIImageConfiguration Added property: ```csharp public virtual Foundation.NSLocale Locale { get; } ``` Added methods: ```csharp public static UIImageConfiguration CreateConfiguration (Foundation.NSLocale locale); public static UIImageConfiguration CreateConfiguration (UITraitCollection traitCollection); public virtual UIImageConfiguration GetConfiguration (Foundation.NSLocale locale); ``` #### Type Changed: UIKit.UIImageView Added properties: ```csharp public virtual UIImageDynamicRange ImageDynamicRange { get; } public virtual UIImageDynamicRange PreferredImageDynamicRange { get; set; } ``` Added methods: ```csharp public virtual void AddSymbolEffect (Symbols.NSSymbolEffect symbolEffect); public virtual void AddSymbolEffect (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options); public virtual void AddSymbolEffect (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options, bool animated); public virtual void AddSymbolEffect (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options, bool animated, System.Action<UISymbolEffectCompletionContext> completionHandler); public virtual System.Threading.Tasks.Task<UISymbolEffectCompletionContext> AddSymbolEffectAsync (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options, bool animated); public virtual void RemoveAllSymbolEffects (); public virtual void RemoveAllSymbolEffects (Symbols.NSSymbolEffectOptions options); public virtual void RemoveAllSymbolEffects (Symbols.NSSymbolEffectOptions options, bool animated); public virtual void RemoveSymbolEffect (Symbols.NSSymbolEffect symbolEffect); public virtual void RemoveSymbolEffect (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options); public virtual void RemoveSymbolEffect (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options, bool animated); public virtual void RemoveSymbolEffect (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options, bool animated, System.Action<UISymbolEffectCompletionContext> completionHandler); public virtual System.Threading.Tasks.Task<UISymbolEffectCompletionContext> RemoveSymbolEffectAsync (Symbols.NSSymbolEffect symbolEffect, Symbols.NSSymbolEffectOptions options, bool animated); public virtual void SetSymbolImage (UIImage symbolImage, Symbols.NSSymbolContentTransition transition); public virtual void SetSymbolImage (UIImage symbolImage, Symbols.NSSymbolContentTransition transition, Symbols.NSSymbolEffectOptions options); public virtual void SetSymbolImage (UIImage symbolImage, Symbols.NSSymbolContentTransition transition, Symbols.NSSymbolEffectOptions options, System.Action<UISymbolEffectCompletionContext> completionHandler); public virtual System.Threading.Tasks.Task<UISymbolEffectCompletionContext> SetSymbolImageAsync (UIImage symbolImage, Symbols.NSSymbolContentTransition transition, Symbols.NSSymbolEffectOptions options); ``` #### Type Changed: UIKit.UILabel Added interface: ```csharp IUILetterformAwareAdjusting ``` Added properties: ```csharp public virtual UILabelVibrancy PreferredVibrancy { get; set; } public virtual UILetterformAwareSizingRule SizingRule { get; set; } ``` #### Type Changed: UIKit.UILabel.UILabelAppearance Added property: ```csharp public virtual UILabelVibrancy PreferredVibrancy { get; set; } ``` #### Type Changed: UIKit.UIMenuElementSize Added value: ```csharp Automatic = -1, ``` #### Type Changed: UIKit.UIMenuIdentifier Added value: ```csharp AutoFill = 47, ``` #### Type Changed: UIKit.UIMenuOptions Added value: ```csharp DisplayAsPalette = 128, ``` #### Type Changed: UIKit.UINavigationItemLargeTitleDisplayMode Added value: ```csharp Inline = 3, ``` #### Type Changed: UIKit.UIPageControl Added property: ```csharp public virtual UIPageControlProgress Progress { get; set; } ``` #### Type Changed: UIKit.UIPresentationController Added interface: ```csharp IUITraitChangeObservable ``` Added property: ```csharp public virtual IUITraitOverrides TraitOverrides { get; } ``` Added methods: ```csharp [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Selector)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, ObjCRuntime.Selector action); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Action<IUITraitEnvironment, UITraitCollection>)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], NSObject, Selector)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, Foundation.NSObject target, ObjCRuntime.Selector action); public virtual void UnregisterForTraitChanges (IUITraitChangeRegistration registration); ``` #### Type Changed: UIKit.UISearchBar Added interface: ```csharp IUILookToDictateCapable ``` Added property: ```csharp public virtual UITextInlinePredictionType InlinePredictionType { get; set; } ``` #### Type Changed: UIKit.UISpringTimingParameters Added constructors: ```csharp public UISpringTimingParameters (double duration, nfloat bounce); public UISpringTimingParameters (double duration, nfloat bounce, CoreGraphics.CGVector velocity); ``` #### Type Changed: UIKit.UITableView Added property: ```csharp public virtual UIContextMenuInteraction ContextMenuInteraction { get; } ``` #### Type Changed: UIKit.UITableViewController Added methods: ```csharp public virtual UIContextMenuConfiguration GetContextMenuConfiguration (UITableView tableView, Foundation.NSIndexPath indexPath, CoreGraphics.CGPoint point); public virtual UITargetedPreview GetPreviewForDismissingContextMenu (UITableView tableView, UIContextMenuConfiguration configuration); public virtual UITargetedPreview GetPreviewForHighlightingContextMenu (UITableView tableView, UIContextMenuConfiguration configuration); public virtual void WillDisplayContextMenu (UITableView tableView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public virtual void WillEndContextMenuInteraction (UITableView tableView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); ``` #### Type Changed: UIKit.UITableViewDelegate Added methods: ```csharp public virtual UIContextMenuConfiguration GetContextMenuConfiguration (UITableView tableView, Foundation.NSIndexPath indexPath, CoreGraphics.CGPoint point); public virtual UITargetedPreview GetPreviewForDismissingContextMenu (UITableView tableView, UIContextMenuConfiguration configuration); public virtual UITargetedPreview GetPreviewForHighlightingContextMenu (UITableView tableView, UIContextMenuConfiguration configuration); public virtual void WillDisplayContextMenu (UITableView tableView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public virtual void WillEndContextMenuInteraction (UITableView tableView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); ``` #### Type Changed: UIKit.UITableViewDelegate_Extensions Added methods: ```csharp public static UIContextMenuConfiguration GetContextMenuConfiguration (this IUITableViewDelegate This, UITableView tableView, Foundation.NSIndexPath indexPath, CoreGraphics.CGPoint point); public static UITargetedPreview GetPreviewForDismissingContextMenu (this IUITableViewDelegate This, UITableView tableView, UIContextMenuConfiguration configuration); public static UITargetedPreview GetPreviewForHighlightingContextMenu (this IUITableViewDelegate This, UITableView tableView, UIContextMenuConfiguration configuration); public static void WillDisplayContextMenu (this IUITableViewDelegate This, UITableView tableView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public static void WillEndContextMenuInteraction (this IUITableViewDelegate This, UITableView tableView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); ``` #### Type Changed: UIKit.UITableViewSource Added methods: ```csharp public virtual UIContextMenuConfiguration GetContextMenuConfiguration (UITableView tableView, Foundation.NSIndexPath indexPath, CoreGraphics.CGPoint point); public virtual UITargetedPreview GetPreviewForDismissingContextMenu (UITableView tableView, UIContextMenuConfiguration configuration); public virtual UITargetedPreview GetPreviewForHighlightingContextMenu (UITableView tableView, UIContextMenuConfiguration configuration); public virtual void WillDisplayContextMenu (UITableView tableView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public virtual void WillEndContextMenuInteraction (UITableView tableView, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); ``` #### Type Changed: UIKit.UITextContentType Added properties: ```csharp public static Foundation.NSString Birthdate { get; } public static Foundation.NSString BirthdateDay { get; } public static Foundation.NSString BirthdateMonth { get; } public static Foundation.NSString BirthdateYear { get; } public static Foundation.NSString CreditCardExpiration { get; } public static Foundation.NSString CreditCardExpirationMonth { get; } public static Foundation.NSString CreditCardExpirationYear { get; } public static Foundation.NSString CreditCardFamilyName { get; } public static Foundation.NSString CreditCardGivenName { get; } public static Foundation.NSString CreditCardMiddleName { get; } public static Foundation.NSString CreditCardName { get; } public static Foundation.NSString CreditCardSecurityCode { get; } public static Foundation.NSString CreditCardType { get; } ``` #### Type Changed: UIKit.UITextDocumentProxy Added property: ```csharp public virtual UITextInlinePredictionType InlinePredictionType { get; set; } ``` #### Type Changed: UIKit.UITextField Added interface: ```csharp IUILetterformAwareAdjusting ``` Added properties: ```csharp public virtual UITextInlinePredictionType InlinePredictionType { get; set; } public virtual UILetterformAwareSizingRule SizingRule { get; set; } ``` #### Type Changed: UIKit.UITextInputTraits_Extensions Added methods: ```csharp public static UITextInlinePredictionType GetInlinePredictionType (this IUITextInputTraits This); public static void SetInlinePredictionType (this IUITextInputTraits This, UITextInlinePredictionType value); ``` #### Type Changed: UIKit.UITextView Added interface: ```csharp IUILetterformAwareAdjusting ``` Obsoleted properties: ```diff [Obsolete ("Use 'TypingAttributes2' instead, because this property will return null instead of an empty dictionary.")] public virtual Foundation.NSDictionary TypingAttributes { get; set; } ``` Added properties: ```csharp public virtual UITextViewBorderStyle BorderStyle { get; set; } public virtual UITextInlinePredictionType InlinePredictionType { get; set; } public virtual UILetterformAwareSizingRule SizingRule { get; set; } public Foundation.NSDictionary TypingAttributes2 { get; set; } ``` #### Type Changed: UIKit.UITraitCollection Added properties: ```csharp public virtual UIImageDynamicRange ImageDynamicRange { get; } public virtual UISceneCaptureState SceneCaptureState { get; } [Obsolete ("Use 'SystemTraitsAffectingColorAppearance2' instead.")] public static IUITraitDefinition[] SystemTraitsAffectingColorAppearance { get; } public ObjCRuntime.Class[] SystemTraitsAffectingColorAppearance2 { get; } [Obsolete ("Use 'SystemTraitsAffectingImageLookup2' instead.")] public static IUITraitDefinition[] SystemTraitsAffectingImageLookup { get; } public ObjCRuntime.Class[] SystemTraitsAffectingImageLookup2 { get; } public virtual string TypesettingLanguage { get; } ``` Added methods: ```csharp public static UITraitCollection FromSceneCaptureState (UISceneCaptureState sceneCaptureState); [Obsolete ("Use 'GetChangedTraits2' instead.")] public virtual Foundation.NSSet<IUITraitDefinition> GetChangedTraits (UITraitCollection traitCollection); public Foundation.NSSet<ObjCRuntime.Class> GetChangedTraits2 (UITraitCollection traitCollection); public virtual Foundation.NSObject GetObject (IUIObjectTraitDefinition trait); public static UITraitCollection GetTraitCollection (string language); public static UITraitCollection GetTraitCollection (UIImageDynamicRange imageDynamicRange); public virtual UITraitCollection GetTraitCollectionByModifyingTraits (System.Func<IUIMutableTraits> mutations); public virtual UITraitCollection GetTraitCollectionByReplacingObject (Foundation.NSObject object, IUIObjectTraitDefinition trait); public virtual UITraitCollection GetTraitCollectionByReplacingValue (nfloat value, IUICGFloatTraitDefinition trait); public static UITraitCollection GetTraitCollectionWithObject (Foundation.NSObject object, IUIObjectTraitDefinition trait); public static UITraitCollection GetTraitCollectionWithTraits (System.Func<IUIMutableTraits> mutations); public static UITraitCollection GetTraitCollectionWithValue (nfloat value, IUICGFloatTraitDefinition trait); public static UITraitCollection GetTraitCollectionWithValue (nint value, IUINSIntegerTraitDefinition trait); public virtual nfloat GetValueForTrait (IUICGFloatTraitDefinition trait); public virtual nint GetValueForTrait (IUINSIntegerTraitDefinition trait); public virtual UITraitCollection TraitCollectionByReplacingValue (nint value, IUINSIntegerTraitDefinition trait); ``` #### Type Changed: UIKit.UIUserInterfaceIdiom Added value: ```csharp Vision = 6, ``` #### Type Changed: UIKit.UIView Added interface: ```csharp IUITraitChangeObservable ``` Obsoleted properties: ```diff [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitAdjustable { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitAllowsDirectInteraction { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitButton { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitCausesPageTurn { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitHeader { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitImage { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitKeyboardKey { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitLink { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitNone { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitNotEnabled { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitPlaysSound { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSearchField { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSelected { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitStartsMediaSession { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitStaticText { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitSummaryElement { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitTabBar { get; } [Obsolete ("Use 'UIAccessibilityTraits' enum instead.")] public static long TraitUpdatesFrequently { get; } ``` Added properties: ```csharp public virtual UIAccessibilityDirectTouchOptions AccessibilityDirectTouchOptions { get; set; } public static Foundation.NSString SpeechAttributeAnnouncementPriority { get; } public virtual IUITraitOverrides TraitOverrides { get; } ``` Added methods: ```csharp public static void Animate (double duration, nfloat bounce, nfloat velocity, double delay, UIViewAnimationOptions options, System.Action animations, System.Action<bool> completion); public static System.Threading.Tasks.Task<bool> AnimateAsync (double duration, nfloat bounce, nfloat velocity, double delay, UIViewAnimationOptions options, System.Action animations); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Selector)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, ObjCRuntime.Selector action); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Action<IUITraitEnvironment, UITraitCollection>)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], NSObject, Selector)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, Foundation.NSObject target, ObjCRuntime.Selector action); public virtual void UnregisterForTraitChanges (IUITraitChangeRegistration registration); public virtual void UpdateTraitsIfNeeded (); ``` #### Type Changed: UIKit.UIViewController Added interface: ```csharp IUITraitChangeObservable ``` Added properties: ```csharp public virtual IUIContentConfiguration ContentUnavailableConfiguration { get; set; } public virtual UIContentUnavailableConfigurationState ContentUnavailableConfigurationState { get; } public virtual IUITraitOverrides TraitOverrides { get; } ``` Added methods: ```csharp [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Selector)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, ObjCRuntime.Selector action); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Action<IUITraitEnvironment, UITraitCollection>)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], NSObject, Selector)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, Foundation.NSObject target, ObjCRuntime.Selector action); public virtual void SetNeedsUpdateContentUnavailableConfiguration (); public virtual void UnregisterForTraitChanges (IUITraitChangeRegistration registration); public virtual void UpdateContentUnavailableConfiguration (UIContentUnavailableConfigurationState state); public virtual void UpdateTraitsIfNeeded (); public virtual void ViewIsAppearing (bool animated); ``` #### Type Changed: UIKit.UIWindowScene Added interfaces: ```csharp ObjCRuntime.INativeObject System.IDisposable IUITraitChangeObservable ``` Added property: ```csharp public virtual IUITraitOverrides TraitOverrides { get; } ``` Added methods: ```csharp [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Selector)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, ObjCRuntime.Selector action); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Action<IUITraitEnvironment, UITraitCollection>)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], NSObject, Selector)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, Foundation.NSObject target, ObjCRuntime.Selector action); public virtual void UnregisterForTraitChanges (IUITraitChangeRegistration registration); ``` #### Type Changed: UIKit.UIWindowSceneActivationRequestOptions Added property: ```csharp public virtual UIWindowScenePlacement Placement { get; set; } ``` #### New Type: UIKit.IUICGFloatTraitDefinition ```csharp public interface IUICGFloatTraitDefinition : ObjCRuntime.INativeObject, System.IDisposable, IUITraitDefinition { } ``` #### New Type: UIKit.IUIContextMenuInteractionAnimating ```csharp public interface IUIContextMenuInteractionAnimating : ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual UIViewController PreviewViewController { get; } // methods public abstract void AddAnimations (System.Action animations); public abstract void AddCompletion (System.Action completion); } ``` #### New Type: UIKit.IUIContextMenuInteractionDelegate ```csharp public interface IUIContextMenuInteractionDelegate : ObjCRuntime.INativeObject, System.IDisposable { // methods public abstract UIContextMenuConfiguration GetConfigurationForMenu (UIContextMenuInteraction interaction, CoreGraphics.CGPoint location); } ``` #### New Type: UIKit.IUILetterformAwareAdjusting ```csharp public interface IUILetterformAwareAdjusting : ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual UILetterformAwareSizingRule SizingRule { get; set; } } ``` #### New Type: UIKit.IUILookToDictateCapable ```csharp public interface IUILookToDictateCapable : ObjCRuntime.INativeObject, System.IDisposable { } ``` #### New Type: UIKit.IUIMutableTraits ```csharp public interface IUIMutableTraits : ObjCRuntime.INativeObject, System.IDisposable { // properties public virtual UIAccessibilityContrast AccessibilityContrast { get; set; } public virtual UIUserInterfaceActiveAppearance ActiveAppearance { get; set; } public virtual UIDisplayGamut DisplayGamut { get; set; } public virtual nfloat DisplayScale { get; set; } public virtual UIForceTouchCapability ForceTouchCapability { get; set; } public virtual UIUserInterfaceSizeClass HorizontalSizeClass { get; set; } public virtual UIImageDynamicRange ImageDynamicRange { get; set; } public virtual UITraitEnvironmentLayoutDirection LayoutDirection { get; set; } public virtual UILegibilityWeight LegibilityWeight { get; set; } public virtual string PreferredContentSizeCategory { get; set; } public virtual UISceneCaptureState SceneCaptureState { get; set; } public virtual UINSToolbarItemPresentationSize ToolbarItemPresentationSize { get; set; } public virtual string TypesettingLanguage { get; set; } public virtual UIUserInterfaceIdiom UserInterfaceIdiom { get; set; } public virtual UIUserInterfaceStyle UserInterfaceStyle { get; set; } public virtual UIUserInterfaceSizeClass VerticalSizeClass { get; set; } // methods public abstract Foundation.NSObject GetObject (IUIObjectTraitDefinition trait); public abstract nfloat GetValue (IUICGFloatTraitDefinition trait); public abstract nint GetValue (IUINSIntegerTraitDefinition trait); public abstract void SetObject (Foundation.NSObject object, IUIObjectTraitDefinition trait); public abstract void SetValue (nfloat value, IUICGFloatTraitDefinition trait); public abstract void SetValue (nint value, IUINSIntegerTraitDefinition trait); } ``` #### New Type: UIKit.IUINSIntegerTraitDefinition ```csharp public interface IUINSIntegerTraitDefinition : ObjCRuntime.INativeObject, System.IDisposable, IUITraitDefinition { } ``` #### New Type: UIKit.IUIObjectTraitDefinition ```csharp public interface IUIObjectTraitDefinition : ObjCRuntime.INativeObject, System.IDisposable, IUITraitDefinition { } ``` #### New Type: UIKit.IUIPageControlProgressDelegate ```csharp public interface IUIPageControlProgressDelegate : ObjCRuntime.INativeObject, System.IDisposable { } ``` #### New Type: UIKit.IUIPageControlTimerProgressDelegate ```csharp public interface IUIPageControlTimerProgressDelegate : ObjCRuntime.INativeObject, System.IDisposable, IUIPageControlProgressDelegate { } ``` #### New Type: UIKit.IUITextCursorView ```csharp public interface IUITextCursorView : ObjCRuntime.INativeObject, System.IDisposable, IUICoordinateSpace { // properties public virtual bool Blinking { get; set; } // methods public abstract void ResetBlinkAnimation (); } ``` #### New Type: UIKit.IUITextSelectionDisplayInteractionDelegate ```csharp public interface IUITextSelectionDisplayInteractionDelegate : ObjCRuntime.INativeObject, System.IDisposable { } ``` #### New Type: UIKit.IUITextSelectionHandleView ```csharp public interface IUITextSelectionHandleView : ObjCRuntime.INativeObject, System.IDisposable, IUICoordinateSpace { // properties public virtual UIBezierPath CustomShape { get; set; } public virtual NSDirectionalRectEdge Direction { get; set; } public virtual bool Vertical { get; } // methods public abstract CoreGraphics.CGRect GetPreferredFrame (CoreGraphics.CGRect rect); } ``` #### New Type: UIKit.IUITextSelectionHighlightView ```csharp public interface IUITextSelectionHighlightView : ObjCRuntime.INativeObject, System.IDisposable, IUICoordinateSpace { // properties public virtual UITextSelectionRect[] SelectionRects { get; set; } } ``` #### New Type: UIKit.IUITraitChangeObservable ```csharp public interface IUITraitChangeObservable : ObjCRuntime.INativeObject, System.IDisposable { // methods public static IntPtr NativeHandle_objc_msgSend_NativeHandle_BlockLiteral (IntPtr receiver, IntPtr selector, IntPtr arg1, ObjCRuntime.BlockLiteral* arg2); public static IntPtr NativeHandle_objc_msgSend_NativeHandle_NativeHandle (IntPtr receiver, IntPtr selector, IntPtr arg1, IntPtr arg2); public static IntPtr NativeHandle_objc_msgSend_NativeHandle_NativeHandle_NativeHandle (IntPtr receiver, IntPtr selector, IntPtr arg1, IntPtr arg2, IntPtr arg3); public virtual IUITraitChangeRegistration RegisterForTraitChanges<T> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2, T3> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); public virtual IUITraitChangeRegistration RegisterForTraitChanges<T1, T2, T3, T4> (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); public virtual IUITraitChangeRegistration RegisterForTraitChanges (ObjCRuntime.Class[] traits, ObjCRuntime.Selector action); public virtual IUITraitChangeRegistration RegisterForTraitChanges (ObjCRuntime.Class[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler, System.Type[] traits); public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, ObjCRuntime.Selector action); public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Selector)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, ObjCRuntime.Selector action); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Action<IUITraitEnvironment, UITraitCollection>)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); public virtual IUITraitChangeRegistration RegisterForTraitChanges (ObjCRuntime.Class[] traits, Foundation.NSObject target, ObjCRuntime.Selector action); public virtual IUITraitChangeRegistration RegisterForTraitChanges (System.Type[] traits, Foundation.NSObject target, ObjCRuntime.Selector action); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], NSObject, Selector)' method instead.")] public virtual IUITraitChangeRegistration RegisterForTraitChanges (IUITraitDefinition[] traits, Foundation.NSObject target, ObjCRuntime.Selector action); public static ObjCRuntime.Class[] ToClasses (System.Type[] traits); public static ObjCRuntime.Class[] ToClasses (IUITraitDefinition[] traits); public abstract void UnregisterForTraitChanges (IUITraitChangeRegistration registration); } ``` #### New Type: UIKit.IUITraitChangeRegistration ```csharp public interface IUITraitChangeRegistration : Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { } ``` #### New Type: UIKit.IUITraitDefinition ```csharp public interface IUITraitDefinition : ObjCRuntime.INativeObject, System.IDisposable { } ``` #### New Type: UIKit.IUITraitOverrides ```csharp public interface IUITraitOverrides : ObjCRuntime.INativeObject, System.IDisposable, IUIMutableTraits { // methods public bool ContainsTrait<T> (); public bool ContainsTrait (ObjCRuntime.Class trait); public bool ContainsTrait (System.Type trait); [Obsolete ("Use 'ContainsTrait<T> ()', 'ContainsTrait (Type)' or 'ContainsTrait (Class)' instead.")] public abstract bool ContainsTrait (IUITraitDefinition trait); public void RemoveTrait<T> (); public void RemoveTrait (ObjCRuntime.Class trait); public void RemoveTrait (System.Type trait); [Obsolete ("Use 'RemoveTrait<T> ()', 'RemoveTrait (Type)' or 'RemoveTrait (Class)' instead.")] public abstract void RemoveTrait (IUITraitDefinition trait); } ``` #### New Type: UIKit.NSAttributedStringDocumentReadingOptions ```csharp 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 ```csharp [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 ```csharp public static class NSAttributedStringDocumentTypeExtensions { // methods public static Foundation.NSString GetConstant (this NSAttributedStringDocumentType self); public static NSAttributedStringDocumentType GetValue (Foundation.NSString constant); } ``` #### New Type: UIKit.UIAccessibilityDirectTouchOptions ```csharp [Serializable] [Flags] public enum UIAccessibilityDirectTouchOptions { None = 0, RequiresActivation = 2, SilentOnTouch = 1, } ``` #### New Type: UIKit.UIAccessibilityPriority ```csharp [Serializable] public enum UIAccessibilityPriority { Default = 1, High = 0, Low = 2, } ``` #### New Type: UIKit.UIAccessibilityPriorityExtensions ```csharp public static class UIAccessibilityPriorityExtensions { // methods public static Foundation.NSString GetConstant (this UIAccessibilityPriority self); public static UIAccessibilityPriority GetValue (Foundation.NSString constant); } ``` #### New Type: UIKit.UIAccessibilityTraits ```csharp [Serializable] public enum UIAccessibilityTraits { Adjustable = 14, AllowsDirectInteraction = 15, Button = 1, CausesPageTurn = 16, Header = 3, Image = 5, KeyboardKey = 8, Link = 2, None = 0, NotEnabled = 11, PlaysSound = 7, SearchField = 4, Selected = 6, StartsMediaSession = 13, StaticText = 9, SummaryElement = 10, SupportsZoom = 18, TabBar = 17, ToggleButton = 19, UpdatesFrequently = 12, } ``` #### New Type: UIKit.UIAccessibilityTraitsExtensions ```csharp public static class UIAccessibilityTraitsExtensions { // methods public static Foundation.NSString GetConstant (this UIAccessibilityTraits self); public static UIAccessibilityTraits GetValue (Foundation.NSString constant); } ``` #### New Type: UIKit.UIBehavioralStyle ```csharp [Serializable] public enum UIBehavioralStyle { Automatic = 0, Mac = 2, Pad = 1, } ``` #### New Type: UIKit.UICGFloatTraitDefinition ```csharp public abstract class UICGFloatTraitDefinition : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUICGFloatTraitDefinition, IUITraitDefinition { // constructors protected UICGFloatTraitDefinition (); protected UICGFloatTraitDefinition (Foundation.NSObjectFlag t); protected UICGFloatTraitDefinition (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public static nfloat DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UICollectionLayoutSectionOrthogonalScrollingBounce ```csharp [Serializable] public enum UICollectionLayoutSectionOrthogonalScrollingBounce { Always = 1, Automatic = 0, Never = 2, } ``` #### New Type: UIKit.UICollectionLayoutSectionOrthogonalScrollingDecelerationRate ```csharp public static class UICollectionLayoutSectionOrthogonalScrollingDecelerationRate { // properties public static double Automatic { get; } public static double Fast { get; } public static double Normal { get; } } ``` #### New Type: UIKit.UICollectionLayoutSectionOrthogonalScrollingProperties ```csharp public class UICollectionLayoutSectionOrthogonalScrollingProperties : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public UICollectionLayoutSectionOrthogonalScrollingProperties (); protected UICollectionLayoutSectionOrthogonalScrollingProperties (Foundation.NSObjectFlag t); protected UICollectionLayoutSectionOrthogonalScrollingProperties (IntPtr handle); // properties public virtual UICollectionLayoutSectionOrthogonalScrollingBounce Bounce { get; set; } public override IntPtr ClassHandle { get; } public virtual double DecelerationRate { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: UIKit.UIContentUnavailableAlignment ```csharp [Serializable] public enum UIContentUnavailableAlignment { Center = 0, Natural = 1, } ``` #### New Type: UIKit.UIContentUnavailableButtonProperties ```csharp public class UIContentUnavailableButtonProperties : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public UIContentUnavailableButtonProperties (); public UIContentUnavailableButtonProperties (Foundation.NSCoder coder); protected UIContentUnavailableButtonProperties (Foundation.NSObjectFlag t); protected UIContentUnavailableButtonProperties (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual bool Enabled { get; set; } public virtual UIMenu Menu { get; set; } public virtual UIAction PrimaryAction { get; set; } public virtual UIButtonRole Role { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: UIKit.UIContentUnavailableConfiguration ```csharp public class UIContentUnavailableConfiguration : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, IUIContentConfiguration { // constructors public UIContentUnavailableConfiguration (Foundation.NSCoder coder); protected UIContentUnavailableConfiguration (Foundation.NSObjectFlag t); protected UIContentUnavailableConfiguration (IntPtr handle); // properties public virtual UIContentUnavailableAlignment Alignment { get; set; } public virtual Foundation.NSAttributedString AttributedText { get; set; } public virtual UIAxis AxesPreservingSuperviewLayoutMargins { get; set; } public virtual UIBackgroundConfiguration Background { get; set; } public virtual UIButtonConfiguration Button { get; set; } public virtual UIContentUnavailableButtonProperties ButtonProperties { get; } public virtual nfloat ButtonToSecondaryButtonPadding { get; set; } public override IntPtr ClassHandle { get; } public virtual NSDirectionalEdgeInsets DirectionalLayoutMargins { get; set; } public virtual UIImage Image { get; set; } public virtual UIContentUnavailableImageProperties ImageProperties { get; } public virtual nfloat ImageToTextPadding { get; set; } public virtual Foundation.NSAttributedString SecondaryAttributedText { get; set; } public virtual UIButtonConfiguration SecondaryButton { get; set; } public virtual UIContentUnavailableButtonProperties SecondaryButtonProperties { get; } public virtual string SecondaryText { get; set; } public virtual UIContentUnavailableTextProperties SecondaryTextProperties { get; } public virtual string Text { get; set; } public virtual UIContentUnavailableTextProperties TextProperties { get; } public virtual nfloat TextToButtonPadding { get; set; } public virtual nfloat TextToSecondaryTextPadding { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static UIContentUnavailableConfiguration CreateEmptyConfiguration (); public static UIContentUnavailableConfiguration CreateLoadingConfiguration (); public static UIContentUnavailableConfiguration CreateSearchConfiguration (); public virtual void EncodeTo (Foundation.NSCoder encoder); public virtual IUIContentConfiguration GetUpdatedConfiguration (IUIConfigurationState state); public virtual IUIContentView MakeContentView (); } ``` #### New Type: UIKit.UIContentUnavailableConfigurationState ```csharp public class UIContentUnavailableConfigurationState : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, IUIConfigurationState { // constructors public UIContentUnavailableConfigurationState (Foundation.NSCoder coder); protected UIContentUnavailableConfigurationState (Foundation.NSObjectFlag t); protected UIContentUnavailableConfigurationState (IntPtr handle); public UIContentUnavailableConfigurationState (UITraitCollection traitCollection); // properties public override IntPtr ClassHandle { get; } public virtual string SearchText { get; set; } public virtual UITraitCollection TraitCollection { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); public virtual Foundation.NSObject GetCustomState (string key); public virtual Foundation.NSObject GetObject (string key); public virtual void SetCustomState (Foundation.NSObject customState, string key); public virtual void SetObject (Foundation.NSObject obj, string key); } ``` #### New Type: UIKit.UIContentUnavailableImageProperties ```csharp public class UIContentUnavailableImageProperties : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public UIContentUnavailableImageProperties (); public UIContentUnavailableImageProperties (Foundation.NSCoder coder); protected UIContentUnavailableImageProperties (Foundation.NSObjectFlag t); protected UIContentUnavailableImageProperties (IntPtr handle); // properties public virtual bool AccessibilityIgnoresInvertColors { get; set; } public override IntPtr ClassHandle { get; } public virtual nfloat CornerRadius { get; set; } public virtual CoreGraphics.CGSize MaximumSize { get; set; } public virtual UIImageSymbolConfiguration PreferredSymbolConfiguration { get; set; } public virtual UIColor TintColor { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: UIKit.UIContentUnavailableTextProperties ```csharp public class UIContentUnavailableTextProperties : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public UIContentUnavailableTextProperties (); public UIContentUnavailableTextProperties (Foundation.NSCoder coder); protected UIContentUnavailableTextProperties (Foundation.NSObjectFlag t); protected UIContentUnavailableTextProperties (IntPtr handle); // properties public virtual bool AdjustsFontSizeToFitWidth { get; set; } public virtual bool AllowsDefaultTighteningForTruncation { get; set; } public override IntPtr ClassHandle { get; } public virtual UIColor Color { get; set; } public virtual UIFont Font { get; set; } public virtual UILineBreakMode LineBreakMode { get; set; } public virtual nfloat MinimumScaleFactor { get; set; } public virtual nint NumberOfLines { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: UIKit.UIContentUnavailableView ```csharp public class UIContentUnavailableView : UIKit.UIView, ObjCRuntime.INativeObject, System.IDisposable, IUIContentView { // constructors public UIContentUnavailableView (Foundation.NSCoder coder); protected UIContentUnavailableView (Foundation.NSObjectFlag t); protected UIContentUnavailableView (IntPtr handle); public UIContentUnavailableView (UIContentUnavailableConfiguration configuration); // properties public static UIContentUnavailableView.UIContentUnavailableViewAppearance Appearance { get; } public override IntPtr ClassHandle { get; } public virtual IUIContentConfiguration Configuration { get; set; } public virtual bool ScrollEnabled { get; set; } // methods public static UIContentUnavailableView.UIContentUnavailableViewAppearance AppearanceWhenContainedIn (System.Type[] containers); public static UIContentUnavailableView.UIContentUnavailableViewAppearance GetAppearance<T> (); public static UIContentUnavailableView.UIContentUnavailableViewAppearance GetAppearance<T> (UITraitCollection traits); public static UIContentUnavailableView.UIContentUnavailableViewAppearance GetAppearance (UITraitCollection traits); public static UIContentUnavailableView.UIContentUnavailableViewAppearance GetAppearance<T> (UITraitCollection traits, System.Type[] containers); public static UIContentUnavailableView.UIContentUnavailableViewAppearance GetAppearance (UITraitCollection traits, System.Type[] containers); public virtual bool SupportsConfiguration (IUIContentConfiguration configuration); // inner types public class UIContentUnavailableViewAppearance : UIKit.UIView+UIViewAppearance { // constructors protected UIContentUnavailableView.UIContentUnavailableViewAppearance (IntPtr handle); } } ``` #### New Type: UIKit.UIContextMenuActionProvider ```csharp public sealed delegate UIContextMenuActionProvider : System.MulticastDelegate { // constructors public UIContextMenuActionProvider (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (UIMenuElement[] suggestedActions, System.AsyncCallback callback, object object); public virtual UIMenu EndInvoke (System.IAsyncResult result); public virtual UIMenu Invoke (UIMenuElement[] suggestedActions); } ``` #### New Type: UIKit.UIContextMenuConfiguration ```csharp public class UIContextMenuConfiguration : Foundation.NSObject { // constructors public UIContextMenuConfiguration (); protected UIContextMenuConfiguration (Foundation.NSObjectFlag t); protected UIContextMenuConfiguration (IntPtr handle); // properties public virtual nint BadgeCount { get; set; } public override IntPtr ClassHandle { get; } public virtual Foundation.INSCopying Identifier { get; } public virtual UIContextMenuConfigurationElementOrder PreferredMenuElementOrder { get; set; } public virtual Foundation.NSSet<Foundation.INSCopying> SecondaryItemIdentifiers { get; set; } // methods public static UIContextMenuConfiguration Create (Foundation.INSCopying identifier, UIContextMenuContentPreviewProvider previewProvider, UIContextMenuActionProvider actionProvider); } ``` #### New Type: UIKit.UIContextMenuConfigurationElementOrder ```csharp [Serializable] public enum UIContextMenuConfigurationElementOrder { Automatic = 0, Fixed = 2, Priority = 1, } ``` #### New Type: UIKit.UIContextMenuContentPreviewProvider ```csharp public sealed delegate UIContextMenuContentPreviewProvider : System.MulticastDelegate { // constructors public UIContextMenuContentPreviewProvider (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (System.AsyncCallback callback, object object); public virtual UIViewController EndInvoke (System.IAsyncResult result); public virtual UIViewController Invoke (); } ``` #### New Type: UIKit.UIContextMenuInteraction ```csharp public class UIContextMenuInteraction : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUIInteraction { // constructors protected UIContextMenuInteraction (Foundation.NSObjectFlag t); protected UIContextMenuInteraction (IntPtr handle); public UIContextMenuInteraction (IUIContextMenuInteractionDelegate delegate); // properties public override IntPtr ClassHandle { get; } public IUIContextMenuInteractionDelegate Delegate { get; } public virtual UIContextMenuInteractionAppearance MenuAppearance { get; } public virtual UIView View { get; } public virtual Foundation.NSObject WeakDelegate { get; } // methods public virtual void DidMoveToView (UIView view); public virtual void DismissMenu (); protected override void Dispose (bool disposing); public virtual CoreGraphics.CGPoint GetLocation (UIView inView); public virtual void UpdateVisibleMenu (System.Func<UIMenu,UIKit.UIMenu> handler); public virtual void WillMoveToView (UIView view); } ``` #### New Type: UIKit.UIContextMenuInteractionAppearance ```csharp [Serializable] public enum UIContextMenuInteractionAppearance { Compact = 2, Rich = 1, Unknown = 0, } ``` #### New Type: UIKit.UIContextMenuInteractionDelegate ```csharp public abstract class UIContextMenuInteractionDelegate : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUIContextMenuInteractionDelegate { // constructors protected UIContextMenuInteractionDelegate (); protected UIContextMenuInteractionDelegate (Foundation.NSObjectFlag t); protected UIContextMenuInteractionDelegate (IntPtr handle); // methods public abstract UIContextMenuConfiguration GetConfigurationForMenu (UIContextMenuInteraction interaction, CoreGraphics.CGPoint location); public virtual UITargetedPreview GetDismissalPreview (UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, Foundation.INSCopying identifier); public virtual UITargetedPreview GetHighlightPreview (UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, Foundation.INSCopying identifier); public virtual void WillDisplayMenu (UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public virtual void WillEnd (UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); } ``` #### New Type: UIKit.UIContextMenuInteractionDelegate_Extensions ```csharp public static class UIContextMenuInteractionDelegate_Extensions { // methods public static UITargetedPreview GetDismissalPreview (this IUIContextMenuInteractionDelegate This, UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, Foundation.INSCopying identifier); public static UITargetedPreview GetHighlightPreview (this IUIContextMenuInteractionDelegate This, UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, Foundation.INSCopying identifier); public static void WillDisplayMenu (this IUIContextMenuInteractionDelegate This, UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); public static void WillEnd (this IUIContextMenuInteractionDelegate This, UIContextMenuInteraction interaction, UIContextMenuConfiguration configuration, IUIContextMenuInteractionAnimating animator); } ``` #### New Type: UIKit.UICornerCurve ```csharp [Serializable] public enum UICornerCurve { Automatic = 0, Circular = 1, Continuous = 2, } ``` #### New Type: UIKit.UIImageDynamicRange ```csharp [Serializable] public enum UIImageDynamicRange { ConstrainedHigh = 1, High = 2, Standard = 0, Unspecified = -1, } ``` #### New Type: UIKit.UIImageReader ```csharp public class UIImageReader : Foundation.NSObject { // constructors public UIImageReader (); protected UIImageReader (Foundation.NSObjectFlag t); protected UIImageReader (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual UIImageReaderConfiguration Configuration { get; } public static UIImageReader DefaultReader { get; } // methods public static UIImageReader CreateReader (UIImageReaderConfiguration configuration); public virtual UIImage GetImage (Foundation.NSData data); public virtual UIImage GetImage (Foundation.NSUrl url); public virtual void GetImage (Foundation.NSData data, System.Action<UIImage> completion); public virtual void GetImage (Foundation.NSUrl url, System.Action<UIImage> completion); public virtual System.Threading.Tasks.Task<UIImage> GetImageAsync (Foundation.NSData data); public virtual System.Threading.Tasks.Task<UIImage> GetImageAsync (Foundation.NSUrl url); } ``` #### New Type: UIKit.UIImageReaderConfiguration ```csharp public class UIImageReaderConfiguration : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public UIImageReaderConfiguration (); protected UIImageReaderConfiguration (Foundation.NSObjectFlag t); protected UIImageReaderConfiguration (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nfloat PixelsPerInch { get; set; } public virtual CoreGraphics.CGSize PreferredThumbnailSize { get; set; } public virtual bool PrefersHighDynamicRange { get; set; } public virtual bool PreparesImagesForDisplay { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: UIKit.UILabelVibrancy ```csharp [Serializable] public enum UILabelVibrancy { Automatic = 1, None = 0, } ``` #### New Type: UIKit.UILetterformAwareSizingRule ```csharp [Serializable] public enum UILetterformAwareSizingRule { Oversize = 1, Typographic = 0, } ``` #### New Type: UIKit.UIMenuLeaf_Extensions ```csharp public static class UIMenuLeaf_Extensions { // methods public static UIImage GetSelectedImage (this IUIMenuLeaf This); public static void SetSelectedImage (this IUIMenuLeaf This, UIImage value); } ``` #### New Type: UIKit.UIMutableTraits ```csharp public abstract class UIMutableTraits : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUIMutableTraits { // constructors protected UIMutableTraits (); protected UIMutableTraits (Foundation.NSObjectFlag t); protected UIMutableTraits (IntPtr handle); // properties public virtual UIAccessibilityContrast AccessibilityContrast { get; set; } public virtual UIUserInterfaceActiveAppearance ActiveAppearance { get; set; } public virtual UIDisplayGamut DisplayGamut { get; set; } public virtual nfloat DisplayScale { get; set; } public virtual UIForceTouchCapability ForceTouchCapability { get; set; } public virtual UIUserInterfaceSizeClass HorizontalSizeClass { get; set; } public virtual UIImageDynamicRange ImageDynamicRange { get; set; } public virtual UITraitEnvironmentLayoutDirection LayoutDirection { get; set; } public virtual UILegibilityWeight LegibilityWeight { get; set; } public virtual string PreferredContentSizeCategory { get; set; } public virtual UISceneCaptureState SceneCaptureState { get; set; } public virtual UINSToolbarItemPresentationSize ToolbarItemPresentationSize { get; set; } public virtual string TypesettingLanguage { get; set; } public virtual UIUserInterfaceIdiom UserInterfaceIdiom { get; set; } public virtual UIUserInterfaceStyle UserInterfaceStyle { get; set; } public virtual UIUserInterfaceSizeClass VerticalSizeClass { get; set; } // methods public abstract Foundation.NSObject GetObject (IUIObjectTraitDefinition trait); public abstract nfloat GetValue (IUICGFloatTraitDefinition trait); public abstract nint GetValue (IUINSIntegerTraitDefinition trait); public abstract void SetObject (Foundation.NSObject object, IUIObjectTraitDefinition trait); public abstract void SetValue (nfloat value, IUICGFloatTraitDefinition trait); public abstract void SetValue (nint value, IUINSIntegerTraitDefinition trait); } ``` #### New Type: UIKit.UINSIntegerTraitDefinition ```csharp public abstract class UINSIntegerTraitDefinition : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors protected UINSIntegerTraitDefinition (); protected UINSIntegerTraitDefinition (Foundation.NSObjectFlag t); protected UINSIntegerTraitDefinition (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UIObjectTraitDefinition ```csharp public abstract class UIObjectTraitDefinition : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUIObjectTraitDefinition, IUITraitDefinition { // constructors protected UIObjectTraitDefinition (); protected UIObjectTraitDefinition (Foundation.NSObjectFlag t); protected UIObjectTraitDefinition (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public static Foundation.NSObject DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UIPageControlProgress ```csharp public class UIPageControlProgress : Foundation.NSObject { // constructors public UIPageControlProgress (); protected UIPageControlProgress (Foundation.NSObjectFlag t); protected UIPageControlProgress (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual float CurrentProgress { get; set; } public IUIPageControlProgressDelegate Delegate { get; set; } public virtual bool ProgressVisible { get; } public virtual Foundation.NSObject WeakDelegate { get; set; } // methods protected override void Dispose (bool disposing); } ``` #### New Type: UIKit.UIPageControlProgressDelegate ```csharp public class UIPageControlProgressDelegate : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUIPageControlProgressDelegate { // constructors public UIPageControlProgressDelegate (); protected UIPageControlProgressDelegate (Foundation.NSObjectFlag t); protected UIPageControlProgressDelegate (IntPtr handle); // methods public virtual float GetInitialProgressForPage (UIPageControlProgress progress, nint page); public virtual void VisibilityDidChange (UIPageControlProgress progress); } ``` #### New Type: UIKit.UIPageControlProgressDelegate_Extensions ```csharp public static class UIPageControlProgressDelegate_Extensions { // methods public static float GetInitialProgressForPage (this IUIPageControlProgressDelegate This, UIPageControlProgress progress, nint page); public static void VisibilityDidChange (this IUIPageControlProgressDelegate This, UIPageControlProgress progress); } ``` #### New Type: UIKit.UIPageControlTimerProgress ```csharp public class UIPageControlTimerProgress : UIKit.UIPageControlProgress { // constructors protected UIPageControlTimerProgress (Foundation.NSObjectFlag t); public UIPageControlTimerProgress (double preferredDuration); protected UIPageControlTimerProgress (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public IUIPageControlTimerProgressDelegate Delegate { get; set; } public virtual double PreferredDuration { get; set; } public virtual bool ResetsToInitialPageAfterEnd { get; set; } public virtual bool Running { get; } public virtual Foundation.NSObject WeakDelegate { get; set; } // methods protected override void Dispose (bool disposing); public virtual double GetDuration (nint page); public virtual void PauseTimer (); public virtual void ResumeTimer (); public virtual void SetDuration (double duration, nint page); } ``` #### New Type: UIKit.UIPageControlTimerProgressDelegate ```csharp public class UIPageControlTimerProgressDelegate : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUIPageControlProgressDelegate, IUIPageControlTimerProgressDelegate { // constructors public UIPageControlTimerProgressDelegate (); protected UIPageControlTimerProgressDelegate (Foundation.NSObjectFlag t); protected UIPageControlTimerProgressDelegate (IntPtr handle); // methods public virtual float GetInitialProgressForPage (UIPageControlProgress progress, nint page); public virtual void PageControlTimerProgressDidChange (UIPageControlTimerProgress progress); public virtual bool ShouldAdvanceToPage (UIPageControlTimerProgress progress, nint page); public virtual void VisibilityDidChange (UIPageControlProgress progress); } ``` #### New Type: UIKit.UIPageControlTimerProgressDelegate_Extensions ```csharp public static class UIPageControlTimerProgressDelegate_Extensions { // methods public static void PageControlTimerProgressDidChange (this IUIPageControlTimerProgressDelegate This, UIPageControlTimerProgress progress); public static bool ShouldAdvanceToPage (this IUIPageControlTimerProgressDelegate This, UIPageControlTimerProgress progress, nint page); } ``` #### New Type: UIKit.UIPreviewParameters ```csharp public class UIPreviewParameters : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public UIPreviewParameters (); protected UIPreviewParameters (Foundation.NSObjectFlag t); public UIPreviewParameters (Foundation.NSValue[] textLineRects); protected UIPreviewParameters (IntPtr handle); // properties public virtual UIColor BackgroundColor { get; set; } public override IntPtr ClassHandle { get; } public virtual UIBezierPath ShadowPath { get; set; } public virtual UIBezierPath VisiblePath { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: UIKit.UIPreviewTarget ```csharp public class UIPreviewTarget : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected UIPreviewTarget (Foundation.NSObjectFlag t); protected UIPreviewTarget (IntPtr handle); public UIPreviewTarget (UIView container, CoreGraphics.CGPoint center); public UIPreviewTarget (UIView container, CoreGraphics.CGPoint center, CoreGraphics.CGAffineTransform transform); // properties public virtual CoreGraphics.CGPoint Center { get; } public override IntPtr ClassHandle { get; } public virtual UIView Container { get; } public virtual CoreGraphics.CGAffineTransform Transform { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: UIKit.UISceneCaptureState ```csharp [Serializable] public enum UISceneCaptureState { Active = 1, Inactive = 0, Unspecified = -1, } ``` #### New Type: UIKit.UISceneSessionActivationRequest ```csharp public class UISceneSessionActivationRequest : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected UISceneSessionActivationRequest (Foundation.NSObjectFlag t); protected UISceneSessionActivationRequest (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual UISceneActivationRequestOptions Options { get; set; } public virtual string Role { get; } public virtual UISceneSession Session { get; } public virtual Foundation.NSUserActivity UserActivity { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static UISceneSessionActivationRequest Create (); public static UISceneSessionActivationRequest Create (string role); public static UISceneSessionActivationRequest Create (UISceneSession session); } ``` #### New Type: UIKit.UISymbolEffectCompletionContext ```csharp public class UISymbolEffectCompletionContext : Foundation.NSObject { // constructors protected UISymbolEffectCompletionContext (Foundation.NSObjectFlag t); protected UISymbolEffectCompletionContext (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Symbols.NSSymbolContentTransition ContentTransition { get; } public virtual Symbols.NSSymbolEffect Effect { get; } public virtual bool Finished { get; } public virtual Foundation.NSObject Sender { get; } // methods protected override void Dispose (bool disposing); } ``` #### New Type: UIKit.UITargetedPreview ```csharp public class UITargetedPreview : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected UITargetedPreview (Foundation.NSObjectFlag t); protected UITargetedPreview (IntPtr handle); public UITargetedPreview (UIView view); public UITargetedPreview (UIView view, UIPreviewParameters parameters); public UITargetedPreview (UIView view, UIPreviewParameters parameters, UIPreviewTarget target); // properties public override IntPtr ClassHandle { get; } public virtual UIPreviewParameters Parameters { get; } public virtual CoreGraphics.CGSize Size { get; } public virtual UIPreviewTarget Target { get; } public virtual UIView View { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual UITargetedPreview GetRetargetedPreview (UIPreviewTarget newTarget); } ``` #### New Type: UIKit.UITextInlinePredictionType ```csharp [Serializable] public enum UITextInlinePredictionType { Default = 0, No = 1, Yes = 2, } ``` #### New Type: UIKit.UITextLoupeSession ```csharp public class UITextLoupeSession : Foundation.NSObject { // constructors public UITextLoupeSession (); protected UITextLoupeSession (Foundation.NSObjectFlag t); protected UITextLoupeSession (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public static UITextLoupeSession BeginLoupeSession (CoreGraphics.CGPoint point, UIView selectionWidget, UIView interactionView); public virtual void Invalidate (); public virtual void MoveToPoint (CoreGraphics.CGPoint point, CoreGraphics.CGRect caretRect, bool tracksCaret); } ``` #### New Type: UIKit.UITextSelectionDisplayInteraction ```csharp public class UITextSelectionDisplayInteraction : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUIInteraction { // constructors protected UITextSelectionDisplayInteraction (Foundation.NSObjectFlag t); protected UITextSelectionDisplayInteraction (IntPtr handle); public UITextSelectionDisplayInteraction (IUITextInput textInput, IUITextSelectionDisplayInteractionDelegate delegate); // properties public virtual bool Activated { get; set; } public override IntPtr ClassHandle { get; } public virtual IUITextCursorView CursorView { get; set; } public IUITextSelectionDisplayInteractionDelegate Delegate { get; } public virtual IUITextSelectionHandleView[] HandleViews { get; set; } public virtual IUITextSelectionHighlightView HighlightView { get; set; } public virtual IUITextInput TextInput { get; } public virtual UIView View { get; } public virtual Foundation.NSObject WeakDelegate { get; } // methods public virtual void DidMoveToView (UIView view); protected override void Dispose (bool disposing); public virtual void LayoutManagedSubviews (); public virtual void SetNeedsSelectionUpdate (); public virtual void WillMoveToView (UIView view); } ``` #### New Type: UIKit.UITextSelectionDisplayInteractionDelegate ```csharp public class UITextSelectionDisplayInteractionDelegate : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUITextSelectionDisplayInteractionDelegate { // constructors public UITextSelectionDisplayInteractionDelegate (); protected UITextSelectionDisplayInteractionDelegate (Foundation.NSObjectFlag t); protected UITextSelectionDisplayInteractionDelegate (IntPtr handle); // methods public virtual UIView GetSelectionContainerViewBelowText (UITextSelectionDisplayInteraction interaction); } ``` #### New Type: UIKit.UITextSelectionDisplayInteractionDelegate_Extensions ```csharp public static class UITextSelectionDisplayInteractionDelegate_Extensions { // methods public static UIView GetSelectionContainerViewBelowText (this IUITextSelectionDisplayInteractionDelegate This, UITextSelectionDisplayInteraction interaction); } ``` #### New Type: UIKit.UITextViewBorderStyle ```csharp [Serializable] public enum UITextViewBorderStyle { None = 0, RoundedRect = 1, } ``` #### New Type: UIKit.UITraitAccessibilityContrast ```csharp public class UITraitAccessibilityContrast : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitAccessibilityContrast (); protected UITraitAccessibilityContrast (Foundation.NSObjectFlag t); protected UITraitAccessibilityContrast (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitActiveAppearance ```csharp public class UITraitActiveAppearance : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitActiveAppearance (); protected UITraitActiveAppearance (Foundation.NSObjectFlag t); protected UITraitActiveAppearance (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitChangeObservable_Extensions ```csharp public static class UITraitChangeObservable_Extensions { // methods [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Selector)' method instead.")] public static IUITraitChangeRegistration RegisterForTraitChanges (this IUITraitChangeObservable This, IUITraitDefinition[] traits, ObjCRuntime.Selector action); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], Action<IUITraitEnvironment, UITraitCollection>)' method instead.")] public static IUITraitChangeRegistration RegisterForTraitChanges (this IUITraitChangeObservable This, IUITraitDefinition[] traits, System.Action<IUITraitEnvironment,UIKit.UITraitCollection> handler); [Obsolete ("Use the 'UITraitChangeObservable.RegisterForTraitChanges (Class[], NSObject, Selector)' method instead.")] public static IUITraitChangeRegistration RegisterForTraitChanges (this IUITraitChangeObservable This, IUITraitDefinition[] traits, Foundation.NSObject target, ObjCRuntime.Selector action); } ``` #### New Type: UIKit.UITraitDisplayGamut ```csharp public class UITraitDisplayGamut : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitDisplayGamut (); protected UITraitDisplayGamut (Foundation.NSObjectFlag t); protected UITraitDisplayGamut (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitDisplayScale ```csharp public class UITraitDisplayScale : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUICGFloatTraitDefinition, IUITraitDefinition { // constructors public UITraitDisplayScale (); protected UITraitDisplayScale (Foundation.NSObjectFlag t); protected UITraitDisplayScale (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nfloat DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitForceTouchCapability ```csharp public class UITraitForceTouchCapability : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitForceTouchCapability (); protected UITraitForceTouchCapability (Foundation.NSObjectFlag t); protected UITraitForceTouchCapability (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitHorizontalSizeClass ```csharp public class UITraitHorizontalSizeClass : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitHorizontalSizeClass (); protected UITraitHorizontalSizeClass (Foundation.NSObjectFlag t); protected UITraitHorizontalSizeClass (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitImageDynamicRange ```csharp public class UITraitImageDynamicRange : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitImageDynamicRange (); protected UITraitImageDynamicRange (Foundation.NSObjectFlag t); protected UITraitImageDynamicRange (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitLayoutDirection ```csharp public class UITraitLayoutDirection : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitLayoutDirection (); protected UITraitLayoutDirection (Foundation.NSObjectFlag t); protected UITraitLayoutDirection (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitLegibilityWeight ```csharp public class UITraitLegibilityWeight : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitLegibilityWeight (); protected UITraitLegibilityWeight (Foundation.NSObjectFlag t); protected UITraitLegibilityWeight (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitPreferredContentSizeCategory ```csharp public class UITraitPreferredContentSizeCategory : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUIObjectTraitDefinition, IUITraitDefinition { // constructors public UITraitPreferredContentSizeCategory (); protected UITraitPreferredContentSizeCategory (Foundation.NSObjectFlag t); protected UITraitPreferredContentSizeCategory (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static Foundation.NSObject DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitSceneCaptureState ```csharp public class UITraitSceneCaptureState : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitSceneCaptureState (); protected UITraitSceneCaptureState (Foundation.NSObjectFlag t); protected UITraitSceneCaptureState (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitToolbarItemPresentationSize ```csharp public class UITraitToolbarItemPresentationSize : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitToolbarItemPresentationSize (); protected UITraitToolbarItemPresentationSize (Foundation.NSObjectFlag t); protected UITraitToolbarItemPresentationSize (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitTypesettingLanguage ```csharp public class UITraitTypesettingLanguage : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUIObjectTraitDefinition, IUITraitDefinition { // constructors public UITraitTypesettingLanguage (); protected UITraitTypesettingLanguage (Foundation.NSObjectFlag t); protected UITraitTypesettingLanguage (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static Foundation.NSObject DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitUserInterfaceIdiom ```csharp public class UITraitUserInterfaceIdiom : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitUserInterfaceIdiom (); protected UITraitUserInterfaceIdiom (Foundation.NSObjectFlag t); protected UITraitUserInterfaceIdiom (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitUserInterfaceLevel ```csharp public class UITraitUserInterfaceLevel : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitUserInterfaceLevel (); protected UITraitUserInterfaceLevel (Foundation.NSObjectFlag t); protected UITraitUserInterfaceLevel (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitUserInterfaceStyle ```csharp public class UITraitUserInterfaceStyle : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitUserInterfaceStyle (); protected UITraitUserInterfaceStyle (Foundation.NSObjectFlag t); protected UITraitUserInterfaceStyle (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UITraitVerticalSizeClass ```csharp public class UITraitVerticalSizeClass : Foundation.NSObject, ObjCRuntime.INativeObject, System.IDisposable, IUINSIntegerTraitDefinition, IUITraitDefinition { // constructors public UITraitVerticalSizeClass (); protected UITraitVerticalSizeClass (Foundation.NSObjectFlag t); protected UITraitVerticalSizeClass (IntPtr handle); // properties public static bool AffectsColorAppearance { get; } public override IntPtr ClassHandle { get; } public static nint DefaultValue { get; } public static string Identifier { get; } public static string Name { get; } } ``` #### New Type: UIKit.UIWindowScenePlacement ```csharp public class UIWindowScenePlacement : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public UIWindowScenePlacement (); protected UIWindowScenePlacement (Foundation.NSObjectFlag t); protected UIWindowScenePlacement (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: UIKit.UIWindowSceneStandardPlacement ```csharp public class UIWindowSceneStandardPlacement : UIKit.UIWindowScenePlacement { // constructors public UIWindowSceneStandardPlacement (); protected UIWindowSceneStandardPlacement (Foundation.NSObjectFlag t); protected UIWindowSceneStandardPlacement (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public static UIWindowSceneStandardPlacement Create (); } ``` ### Namespace UniformTypeIdentifiers #### Type Changed: UniformTypeIdentifiers.UTTypes Added property: ```csharp public static UTType Ahap { get; } ``` ### Namespace Vision #### Type Changed: Vision.VNBarcodeObservation Added properties: ```csharp 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: ```csharp MsiPlessey = 23, ``` #### Type Changed: Vision.VNClassifyImageRequestRevision Added value: ```csharp Two = 2, ``` #### Type Changed: Vision.VNDetectBarcodesRequest Added property: ```csharp public virtual bool CoalesceCompositeSymbologies { get; set; } ``` #### Type Changed: Vision.VNDetectBarcodesRequestRevision Added values: ```csharp Four = 4, Three = 3, ``` #### Type Changed: Vision.VNDetectFaceCaptureQualityRequestRevision Added value: ```csharp Three = 3, ``` #### Type Changed: Vision.VNDetectHumanBodyPoseRequest Added methods: ```csharp public virtual VNHumanBodyPoseObservationJointName[] GetSupportedJointNames (out Foundation.NSError error); public virtual VNHumanBodyPoseObservationJointsGroupName[] GetSupportedJointsGroupNames (out Foundation.NSError error); ``` #### Type Changed: Vision.VNDetectHumanHandPoseRequest Added methods: ```csharp public virtual VNHumanHandPoseObservationJointName[] GetSupportedJointNames (out Foundation.NSError error); public virtual VNHumanHandPoseObservationJointsGroupName[] GetSupportedJointsGroupNames (out Foundation.NSError error); ``` #### Type Changed: Vision.VNErrorCode Added values: ```csharp UnsupportedComputeDevice = 22, UnsupportedComputeStage = 21, ``` #### Type Changed: Vision.VNGenerateAttentionBasedSaliencyImageRequestRevision Added value: ```csharp Two = 2, ``` #### Type Changed: Vision.VNGenerateImageFeaturePrintRequestRevision Added value: ```csharp Two = 2, ``` #### Type Changed: Vision.VNGenerateObjectnessBasedSaliencyImageRequestRevision Added value: ```csharp Two = 2, ``` #### Type Changed: Vision.VNImageRequestHandler Added constructors: ```csharp 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: ```csharp public static VNRectangleObservation FromRectangleObservation (VNRectangleObservationRequestRevision requestRevision, CoreGraphics.CGPoint topLeft, CoreGraphics.CGPoint topRight, CoreGraphics.CGPoint bottomRight, CoreGraphics.CGPoint bottomLeft); ``` #### Type Changed: Vision.VNRequest Added methods: ```csharp 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: ```csharp public virtual nuint GetSupportedNumberOfTrackers (out Foundation.NSError error); ``` #### New Type: Vision.VNAnimalBodyPoseObservation ```csharp public class VNAnimalBodyPoseObservation : Vision.VNRecognizedPointsObservation { // constructors public VNAnimalBodyPoseObservation (Foundation.NSCoder coder); protected VNAnimalBodyPoseObservation (Foundation.NSObjectFlag t); protected VNAnimalBodyPoseObservation (IntPtr handle); // properties public virtual VNAnimalBodyPoseObservationJointsGroupName[] AvailableJointGroupNames { get; } public virtual VNAnimalBodyPoseObservationJointName[] AvailableJointNames { get; } public override IntPtr 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 ```csharp [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 ```csharp public static class VNAnimalBodyPoseObservationJointNameExtensions { // methods public static Foundation.NSString GetConstant (this VNAnimalBodyPoseObservationJointName self); public static VNAnimalBodyPoseObservationJointName GetValue (Foundation.NSString constant); } ``` #### New Type: Vision.VNAnimalBodyPoseObservationJointsGroupName ```csharp [Serializable] public enum VNAnimalBodyPoseObservationJointsGroupName { All = 6, Forelegs = 3, Head = 1, Hindlegs = 4, None = 0, Tail = 5, Trunk = 2, } ``` #### New Type: Vision.VNAnimalBodyPoseObservationJointsGroupNameExtensions ```csharp public static class VNAnimalBodyPoseObservationJointsGroupNameExtensions { // methods public static Foundation.NSString GetConstant (this VNAnimalBodyPoseObservationJointsGroupName self); public static VNAnimalBodyPoseObservationJointsGroupName GetValue (Foundation.NSString constant); } ``` #### New Type: Vision.VNBarcodeCompositeType ```csharp [Serializable] public enum VNBarcodeCompositeType { Gs1TypeA = 2, Gs1TypeB = 3, Gs1TypeC = 4, Linked = 1, None = 0, } ``` #### New Type: Vision.VNComputeStage ```csharp [Serializable] public enum VNComputeStage { Main = 1, None = 0, PostProcessing = 2, } ``` #### New Type: Vision.VNComputeStageExtensions ```csharp public static class VNComputeStageExtensions { // methods public static Foundation.NSString GetConstant (this VNComputeStage self); public static VNComputeStage GetValue (Foundation.NSString constant); } ``` #### New Type: Vision.VNDetectAnimalBodyPoseRequest ```csharp public class VNDetectAnimalBodyPoseRequest : Vision.VNImageBasedRequest { // constructors protected VNDetectAnimalBodyPoseRequest (Foundation.NSObjectFlag t); protected VNDetectAnimalBodyPoseRequest (IntPtr handle); public VNDetectAnimalBodyPoseRequest (VNRequestCompletionHandler completionHandler); // properties public override IntPtr 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 ```csharp public class VNDetectHumanBodyPose3DRequest : Vision.VNStatefulRequest { // constructors public VNDetectHumanBodyPose3DRequest (); protected VNDetectHumanBodyPose3DRequest (Foundation.NSObjectFlag t); protected VNDetectHumanBodyPose3DRequest (IntPtr handle); public VNDetectHumanBodyPose3DRequest (VNRequestCompletionHandler completionHandler); // properties public override IntPtr 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 ```csharp [Serializable] public enum VNDetectHumanBodyPose3DRequestRevision { One = 1, } ``` #### New Type: Vision.VNGenerateForegroundInstanceMaskRequest ```csharp public class VNGenerateForegroundInstanceMaskRequest : Vision.VNImageBasedRequest { // constructors protected VNGenerateForegroundInstanceMaskRequest (Foundation.NSObjectFlag t); protected VNGenerateForegroundInstanceMaskRequest (IntPtr handle); public VNGenerateForegroundInstanceMaskRequest (VNRequestCompletionHandler completionHandler); // properties public override IntPtr ClassHandle { get; } public virtual VNInstanceMaskObservation[] Results { get; } } ``` #### New Type: Vision.VNGeneratePersonInstanceMaskRequest ```csharp public class VNGeneratePersonInstanceMaskRequest : Vision.VNImageBasedRequest { // constructors protected VNGeneratePersonInstanceMaskRequest (Foundation.NSObjectFlag t); protected VNGeneratePersonInstanceMaskRequest (IntPtr handle); public VNGeneratePersonInstanceMaskRequest (VNRequestCompletionHandler completionHandler); // properties public override IntPtr ClassHandle { get; } public virtual VNInstanceMaskObservation[] Results { get; } } ``` #### New Type: Vision.VNHumanBodyPose3DObservation ```csharp public class VNHumanBodyPose3DObservation : Vision.VNRecognizedPoints3DObservation { // constructors public VNHumanBodyPose3DObservation (Foundation.NSCoder coder); protected VNHumanBodyPose3DObservation (Foundation.NSObjectFlag t); protected VNHumanBodyPose3DObservation (IntPtr handle); // properties public virtual VNHumanBodyPose3DObservationJointName[] AvailableJointNames { get; } public virtual VNHumanBodyPose3DObservationJointsGroupName[] AvailableJointsGroupNames { get; } public virtual float BodyHeight { get; } public virtual OpenTK.NMatrix4 CameraOriginMatrix { get; } public override IntPtr ClassHandle { get; } public virtual VNHumanBodyPose3DObservationHeightEstimation HeightEstimation { get; } // methods public virtual bool GetCameraRelativePosition (out OpenTK.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 ```csharp [Serializable] public enum VNHumanBodyPose3DObservationHeightEstimation { Measured = 1, Reference = 0, } ``` #### New Type: Vision.VNHumanBodyPose3DObservationJointName ```csharp [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 ```csharp public static class VNHumanBodyPose3DObservationJointNameExtensions { // methods public static Foundation.NSString GetConstant (this VNHumanBodyPose3DObservationJointName self); public static VNHumanBodyPose3DObservationJointName GetValue (Foundation.NSString constant); } ``` #### New Type: Vision.VNHumanBodyPose3DObservationJointsGroupName ```csharp [Serializable] public enum VNHumanBodyPose3DObservationJointsGroupName { All = 7, Head = 1, LeftArm = 3, LeftLeg = 5, None = 0, RightArm = 4, RightLeg = 6, Torso = 2, } ``` #### New Type: Vision.VNHumanBodyPose3DObservationJointsGroupNameExtensions ```csharp public static class VNHumanBodyPose3DObservationJointsGroupNameExtensions { // methods public static Foundation.NSString GetConstant (this VNHumanBodyPose3DObservationJointsGroupName self); public static VNHumanBodyPose3DObservationJointsGroupName GetValue (Foundation.NSString constant); } ``` #### New Type: Vision.VNHumanBodyRecognizedPoint3D ```csharp public class VNHumanBodyRecognizedPoint3D : Vision.VNRecognizedPoint3D { // constructors public VNHumanBodyRecognizedPoint3D (Foundation.NSCoder coder); protected VNHumanBodyRecognizedPoint3D (Foundation.NSObjectFlag t); public VNHumanBodyRecognizedPoint3D (OpenTK.NMatrix4 position); protected VNHumanBodyRecognizedPoint3D (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual OpenTK.NMatrix4 LocalPosition { get; } public virtual VNHumanBodyPose3DObservationJointName ParentJoint { get; } } ``` #### New Type: Vision.VNInstanceMaskObservation ```csharp public class VNInstanceMaskObservation : Vision.VNObservation { // constructors public VNInstanceMaskObservation (Foundation.NSCoder coder); protected VNInstanceMaskObservation (Foundation.NSObjectFlag t); protected VNInstanceMaskObservation (IntPtr handle); // properties public virtual Foundation.NSIndexSet AllInstances { get; } public override IntPtr 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 ```csharp public class VNPoint3D : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public VNPoint3D (Foundation.NSCoder coder); protected VNPoint3D (Foundation.NSObjectFlag t); public VNPoint3D (OpenTK.NMatrix4 position); protected VNPoint3D (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual OpenTK.NMatrix4 Position { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: Vision.VNRecognizedPoint3D ```csharp public class VNRecognizedPoint3D : Vision.VNPoint3D { // constructors public VNRecognizedPoint3D (Foundation.NSCoder coder); protected VNRecognizedPoint3D (Foundation.NSObjectFlag t); public VNRecognizedPoint3D (OpenTK.NMatrix4 position); protected VNRecognizedPoint3D (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public static Foundation.NSString GroupKeyAll { get; } public virtual string Identifier { get; } } ``` #### New Type: Vision.VNRecognizedPoints3DObservation ```csharp public class VNRecognizedPoints3DObservation : Vision.VNObservation { // constructors public VNRecognizedPoints3DObservation (Foundation.NSCoder coder); protected VNRecognizedPoints3DObservation (Foundation.NSObjectFlag t); protected VNRecognizedPoints3DObservation (IntPtr handle); // properties public virtual Foundation.NSString[] AvailableGroupKeys { get; } public virtual Foundation.NSString[] AvailableKeys { get; } public override IntPtr 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 ```csharp public class VNTrackHomographicImageRegistrationRequest : Vision.VNStatefulRequest { // constructors public VNTrackHomographicImageRegistrationRequest (); protected VNTrackHomographicImageRegistrationRequest (Foundation.NSObjectFlag t); protected VNTrackHomographicImageRegistrationRequest (IntPtr handle); public VNTrackHomographicImageRegistrationRequest (VNRequestCompletionHandler completionHandler); // properties public override IntPtr 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 ```csharp [Serializable] public enum VNTrackHomographicImageRegistrationRequestRevision { One = 1, } ``` #### New Type: Vision.VNTrackOpticalFlowRequest ```csharp public class VNTrackOpticalFlowRequest : Vision.VNStatefulRequest { // constructors public VNTrackOpticalFlowRequest (); protected VNTrackOpticalFlowRequest (Foundation.NSObjectFlag t); protected VNTrackOpticalFlowRequest (IntPtr handle); public VNTrackOpticalFlowRequest (VNRequestCompletionHandler completionHandler); // properties public override IntPtr 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 ```csharp [Serializable] public enum VNTrackOpticalFlowRequestComputationAccuracy { High = 2, Low = 0, Medium = 1, VeryHigh = 3, } ``` #### New Type: Vision.VNTrackOpticalFlowRequestRevision ```csharp [Serializable] public enum VNTrackOpticalFlowRequestRevision { One = 1, } ``` #### New Type: Vision.VNTrackTranslationalImageRegistrationRequest ```csharp public class VNTrackTranslationalImageRegistrationRequest : Vision.VNStatefulRequest { // constructors public VNTrackTranslationalImageRegistrationRequest (); protected VNTrackTranslationalImageRegistrationRequest (Foundation.NSObjectFlag t); protected VNTrackTranslationalImageRegistrationRequest (IntPtr handle); public VNTrackTranslationalImageRegistrationRequest (VNRequestCompletionHandler completionHandler); // properties public override IntPtr 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 ```csharp [Serializable] public enum VNTrackTranslationalImageRegistrationRequestRevision { One = 1, } ``` ### New Namespace Cinematic #### New Type: Cinematic.CNAssetInfo ```csharp public class CNAssetInfo : Foundation.NSObject { // constructors protected CNAssetInfo (Foundation.NSObjectFlag t); protected CNAssetInfo (IntPtr handle); // properties public virtual AVFoundation.AVAssetTrack[] AllCinematicTracks { get; } public virtual AVFoundation.AVAsset Asset { get; } public virtual AVFoundation.AVAssetTrack CinematicDisparityTrack { get; } public virtual AVFoundation.AVAssetTrack CinematicMetadataTrack { get; } public virtual AVFoundation.AVAssetTrack CinematicVideoTrack { get; } public override IntPtr ClassHandle { get; } public virtual AVFoundation.AVAssetTrack FrameTimingTrack { get; } public virtual CoreGraphics.CGSize NaturalSize { get; } public virtual CoreGraphics.CGSize PreferredSize { get; } public virtual CoreGraphics.CGAffineTransform PreferredTransform { get; } public virtual Foundation.NSNumber[] SampleDataTrackIds { get; } public virtual CoreMedia.CMTimeRange TimeRange { get; } public virtual Foundation.NSNumber[] VideoCompositionTrackIds { get; } public virtual AVFoundation.AVAssetTrack[] VideoCompositionTracks { get; } // methods public static void CheckIfCinematic (AVFoundation.AVAsset asset, System.Action<bool> completionHandler); public static System.Threading.Tasks.Task<bool> CheckIfCinematicAsync (AVFoundation.AVAsset asset); public static void LoadFromAsset (AVFoundation.AVAsset asset, System.Action<CNAssetInfo,Foundation.NSError> completionHandler); public static System.Threading.Tasks.Task<CNAssetInfo> LoadFromAssetAsync (AVFoundation.AVAsset asset); } ``` #### New Type: Cinematic.CNBoundsPrediction ```csharp public class CNBoundsPrediction : Foundation.NSObject, Foundation.INSCopying, Foundation.INSMutableCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors public CNBoundsPrediction (); protected CNBoundsPrediction (Foundation.NSObjectFlag t); protected CNBoundsPrediction (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual float Confidence { get; set; } public virtual CoreGraphics.CGRect NormalizedBounds { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual Foundation.NSObject MutableCopy (Foundation.NSZone zone); } ``` #### New Type: Cinematic.CNCinematicErrorCode ```csharp [Serializable] public enum CNCinematicErrorCode { Cancelled = 7, Incompatible = 6, Incomplete = 3, Malformed = 4, Unknown = 1, Unreadable = 2, Unsupported = 5, } ``` #### New Type: Cinematic.CNCinematicErrorCodeExtensions ```csharp public static class CNCinematicErrorCodeExtensions { // methods public static Foundation.NSString GetDomain (this CNCinematicErrorCode self); } ``` #### New Type: Cinematic.CNCompositionInfo ```csharp public class CNCompositionInfo : Cinematic.CNAssetInfo { // constructors public CNCompositionInfo (); protected CNCompositionInfo (Foundation.NSObjectFlag t); protected CNCompositionInfo (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual bool InsertTimeRange (CoreMedia.CMTimeRange timeRange, CNAssetInfo assetInfo, CoreMedia.CMTime startTime, out Foundation.NSError outError); } ``` #### New Type: Cinematic.CNCustomDetectionTrack ```csharp public class CNCustomDetectionTrack : Cinematic.CNDetectionTrack { // constructors public CNCustomDetectionTrack (); protected CNCustomDetectionTrack (Foundation.NSObjectFlag t); protected CNCustomDetectionTrack (IntPtr handle); public CNCustomDetectionTrack (CNDetection[] detections, bool applySmoothing); // properties public virtual CNDetection[] AllDetections { get; } public override IntPtr ClassHandle { get; } } ``` #### New Type: Cinematic.CNDecision ```csharp public class CNDecision : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected CNDecision (Foundation.NSObjectFlag t); protected CNDecision (IntPtr handle); public CNDecision (CoreMedia.CMTime time, long detectionId, bool isStrong, CNDecisionIdentifierType identifierType); // properties public override IntPtr ClassHandle { get; } public virtual long DetectionGroupId { get; } public virtual long DetectionId { get; } public virtual bool GroupDecision { get; } public virtual bool StrongDecision { get; } public virtual CoreMedia.CMTime Time { get; } public virtual bool UserDecision { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: Cinematic.CNDecisionIdentifierType ```csharp [Serializable] public enum CNDecisionIdentifierType { Group = 1, Single = 0, } ``` #### New Type: Cinematic.CNDetection ```csharp public class CNDetection : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected CNDetection (Foundation.NSObjectFlag t); protected CNDetection (IntPtr handle); public CNDetection (CoreMedia.CMTime time, CNDetectionType detectionType, CoreGraphics.CGRect normalizedRect, float focusDisparity); // properties public override IntPtr ClassHandle { get; } public virtual long DetectionGroupId { get; } public virtual long DetectionId { get; } public virtual CNDetectionType DetectionType { get; } public virtual float FocusDisparity { get; } public virtual CoreGraphics.CGRect NormalizedRect { get; } public virtual CoreMedia.CMTime Time { get; } // methods public static string AccessibilityLabelForDetectionType (CNDetectionType detectionType); public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static float DisparityInNormalizedRect (CoreGraphics.CGRect normalizedRect, CoreVideo.CVPixelBuffer sourceDisparity, CNDetectionType detectionType, float priorDisparity); public static bool IsValidDetectionGroupId (long detectionGroupId); public static bool IsValidDetectionId (long detectionId); } ``` #### New Type: Cinematic.CNDetectionTrack ```csharp public class CNDetectionTrack : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected CNDetectionTrack (Foundation.NSObjectFlag t); protected CNDetectionTrack (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual long DetectionGroupId { get; } public virtual long DetectionId { get; } public virtual CNDetectionType DetectionType { get; } public virtual bool Discrete { get; } public virtual bool UserCreated { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual CNDetection GetDetectionAtOrBeforeTime (CoreMedia.CMTime time); public virtual CNDetection GetDetectionNearestTime (CoreMedia.CMTime time); public virtual CNDetection[] GetDetectionsInTimeRange (CoreMedia.CMTimeRange timeRange); } ``` #### New Type: Cinematic.CNDetectionType ```csharp [Serializable] public enum CNDetectionType { AutoFocus = 100, CatBody = 4, CatHead = 9, Custom = 102, DogBody = 5, DogHead = 10, FixedFocus = 101, HumanFace = 1, HumanHead = 2, HumanTorso = 3, SportsBall = 11, Unknown = 0, } ``` #### New Type: Cinematic.CNFixedDetectionTrack ```csharp public class CNFixedDetectionTrack : Cinematic.CNDetectionTrack { // constructors public CNFixedDetectionTrack (); public CNFixedDetectionTrack (CNDetection originalDetection); protected CNFixedDetectionTrack (Foundation.NSObjectFlag t); protected CNFixedDetectionTrack (IntPtr handle); public CNFixedDetectionTrack (float focusDisparity); // properties public override IntPtr ClassHandle { get; } public virtual float FocusDisparity { get; } public virtual CNDetection OriginalDetection { get; } } ``` #### New Type: Cinematic.CNObjectTracker ```csharp public class CNObjectTracker : Foundation.NSObject { // constructors protected CNObjectTracker (Foundation.NSObjectFlag t); public CNObjectTracker (Metal.IMTLCommandQueue commandQueue); protected CNObjectTracker (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual CNDetectionTrack FinishDetectionTrack { get; } public static bool IsSupported { get; } // methods public virtual CNBoundsPrediction ContinueTracking (CoreMedia.CMTime atTime, CoreVideo.CVPixelBuffer sourceImage, CoreVideo.CVPixelBuffer sourceDisparity); public virtual CNBoundsPrediction FindObject (CoreGraphics.CGPoint point, CoreVideo.CVPixelBuffer sourceImage); public virtual void ResetDetectionTrack (); public virtual bool StartTracking (CoreMedia.CMTime atTime, CoreGraphics.CGRect normalizedBounds, CoreVideo.CVPixelBuffer sourceImage, CoreVideo.CVPixelBuffer sourceDisparity); } ``` #### New Type: Cinematic.CNRenderingQuality ```csharp [Serializable] public enum CNRenderingQuality { Export = 2, ExportHigh = 3, Preview = 1, Thumbnail = 0, } ``` #### New Type: Cinematic.CNRenderingSession ```csharp public class CNRenderingSession : Foundation.NSObject { // constructors protected CNRenderingSession (Foundation.NSObjectFlag t); protected CNRenderingSession (IntPtr handle); public CNRenderingSession (Metal.IMTLCommandQueue commandQueue, CNRenderingSessionAttributes sessionAttributes, CoreGraphics.CGAffineTransform preferredTransform, CNRenderingQuality quality); // properties public override IntPtr ClassHandle { get; } public virtual Metal.IMTLCommandQueue CommandQueue { get; } public static Foundation.NSNumber[] DestinationPixelFormatTypes { get; } public virtual CoreGraphics.CGAffineTransform PreferredTransform { get; } public virtual CNRenderingQuality Quality { get; } public virtual CNRenderingSessionAttributes SessionAttributes { get; } public static Foundation.NSNumber[] SourcePixelFormatTypes { get; } // methods public virtual bool EncodeRender (Metal.IMTLCommandBuffer commandBuffer, CNRenderingSessionFrameAttributes frameAttributes, CoreVideo.CVPixelBuffer sourceImage, CoreVideo.CVPixelBuffer sourceDisparity, CoreVideo.CVPixelBuffer destinationImage); public virtual bool EncodeRender (Metal.IMTLCommandBuffer commandBuffer, CNRenderingSessionFrameAttributes frameAttributes, CoreVideo.CVPixelBuffer sourceImage, CoreVideo.CVPixelBuffer sourceDisparity, Metal.IMTLTexture destinationRgba); public virtual bool EncodeRender (Metal.IMTLCommandBuffer commandBuffer, CNRenderingSessionFrameAttributes frameAttributes, CoreVideo.CVPixelBuffer sourceImage, CoreVideo.CVPixelBuffer sourceDisparity, Metal.IMTLTexture destinationLuma, Metal.IMTLTexture destinationChroma); } ``` #### New Type: Cinematic.CNRenderingSessionAttributes ```csharp public class CNRenderingSessionAttributes : Foundation.NSObject { // constructors protected CNRenderingSessionAttributes (Foundation.NSObjectFlag t); protected CNRenderingSessionAttributes (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nint RenderingVersion { get; } // methods public static void Load (AVFoundation.AVAsset asset, System.Action<CNRenderingSessionAttributes,Foundation.NSError> completionHandler); public static System.Threading.Tasks.Task<CNRenderingSessionAttributes> LoadAsync (AVFoundation.AVAsset asset); } ``` #### New Type: Cinematic.CNRenderingSessionFrameAttributes ```csharp public class CNRenderingSessionFrameAttributes : Foundation.NSObject, Foundation.INSCopying, Foundation.INSMutableCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected CNRenderingSessionFrameAttributes (Foundation.NSObjectFlag t); protected CNRenderingSessionFrameAttributes (IntPtr handle); public CNRenderingSessionFrameAttributes (AVFoundation.AVTimedMetadataGroup metadataGroup, CNRenderingSessionAttributes sessionAttributes); public CNRenderingSessionFrameAttributes (CoreMedia.CMSampleBuffer sampleBuffer, CNRenderingSessionAttributes sessionAttributes); // properties public override IntPtr ClassHandle { get; } public virtual float FNumber { get; set; } public virtual float FocusDisparity { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual Foundation.NSObject MutableCopy (Foundation.NSZone zone); } ``` #### New Type: Cinematic.CNScript ```csharp public class CNScript : Foundation.NSObject { // constructors protected CNScript (Foundation.NSObjectFlag t); protected CNScript (IntPtr handle); // properties public virtual CNDetectionTrack[] AddedDetectionTracks { get; } public virtual CNScriptChanges Changes { get; } public override IntPtr ClassHandle { get; } public virtual float FNumber { get; set; } public virtual CoreMedia.CMTimeRange TimeRange { get; } // methods public virtual long AddDetectionTrack (CNDetectionTrack detectionTrack); public virtual bool AddUserDecision (CNDecision decision); public virtual CNDecision[] GetBaseDecisions (CoreMedia.CMTimeRange timeRange); public virtual CNScriptChanges GetChangesTrimmed (CoreMedia.CMTimeRange timeRange); public virtual CNDecision GetDecision (CoreMedia.CMTime time, CoreMedia.CMTime tolerance); public virtual CNDecision GetDecisionAfterTime (CoreMedia.CMTime time); public virtual CNDecision GetDecisionBeforeTime (CoreMedia.CMTime time); public virtual CNDecision[] GetDecisions (CoreMedia.CMTimeRange timeRange); public virtual CNDetectionTrack GetDetectionTrack (CNDecision decision); public virtual CNDetectionTrack GetDetectionTrackForId (long detectionId); public virtual CNScriptFrame GetFrame (CoreMedia.CMTime time, CoreMedia.CMTime tolerance); public virtual CNScriptFrame[] GetFrames (CoreMedia.CMTimeRange timeRange); public virtual CNDecision GetPrimaryDecision (CoreMedia.CMTime time); public virtual CNDecision GetSecondaryDecision (CoreMedia.CMTime time); public virtual CoreMedia.CMTimeRange GetTimeRangeOfTransitionAfterDecision (CNDecision decision); public virtual CoreMedia.CMTimeRange GetTimeRangeOfTransitionBeforeDecision (CNDecision decision); public virtual CNDecision[] GetUserDecisions (CoreMedia.CMTimeRange timeRange); public static void Load (AVFoundation.AVAsset asset, CNScriptChanges changes, Foundation.NSProgress progress, System.Action<CNScript,Foundation.NSError> completionHandler); public static System.Threading.Tasks.Task<CNScript> LoadAsync (AVFoundation.AVAsset asset, CNScriptChanges changes, Foundation.NSProgress progress); public virtual void Reload (CNScriptChanges changes); public virtual void RemoveAllUserDecisions (); public virtual bool RemoveDetectionTrack (CNDetectionTrack detectionTrack); public virtual bool RemoveUserDecision (CNDecision decision); } ``` #### New Type: Cinematic.CNScriptChanges ```csharp public class CNScriptChanges : Foundation.NSObject { // constructors public CNScriptChanges (Foundation.NSData dataRepresentation); protected CNScriptChanges (Foundation.NSObjectFlag t); protected CNScriptChanges (IntPtr handle); // properties public virtual CNDetectionTrack[] AddedDetectionTracks { get; } public override IntPtr ClassHandle { get; } public virtual Foundation.NSData DataRepresentation { get; } public virtual float FNumber { get; } public virtual CNDecision[] UserDecisions { get; } } ``` #### New Type: Cinematic.CNScriptFrame ```csharp public class CNScriptFrame : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected CNScriptFrame (Foundation.NSObjectFlag t); protected CNScriptFrame (IntPtr handle); // properties public virtual CNDetection[] AllDetections { get; } public override IntPtr ClassHandle { get; } public virtual CNDetection FocusDetection { get; } public virtual float FocusDisparity { get; } public virtual CoreMedia.CMTime Time { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual CNDetection GetBestDetectionForGroupId (long detectionGroupId); public virtual CNDetection GetDetectionForId (long detectionId); } ``` ### New Namespace CoreMidi #### New Type: CoreMidi.MidiCVStatus ```csharp [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 ```csharp [Serializable] public enum MidiMessageType { ChannelVoice1 = 2, ChannelVoice2 = 4, Data128 = 5, SysEx = 3, System = 1, UnknownF = 15, Utility = 0, } ``` #### New Type: CoreMidi.MidiNetworkConnectionPolicy ```csharp [Serializable] public enum MidiNetworkConnectionPolicy { Anyone = 2, HostsInContactsList = 1, NoOne = 0, } ``` #### New Type: CoreMidi.MidiNoteAttribute ```csharp [Serializable] public enum MidiNoteAttribute { ManufacturerSpecific = 1, None = 0, Pitch = 3, ProfileSpecific = 2, } ``` #### New Type: CoreMidi.MidiPerNoteManagementOptions ```csharp [Serializable] [Flags] public enum MidiPerNoteManagementOptions { Detach = 2, Reset = 1, } ``` #### New Type: CoreMidi.MidiProgramChangeOptions ```csharp [Serializable] [Flags] public enum MidiProgramChangeOptions { BankValid = 1, } ``` #### New Type: CoreMidi.MidiProtocolId ```csharp [Serializable] public enum MidiProtocolId { Protocol_1_0 = 1, Protocol_2_0 = 2, } ``` #### New Type: CoreMidi.MidiSysExStatus ```csharp [Serializable] public enum MidiSysExStatus { Complete = 0, Continue = 2, End = 3, MixedDataSetHeader = 8, MixedDataSetPayload = 9, Start = 1, } ``` #### New Type: CoreMidi.MidiSystemStatus ```csharp [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 ```csharp [Serializable] public enum MidiUtilityStatus { JitterReductionClock = 1, JitterReductionTimestamp = 2, Noop = 0, } ``` ### New Namespace DeviceDiscoveryUI #### New Type: DeviceDiscoveryUI.DDDevicePickerViewController ```csharp public class DDDevicePickerViewController : UIKit.UIViewController { // constructors public DDDevicePickerViewController (Foundation.NSCoder coder); protected DDDevicePickerViewController (Foundation.NSObjectFlag t); protected DDDevicePickerViewController (IntPtr handle); public DDDevicePickerViewController (Network.NWBrowserDescriptor browseDescriptor, Network.NWParameters parameters); // properties public override IntPtr ClassHandle { get; } // methods public static bool IsSupported (Network.NWBrowserDescriptor browseDescriptor, Network.NWParameters parameters); public void SetDevicePicker (DDDevicePickerViewController.DevicePickerCompletionHandler devicePickerCompletionHandler); // inner types public sealed delegate DevicePickerCompletionHandler : System.MulticastDelegate { // constructors public DDDevicePickerViewController.DevicePickerCompletionHandler (object object, IntPtr method); // methods public virtual System.IAsyncResult BeginInvoke (Network.NWEndpoint endpoint, Network.NWError error, System.AsyncCallback callback, object object); public virtual void EndInvoke (System.IAsyncResult result); public virtual void Invoke (Network.NWEndpoint endpoint, Network.NWError error); } } ``` ### New Namespace NetworkExtension #### New Type: NetworkExtension.INWTcpConnectionAuthenticationDelegate ```csharp public interface INWTcpConnectionAuthenticationDelegate : ObjCRuntime.INativeObject, System.IDisposable { } ``` #### New Type: NetworkExtension.NEAppProxyFlowError ```csharp [Serializable] public enum NEAppProxyFlowError { Aborted = 5, DatagramTooLarge = 9, HostUnreachable = 3, Internal = 8, InvalidArgument = 4, None = 0, NotConnected = 1, PeerReset = 2, ReadAlreadyPending = 10, Refused = 6, TimedOut = 7, } ``` #### New Type: NetworkExtension.NEAppProxyFlowErrorExtensions ```csharp public static class NEAppProxyFlowErrorExtensions { // methods public static Foundation.NSString GetDomain (this NEAppProxyFlowError self); } ``` #### New Type: NetworkExtension.NEDnsOverHttpsSettings ```csharp public class NEDnsOverHttpsSettings : NetworkExtension.NEDnsSettings { // constructors public NEDnsOverHttpsSettings (); public NEDnsOverHttpsSettings (Foundation.NSCoder coder); protected NEDnsOverHttpsSettings (Foundation.NSObjectFlag t); protected NEDnsOverHttpsSettings (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSData IdentityReference { get; set; } public virtual Foundation.NSUrl ServerUrl { get; set; } } ``` #### New Type: NetworkExtension.NEDnsOverTlsSettings ```csharp public class NEDnsOverTlsSettings : NetworkExtension.NEDnsSettings { // constructors public NEDnsOverTlsSettings (); public NEDnsOverTlsSettings (Foundation.NSCoder coder); protected NEDnsOverTlsSettings (Foundation.NSObjectFlag t); protected NEDnsOverTlsSettings (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSData IdentityReference { get; set; } public virtual string ServerName { get; set; } } ``` #### New Type: NetworkExtension.NEDnsProtocol ```csharp [Serializable] public enum NEDnsProtocol { Cleartext = 1, Https = 3, Tls = 2, } ``` #### New Type: NetworkExtension.NEDnsSettings ```csharp public class NEDnsSettings : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NEDnsSettings (Foundation.NSCoder coder); protected NEDnsSettings (Foundation.NSObjectFlag t); protected NEDnsSettings (IntPtr handle); public NEDnsSettings (string[] servers); // properties public override IntPtr ClassHandle { get; } public virtual NEDnsProtocol DnsProtocol { get; } public virtual string DomainName { get; set; } public virtual string[] MatchDomains { get; set; } public virtual bool MatchDomainsNoSearch { get; set; } public virtual string[] SearchDomains { get; set; } public virtual string[] Servers { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEEvaluateConnectionRule ```csharp public class NEEvaluateConnectionRule : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NEEvaluateConnectionRule (); public NEEvaluateConnectionRule (Foundation.NSCoder coder); protected NEEvaluateConnectionRule (Foundation.NSObjectFlag t); protected NEEvaluateConnectionRule (IntPtr handle); public NEEvaluateConnectionRule (string[] domains, NEEvaluateConnectionRuleAction action); // properties public virtual NEEvaluateConnectionRuleAction Action { get; } public override IntPtr ClassHandle { get; } public virtual string[] MatchDomains { get; } public virtual Foundation.NSUrl ProbeUrl { get; set; } public virtual string[] UseDnsServers { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEEvaluateConnectionRuleAction ```csharp [Serializable] public enum NEEvaluateConnectionRuleAction { ConnectIfNeeded = 1, NeverConnect = 2, } ``` #### New Type: NetworkExtension.NEFailureHandlerProvider ```csharp public class NEFailureHandlerProvider : NetworkExtension.NEProvider { // constructors protected NEFailureHandlerProvider (Foundation.NSObjectFlag t); protected NEFailureHandlerProvider (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual void HandleFailure (Foundation.NSError error, System.Action completionHandler); public virtual System.Threading.Tasks.Task HandleFailureAsync (Foundation.NSError error); } ``` #### New Type: NetworkExtension.NEFilterFlow ```csharp public class NEFilterFlow { // constructors public NEFilterFlow (); // fields public static const ulong MaxBytes; } ``` #### New Type: NetworkExtension.NEFilterProvider ```csharp public class NEFilterProvider { // constructors public NEFilterProvider (); // properties public static Foundation.NSString RemediationUrlFlowUrl { get; } public static Foundation.NSString RemediationUrlFlowUrlHostname { get; } public static Foundation.NSString RemediationUrlOrganization { get; } public static Foundation.NSString RemediationUrlUsername { get; } } ``` #### New Type: NetworkExtension.NEIPv4Route ```csharp public class NEIPv4Route : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NEIPv4Route (Foundation.NSCoder coder); protected NEIPv4Route (Foundation.NSObjectFlag t); protected NEIPv4Route (IntPtr handle); public NEIPv4Route (string address, string subnetMask); // properties public override IntPtr ClassHandle { get; } public static NEIPv4Route DefaultRoute { get; } public virtual string DestinationAddress { get; } public virtual string DestinationSubnetMask { get; } public virtual string GatewayAddress { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEIPv4Settings ```csharp public class NEIPv4Settings : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NEIPv4Settings (Foundation.NSCoder coder); protected NEIPv4Settings (Foundation.NSObjectFlag t); protected NEIPv4Settings (IntPtr handle); public NEIPv4Settings (string[] addresses, string[] subnetMasks); // properties public virtual string[] Addresses { get; } public override IntPtr ClassHandle { get; } public virtual NEIPv4Route[] ExcludedRoutes { get; set; } public virtual NEIPv4Route[] IncludedRoutes { get; set; } public virtual string[] SubnetMasks { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEIPv6Route ```csharp public class NEIPv6Route : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NEIPv6Route (Foundation.NSCoder coder); protected NEIPv6Route (Foundation.NSObjectFlag t); protected NEIPv6Route (IntPtr handle); public NEIPv6Route (string address, Foundation.NSNumber networkPrefixLength); // properties public override IntPtr ClassHandle { get; } public static NEIPv6Route DefaultRoute { get; } public virtual string DestinationAddress { get; } public virtual Foundation.NSNumber DestinationNetworkPrefixLength { get; } public virtual string GatewayAddress { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEIPv6Settings ```csharp public class NEIPv6Settings : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NEIPv6Settings (Foundation.NSCoder coder); protected NEIPv6Settings (Foundation.NSObjectFlag t); protected NEIPv6Settings (IntPtr handle); public NEIPv6Settings (string[] addresses, Foundation.NSNumber[] networkPrefixLengths); // properties public virtual string[] Addresses { get; } public override IntPtr ClassHandle { get; } public virtual NEIPv6Route[] ExcludedRoutes { get; set; } public virtual NEIPv6Route[] IncludedRoutes { get; set; } public virtual Foundation.NSNumber[] NetworkPrefixLengths { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEOnDemandRule ```csharp public abstract class NEOnDemandRule : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected NEOnDemandRule (); protected NEOnDemandRule (Foundation.NSCoder coder); protected NEOnDemandRule (Foundation.NSObjectFlag t); protected NEOnDemandRule (IntPtr handle); // properties public virtual NEOnDemandRuleAction Action { get; } public override IntPtr ClassHandle { get; } public virtual string[] DnsSearchDomainMatch { get; set; } public virtual string[] DnsServerAddressMatch { get; set; } public virtual NEOnDemandRuleInterfaceType InterfaceTypeMatch { get; set; } public virtual Foundation.NSUrl ProbeUrl { get; set; } public virtual string[] SsidMatch { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEOnDemandRuleAction ```csharp [Serializable] public enum NEOnDemandRuleAction { Connect = 1, Disconnect = 2, EvaluateConnection = 3, Ignore = 4, } ``` #### New Type: NetworkExtension.NEOnDemandRuleConnect ```csharp public class NEOnDemandRuleConnect : NetworkExtension.NEOnDemandRule { // constructors public NEOnDemandRuleConnect (); public NEOnDemandRuleConnect (Foundation.NSCoder coder); protected NEOnDemandRuleConnect (Foundation.NSObjectFlag t); protected NEOnDemandRuleConnect (IntPtr handle); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: NetworkExtension.NEOnDemandRuleDisconnect ```csharp public class NEOnDemandRuleDisconnect : NetworkExtension.NEOnDemandRule { // constructors public NEOnDemandRuleDisconnect (); public NEOnDemandRuleDisconnect (Foundation.NSCoder coder); protected NEOnDemandRuleDisconnect (Foundation.NSObjectFlag t); protected NEOnDemandRuleDisconnect (IntPtr handle); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: NetworkExtension.NEOnDemandRuleEvaluateConnection ```csharp public class NEOnDemandRuleEvaluateConnection : NetworkExtension.NEOnDemandRule { // constructors public NEOnDemandRuleEvaluateConnection (); public NEOnDemandRuleEvaluateConnection (Foundation.NSCoder coder); protected NEOnDemandRuleEvaluateConnection (Foundation.NSObjectFlag t); protected NEOnDemandRuleEvaluateConnection (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NEEvaluateConnectionRule[] ConnectionRules { get; set; } } ``` #### New Type: NetworkExtension.NEOnDemandRuleIgnore ```csharp public class NEOnDemandRuleIgnore : NetworkExtension.NEOnDemandRule { // constructors public NEOnDemandRuleIgnore (); public NEOnDemandRuleIgnore (Foundation.NSCoder coder); protected NEOnDemandRuleIgnore (Foundation.NSObjectFlag t); protected NEOnDemandRuleIgnore (IntPtr handle); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: NetworkExtension.NEOnDemandRuleInterfaceType ```csharp [Serializable] public enum NEOnDemandRuleInterfaceType { Any = 0, Cellular = 3, Ethernet = 1, WiFi = 2, } ``` #### New Type: NetworkExtension.NEPacket ```csharp public class NEPacket : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NEPacket (); public NEPacket (Foundation.NSCoder coder); protected NEPacket (Foundation.NSObjectFlag t); protected NEPacket (IntPtr handle); public NEPacket (Foundation.NSData data, byte protocolFamily); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSData Data { get; } public virtual byte ProtocolFamily { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEPacketTunnelFlow ```csharp public class NEPacketTunnelFlow : Foundation.NSObject { // constructors public NEPacketTunnelFlow (); protected NEPacketTunnelFlow (Foundation.NSObjectFlag t); protected NEPacketTunnelFlow (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual void ReadPacketObjects (System.Action<NEPacket[]> completionHandler); public virtual System.Threading.Tasks.Task<NEPacket[]> ReadPacketObjectsAsync (); public virtual void ReadPackets (System.Action<Foundation.NSData[],Foundation.NSNumber[]> completionHandler); public virtual System.Threading.Tasks.Task<NEPacketTunnelFlowReadResult> ReadPacketsAsync (); public virtual bool WritePacketObjects (NEPacket[] packets); public virtual bool WritePackets (Foundation.NSData[] packets, Foundation.NSNumber[] protocols); } ``` #### New Type: NetworkExtension.NEPacketTunnelFlowReadResult ```csharp public class NEPacketTunnelFlowReadResult { // constructors public NEPacketTunnelFlowReadResult (Foundation.NSData[] packets, Foundation.NSNumber[] protocols); // properties public Foundation.NSData[] Packets { get; set; } public Foundation.NSNumber[] Protocols { get; set; } } ``` #### New Type: NetworkExtension.NEPacketTunnelNetworkSettings ```csharp public class NEPacketTunnelNetworkSettings : NetworkExtension.NETunnelNetworkSettings { // constructors [Obsolete ("This constructor does not create a valid instance of the type.")] public NEPacketTunnelNetworkSettings (); public NEPacketTunnelNetworkSettings (Foundation.NSCoder coder); protected NEPacketTunnelNetworkSettings (Foundation.NSObjectFlag t); protected NEPacketTunnelNetworkSettings (IntPtr handle); public NEPacketTunnelNetworkSettings (string address); // properties public override IntPtr ClassHandle { get; } public virtual NEIPv4Settings IPv4Settings { get; set; } public virtual NEIPv6Settings IPv6Settings { get; set; } public virtual Foundation.NSNumber Mtu { get; set; } public virtual Foundation.NSNumber TunnelOverheadBytes { get; set; } } ``` #### New Type: NetworkExtension.NEPacketTunnelProvider ```csharp public class NEPacketTunnelProvider : NetworkExtension.NETunnelProvider { // constructors public NEPacketTunnelProvider (); protected NEPacketTunnelProvider (Foundation.NSObjectFlag t); protected NEPacketTunnelProvider (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NEPacketTunnelFlow PacketFlow { get; } // methods public virtual void CancelTunnel (Foundation.NSError error); public virtual NWTcpConnection CreateTcpConnection (NWEndpoint remoteEndpoint, bool enableTls, NWTlsParameters tlsParameters, INWTcpConnectionAuthenticationDelegate delegate); [Obsolete ("Use the overload accepting a 'INWTcpConnectionAuthenticationDelegate' argument.")] public virtual NWTcpConnection CreateTcpConnection (NWEndpoint remoteEndpoint, bool enableTls, NWTlsParameters tlsParameters, NWTcpConnectionAuthenticationDelegate delegate); public virtual NWUdpSession CreateUdpSession (NWEndpoint remoteEndpoint, NWHostEndpoint localEndpoint); public virtual void StartTunnel (Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options, System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task StartTunnelAsync (Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options); public virtual void StopTunnel (NEProviderStopReason reason, System.Action completionHandler); public virtual System.Threading.Tasks.Task StopTunnelAsync (NEProviderStopReason reason); } ``` #### New Type: NetworkExtension.NEProvider ```csharp public class NEProvider : Foundation.NSObject { // constructors protected NEProvider (Foundation.NSObjectFlag t); protected NEProvider (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NWPath DefaultPath { get; } // methods public virtual NWTcpConnection CreateTcpConnectionToEndpoint (NWEndpoint remoteEndpoint, bool enableTLS, NWTlsParameters TLSParameters, Foundation.NSObject connectionDelegate); public virtual NWUdpSession CreateUdpSessionToEndpoint (NWEndpoint remoteEndpoint, NWHostEndpoint localEndpoint); public virtual void Sleep (System.Action completionHandler); public virtual System.Threading.Tasks.Task SleepAsync (); public static void StartSystemExtensionMode (); public virtual void Wake (); } ``` #### New Type: NetworkExtension.NEProviderStopReason ```csharp [Serializable] public enum NEProviderStopReason { AppUpdate = 16, AuthenticationCanceled = 6, ConfigurationDisabled = 9, ConfigurationFailed = 7, ConfigurationRemoved = 10, ConnectionFailed = 14, IdleTimeout = 8, NoNetworkAvailable = 3, None = 0, ProviderDisabled = 5, ProviderFailed = 2, Sleep = 15, Superseded = 11, UnrecoverableNetworkChange = 4, UserInitiated = 1, UserLogout = 12, UserSwitch = 13, } ``` #### New Type: NetworkExtension.NEProxyServer ```csharp public class NEProxyServer : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NEProxyServer (Foundation.NSCoder coder); protected NEProxyServer (Foundation.NSObjectFlag t); protected NEProxyServer (IntPtr handle); public NEProxyServer (string address, nint port); // properties public virtual string Address { get; } public virtual bool AuthenticationRequired { get; set; } public override IntPtr ClassHandle { get; } public virtual string Password { get; set; } public virtual nint Port { get; } public virtual string Username { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEProxySettings ```csharp public class NEProxySettings : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NEProxySettings (); public NEProxySettings (Foundation.NSCoder coder); protected NEProxySettings (Foundation.NSObjectFlag t); protected NEProxySettings (IntPtr handle); // properties public virtual bool AutoProxyConfigurationEnabled { get; set; } public override IntPtr ClassHandle { get; } public virtual string[] ExceptionList { get; set; } public virtual bool ExcludeSimpleHostnames { get; set; } public virtual bool HttpEnabled { get; set; } public virtual NEProxyServer HttpServer { get; set; } public virtual bool HttpsEnabled { get; set; } public virtual NEProxyServer HttpsServer { get; set; } public virtual string[] MatchDomains { get; set; } public virtual string ProxyAutoConfigurationJavaScript { get; set; } public virtual Foundation.NSUrl ProxyAutoConfigurationUrl { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NERelay ```csharp public class NERelay : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NERelay (); public NERelay (Foundation.NSCoder coder); protected NERelay (Foundation.NSObjectFlag t); protected NERelay (IntPtr handle); // properties public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSString> AdditionalHttpHeaderFields { get; set; } public override IntPtr ClassHandle { get; } public static Foundation.NSString ConfigurationDidChangeNotification { get; } public virtual Foundation.NSUrl DnsOverHttpsUrl { get; set; } public static Foundation.NSString ErrorDomain { get; } public virtual Foundation.NSUrl Http2RelayUrl { get; set; } public virtual Foundation.NSUrl Http3RelayUrl { get; set; } public virtual Foundation.NSData IdentityData { get; set; } public virtual string IdentityDataPassword { get; set; } public virtual Foundation.NSData[] RawPublicKeys { get; set; } public virtual string SyntheticDnsAnswerIPv4Prefix { get; set; } public virtual string SyntheticDnsAnswerIPv6Prefix { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); // inner types public static class Notifications { // methods public static Foundation.NSObject ObserveConfigurationDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler); public static Foundation.NSObject ObserveConfigurationDidChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler); } } ``` #### New Type: NetworkExtension.NERelayManager ```csharp public class NERelayManager : Foundation.NSObject { // constructors public NERelayManager (); protected NERelayManager (Foundation.NSObjectFlag t); protected NERelayManager (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual bool Enabled { get; set; } public virtual string[] ExcludedDomains { get; set; } public virtual string LocalizedDescription { get; set; } public virtual string[] MatchDomains { get; set; } public virtual NEOnDemandRule[] OnDemandRules { get; set; } public virtual NERelay[] Relays { get; set; } public static NERelayManager Shared { get; } // methods public static void LoadAllManagersFromPreferences (System.Action<Foundation.NSArray<NERelayManager>> completionHandler); public static System.Threading.Tasks.Task<Foundation.NSArray<NERelayManager>> LoadAllManagersFromPreferencesAsync (); public virtual void LoadFromPreferences (System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task LoadFromPreferencesAsync (); public virtual void RemoveFromPreferences (System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task RemoveFromPreferencesAsync (); public virtual void SaveToPreferences (System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task SaveToPreferencesAsync (); } ``` #### New Type: NetworkExtension.NERelayManagerError ```csharp [Serializable] public enum NERelayManagerError { CannotBeRemoved = 4, Disabled = 2, Invalid = 1, Stale = 3, } ``` #### New Type: NetworkExtension.NETunnelNetworkSettings ```csharp public class NETunnelNetworkSettings : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NETunnelNetworkSettings (Foundation.NSCoder coder); protected NETunnelNetworkSettings (Foundation.NSObjectFlag t); protected NETunnelNetworkSettings (IntPtr handle); public NETunnelNetworkSettings (string address); // properties public override IntPtr ClassHandle { get; } public virtual NEDnsSettings DnsSettings { get; set; } public virtual NEProxySettings ProxySettings { get; set; } public virtual string TunnelRemoteAddress { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NETunnelProvider ```csharp public class NETunnelProvider : NetworkExtension.NEProvider { // constructors protected NETunnelProvider (Foundation.NSObjectFlag t); protected NETunnelProvider (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NEVpnProtocol ProtocolConfiguration { get; } public virtual bool Reasserting { get; set; } // methods public virtual void HandleAppMessage (Foundation.NSData messageData, System.Action<Foundation.NSData> completionHandler); public virtual System.Threading.Tasks.Task<Foundation.NSData> HandleAppMessageAsync (Foundation.NSData messageData); public virtual void SetTunnelNetworkSettings (NETunnelNetworkSettings tunnelNetworkSettings, System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task SetTunnelNetworkSettingsAsync (NETunnelNetworkSettings tunnelNetworkSettings); } ``` #### New Type: NetworkExtension.NETunnelProviderError ```csharp [Serializable] public enum NETunnelProviderError { Canceled = 2, Failed = 3, Invalid = 1, None = 0, } ``` #### New Type: NetworkExtension.NETunnelProviderErrorExtensions ```csharp public static class NETunnelProviderErrorExtensions { // methods public static Foundation.NSString GetDomain (this NETunnelProviderError self); } ``` #### New Type: NetworkExtension.NETunnelProviderManager ```csharp public class NETunnelProviderManager : NetworkExtension.NEVpnManager { // constructors public NETunnelProviderManager (); protected NETunnelProviderManager (Foundation.NSObjectFlag t); protected NETunnelProviderManager (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public static Foundation.NSString ErrorDomain { get; } // methods public static void LoadAllFromPreferences (System.Action<Foundation.NSArray,Foundation.NSError> completionHandler); public static System.Threading.Tasks.Task<Foundation.NSArray> LoadAllFromPreferencesAsync (); } ``` #### New Type: NetworkExtension.NETunnelProviderProtocol ```csharp public class NETunnelProviderProtocol : NetworkExtension.NEVpnProtocol { // constructors public NETunnelProviderProtocol (); public NETunnelProviderProtocol (Foundation.NSCoder coder); protected NETunnelProviderProtocol (Foundation.NSObjectFlag t); protected NETunnelProviderProtocol (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string ProviderBundleIdentifier { get; set; } public virtual Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> ProviderConfiguration { get; set; } } ``` #### New Type: NetworkExtension.NETunnelProviderSession ```csharp public class NETunnelProviderSession : NetworkExtension.NEVpnConnection { // constructors public NETunnelProviderSession (); protected NETunnelProviderSession (Foundation.NSObjectFlag t); protected NETunnelProviderSession (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual bool SendProviderMessage (Foundation.NSData messageData, out Foundation.NSError error, System.Action<Foundation.NSData> responseHandler); public virtual bool StartTunnel (Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options, out Foundation.NSError error); public virtual void StopTunnel (); } ``` #### New Type: NetworkExtension.NEVpnConnection ```csharp public class NEVpnConnection : Foundation.NSObject { // constructors public NEVpnConnection (); protected NEVpnConnection (Foundation.NSObjectFlag t); protected NEVpnConnection (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSDate ConnectedDate { get; } public virtual NEVpnManager Manager { get; } public virtual NEVpnStatus Status { get; } public static Foundation.NSString StatusDidChangeNotification { get; } // methods public virtual void FetchLastDisconnectError (System.Action<Foundation.NSError> handler); public virtual System.Threading.Tasks.Task FetchLastDisconnectErrorAsync (); public virtual bool StartVpnTunnel (out Foundation.NSError error); public bool StartVpnTunnel (NEVpnConnectionStartOptions options, out Foundation.NSError error); public virtual void StopVpnTunnel (); // inner types public static class Notifications { // methods public static Foundation.NSObject ObserveStatusDidChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler); public static Foundation.NSObject ObserveStatusDidChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler); } } ``` #### New Type: NetworkExtension.NEVpnConnectionError ```csharp [Serializable] public enum NEVpnConnectionError { AuthenticationFailed = 8, ClientCertificateExpired = 11, ClientCertificateInvalid = 9, ClientCertificateNotYetValid = 10, ConfigurationFailed = 4, ConfigurationNotFound = 13, NegotiationFailed = 15, NoNetworkAvailable = 2, Overslept = 1, PluginDisabled = 14, PluginFailed = 12, ServerAddressResolutionFailed = 5, ServerCertificateExpired = 19, ServerCertificateInvalid = 17, ServerCertificateNotYetValid = 18, ServerDead = 7, ServerDisconnected = 16, ServerNotResponding = 6, UnrecoverableNetworkChange = 3, } ``` #### New Type: NetworkExtension.NEVpnConnectionErrorExtensions ```csharp public static class NEVpnConnectionErrorExtensions { // methods public static Foundation.NSString GetDomain (this NEVpnConnectionError self); } ``` #### New Type: NetworkExtension.NEVpnConnectionStartOptions ```csharp public class NEVpnConnectionStartOptions : Foundation.DictionaryContainer { // constructors public NEVpnConnectionStartOptions (); public NEVpnConnectionStartOptions (Foundation.NSDictionary dictionary); // properties public Foundation.NSString Password { get; set; } public Foundation.NSString Username { get; set; } } ``` #### New Type: NetworkExtension.NEVpnError ```csharp [Serializable] public enum NEVpnError { ConfigurationDisabled = 2, ConfigurationInvalid = 1, ConfigurationReadWriteFailed = 5, ConfigurationStale = 4, ConfigurationUnknown = 6, ConnectionFailed = 3, } ``` #### New Type: NetworkExtension.NEVpnErrorExtensions ```csharp public static class NEVpnErrorExtensions { // methods public static Foundation.NSString GetDomain (this NEVpnError self); } ``` #### New Type: NetworkExtension.NEVpnIke2CertificateType ```csharp [Serializable] public enum NEVpnIke2CertificateType { ECDSA256 = 2, ECDSA384 = 3, ECDSA521 = 4, Ed25519 = 5, RSA = 1, Rsapss = 6, } ``` #### New Type: NetworkExtension.NEVpnIke2DeadPeerDetectionRate ```csharp [Serializable] public enum NEVpnIke2DeadPeerDetectionRate { High = 3, Low = 1, Medium = 2, None = 0, } ``` #### New Type: NetworkExtension.NEVpnIke2DiffieHellman ```csharp [Serializable] public enum NEVpnIke2DiffieHellman { Group0 = 0, Group1 = 1, Group14 = 14, Group15 = 15, Group16 = 16, Group17 = 17, Group18 = 18, Group19 = 19, Group2 = 2, Group20 = 20, Group21 = 21, Group31 = 31, Group32 = 32, Group5 = 5, Invalid = 0, } ``` #### New Type: NetworkExtension.NEVpnIke2EncryptionAlgorithm ```csharp [Serializable] public enum NEVpnIke2EncryptionAlgorithm { AES128 = 3, AES128GCM = 5, AES256 = 4, AES256GCM = 6, ChaCha20Poly1305 = 7, DES = 1, TripleDES = 2, } ``` #### New Type: NetworkExtension.NEVpnIke2IntegrityAlgorithm ```csharp [Serializable] public enum NEVpnIke2IntegrityAlgorithm { SHA160 = 2, SHA256 = 3, SHA384 = 4, SHA512 = 5, SHA96 = 1, } ``` #### New Type: NetworkExtension.NEVpnIke2SecurityAssociationParameters ```csharp public class NEVpnIke2SecurityAssociationParameters : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NEVpnIke2SecurityAssociationParameters (); public NEVpnIke2SecurityAssociationParameters (Foundation.NSCoder coder); protected NEVpnIke2SecurityAssociationParameters (Foundation.NSObjectFlag t); protected NEVpnIke2SecurityAssociationParameters (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NEVpnIke2DiffieHellman DiffieHellmanGroup { get; set; } public virtual NEVpnIke2EncryptionAlgorithm EncryptionAlgorithm { get; set; } public virtual NEVpnIke2IntegrityAlgorithm IntegrityAlgorithm { get; set; } public virtual int LifetimeMinutes { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEVpnIkeAuthenticationMethod ```csharp [Serializable] public enum NEVpnIkeAuthenticationMethod { Certificate = 1, None = 0, SharedSecret = 2, } ``` #### New Type: NetworkExtension.NEVpnIkev2TlsVersion ```csharp [Serializable] public enum NEVpnIkev2TlsVersion { Default = 0, Tls1_0 = 1, Tls1_1 = 2, Tls1_2 = 3, } ``` #### New Type: NetworkExtension.NEVpnManager ```csharp public class NEVpnManager : Foundation.NSObject { // constructors protected NEVpnManager (Foundation.NSObjectFlag t); protected NEVpnManager (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public static Foundation.NSString ConfigurationChangeNotification { get; } public virtual NEVpnConnection Connection { get; } public virtual bool Enabled { get; set; } public static Foundation.NSString ErrorDomain { get; } public virtual string LocalizedDescription { get; set; } public virtual bool OnDemandEnabled { get; set; } public virtual NEOnDemandRule[] OnDemandRules { get; set; } public virtual NEVpnProtocol ProtocolConfiguration { get; set; } public static NEVpnManager SharedManager { get; } // methods public virtual void LoadFromPreferences (System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task LoadFromPreferencesAsync (); public virtual void RemoveFromPreferences (System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task RemoveFromPreferencesAsync (); public virtual void SaveToPreferences (System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task SaveToPreferencesAsync (); // inner types public static class Notifications { // methods public static Foundation.NSObject ObserveConfigurationChange (System.EventHandler<Foundation.NSNotificationEventArgs> handler); public static Foundation.NSObject ObserveConfigurationChange (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler); } } ``` #### New Type: NetworkExtension.NEVpnProtocol ```csharp public abstract class NEVpnProtocol : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected NEVpnProtocol (); protected NEVpnProtocol (Foundation.NSCoder coder); protected NEVpnProtocol (Foundation.NSObjectFlag t); protected NEVpnProtocol (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual bool DisconnectOnSleep { get; set; } public virtual bool EnforceRoutes { get; set; } public virtual bool ExcludeLocalNetworks { get; set; } public virtual Foundation.NSData IdentityData { get; set; } public virtual string IdentityDataPassword { get; set; } public virtual Foundation.NSData IdentityReference { get; set; } public virtual bool IncludeAllNetworks { get; set; } public virtual Foundation.NSData PasswordReference { get; set; } public virtual NEProxySettings ProxySettings { get; set; } public virtual string ServerAddress { get; set; } public virtual string Username { get; set; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NEVpnProtocolIke2 ```csharp public class NEVpnProtocolIke2 : NetworkExtension.NEVpnProtocolIpSec { // constructors public NEVpnProtocolIke2 (); public NEVpnProtocolIke2 (Foundation.NSCoder coder); protected NEVpnProtocolIke2 (Foundation.NSObjectFlag t); protected NEVpnProtocolIke2 (IntPtr handle); // properties public virtual NEVpnIke2CertificateType CertificateType { get; set; } public virtual NEVpnIke2SecurityAssociationParameters ChildSecurityAssociationParameters { get; } public override IntPtr ClassHandle { get; } public virtual NEVpnIke2DeadPeerDetectionRate DeadPeerDetectionRate { get; set; } public virtual bool DisableMobike { get; set; } public virtual bool DisableRedirect { get; set; } public virtual bool EnableFallback { get; set; } public virtual bool EnablePfs { get; set; } public virtual bool EnableRevocationCheck { get; set; } public virtual NEVpnIke2SecurityAssociationParameters IKESecurityAssociationParameters { get; } public virtual NEVpnIkev2TlsVersion MaximumTlsVersion { get; set; } public virtual NEVpnIkev2TlsVersion MinimumTlsVersion { get; set; } public virtual nuint Mtu { get; set; } public virtual string ServerCertificateCommonName { get; set; } public virtual string ServerCertificateIssuerCommonName { get; set; } public virtual bool StrictRevocationCheck { get; set; } public virtual bool UseConfigurationAttributeInternalIPSubnet { get; set; } } ``` #### New Type: NetworkExtension.NEVpnProtocolIpSec ```csharp public class NEVpnProtocolIpSec : NetworkExtension.NEVpnProtocol { // constructors public NEVpnProtocolIpSec (); public NEVpnProtocolIpSec (Foundation.NSCoder coder); protected NEVpnProtocolIpSec (Foundation.NSObjectFlag t); protected NEVpnProtocolIpSec (IntPtr handle); // properties public virtual NEVpnIkeAuthenticationMethod AuthenticationMethod { get; set; } public override IntPtr ClassHandle { get; } public virtual string LocalIdentifier { get; set; } public virtual string RemoteIdentifier { get; set; } public virtual Foundation.NSData SharedSecretReference { get; set; } public virtual bool UseExtendedAuthentication { get; set; } } ``` #### New Type: NetworkExtension.NEVpnStatus ```csharp [Serializable] public enum NEVpnStatus { Connected = 3, Connecting = 2, Disconnected = 1, Disconnecting = 5, Invalid = 0, Reasserting = 4, } ``` #### New Type: NetworkExtension.NWBonjourServiceEndpoint ```csharp public class NWBonjourServiceEndpoint : NetworkExtension.NWEndpoint { // constructors public NWBonjourServiceEndpoint (Foundation.NSCoder coder); protected NWBonjourServiceEndpoint (Foundation.NSObjectFlag t); protected NWBonjourServiceEndpoint (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Domain { get; } public virtual string Name { get; } public virtual string Type { get; } // methods public static NWBonjourServiceEndpoint Create (string name, string type, string domain); } ``` #### New Type: NetworkExtension.NWEndpoint ```csharp public abstract class NWEndpoint : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected NWEndpoint (); protected NWEndpoint (Foundation.NSCoder coder); protected NWEndpoint (Foundation.NSObjectFlag t); protected NWEndpoint (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: NetworkExtension.NWHostEndpoint ```csharp public class NWHostEndpoint : NetworkExtension.NWEndpoint { // constructors [Obsolete ("Use the 'Create' method instead.")] public NWHostEndpoint (); public NWHostEndpoint (Foundation.NSCoder coder); protected NWHostEndpoint (Foundation.NSObjectFlag t); protected NWHostEndpoint (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Hostname { get; } public virtual string Port { get; } // methods public static NWHostEndpoint Create (string hostname, string port); } ``` #### New Type: NetworkExtension.NWPath ```csharp public class NWPath : Foundation.NSObject { // constructors [Obsolete ("This type is not meant to be user created.")] public NWPath (); protected NWPath (Foundation.NSObjectFlag t); protected NWPath (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual bool Constrained { get; } public virtual bool Expensive { get; } public virtual NWPathStatus Status { get; } // methods public virtual bool IsEqualToPath (NWPath path); } ``` #### New Type: NetworkExtension.NWPathStatus ```csharp [Serializable] public enum NWPathStatus { Invalid = 0, Satisfiable = 3, Satisfied = 1, Unsatisfied = 2, } ``` #### New Type: NetworkExtension.NWTcpConnection ```csharp public class NWTcpConnection : Foundation.NSObject { // constructors public NWTcpConnection (); protected NWTcpConnection (Foundation.NSObjectFlag t); public NWTcpConnection (NWTcpConnection connection); protected NWTcpConnection (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NWPath ConnectedPath { get; } public virtual NWEndpoint Endpoint { get; } public virtual Foundation.NSError Error { get; } public virtual bool HasBetterPath { get; } public virtual NWEndpoint LocalAddress { get; } public virtual NWEndpoint RemoteAddress { get; } public virtual NWTcpConnectionState State { get; } public virtual Foundation.NSData TxtRecord { get; } public virtual bool Viable { get; } // methods public virtual void Cancel (); public virtual void ReadLength (nuint length, System.Action<Foundation.NSData,Foundation.NSError> completion); public virtual System.Threading.Tasks.Task<Foundation.NSData> ReadLengthAsync (nuint length); public virtual void ReadMinimumLength (nuint minimum, nuint maximum, System.Action<Foundation.NSData,Foundation.NSError> completion); public virtual System.Threading.Tasks.Task<Foundation.NSData> ReadMinimumLengthAsync (nuint minimum, nuint maximum); public virtual void Write (Foundation.NSData data, System.Action<Foundation.NSError> completion); public virtual System.Threading.Tasks.Task WriteAsync (Foundation.NSData data); public virtual void WriteClose (); } ``` #### New Type: NetworkExtension.NWTcpConnectionAuthenticationDelegate ```csharp public class NWTcpConnectionAuthenticationDelegate : Foundation.NSObject, INWTcpConnectionAuthenticationDelegate, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NWTcpConnectionAuthenticationDelegate (); protected NWTcpConnectionAuthenticationDelegate (Foundation.NSObjectFlag t); protected NWTcpConnectionAuthenticationDelegate (IntPtr handle); // methods public virtual void EvaluateTrust (NWTcpConnection connection, Foundation.NSArray peerCertificateChain, System.Action<Security.SecTrust> completion); [Obsolete ("Use 'NWTcpConnectionAuthenticationDelegate_Extensions.EvaluateTrustAsync' instead.")] public virtual System.Threading.Tasks.Task<Security.SecTrust> EvaluateTrustAsync (NWTcpConnection connection, Foundation.NSArray peerCertificateChain); public virtual void ProvideIdentity (NWTcpConnection connection, System.Action<Security.SecIdentity,Foundation.NSArray> completion); public virtual bool ShouldEvaluateTrust (NWTcpConnection connection); public virtual bool ShouldProvideIdentity (NWTcpConnection connection); } ``` #### New Type: NetworkExtension.NWTcpConnectionAuthenticationDelegate_Extensions ```csharp public static class NWTcpConnectionAuthenticationDelegate_Extensions { // methods public static void EvaluateTrust (this INWTcpConnectionAuthenticationDelegate This, NWTcpConnection connection, Foundation.NSArray peerCertificateChain, System.Action<Security.SecTrust> completion); public static System.Threading.Tasks.Task<Security.SecTrust> EvaluateTrustAsync (this INWTcpConnectionAuthenticationDelegate This, NWTcpConnection connection, Foundation.NSArray peerCertificateChain); public static void ProvideIdentity (this INWTcpConnectionAuthenticationDelegate This, NWTcpConnection connection, System.Action<Security.SecIdentity,Foundation.NSArray> completion); public static bool ShouldEvaluateTrust (this INWTcpConnectionAuthenticationDelegate This, NWTcpConnection connection); public static bool ShouldProvideIdentity (this INWTcpConnectionAuthenticationDelegate This, NWTcpConnection connection); } ``` #### New Type: NetworkExtension.NWTcpConnectionState ```csharp [Serializable] public enum NWTcpConnectionState { Cancelled = 5, Connected = 3, Connecting = 1, Disconnected = 4, Invalid = 0, Waiting = 2, } ``` #### New Type: NetworkExtension.NWTlsParameters ```csharp public class NWTlsParameters : Foundation.NSObject { // constructors public NWTlsParameters (); protected NWTlsParameters (Foundation.NSObjectFlag t); protected NWTlsParameters (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual nuint MaximumSslProtocolVersion { get; set; } public virtual nuint MinimumSslProtocolVersion { get; set; } public virtual Foundation.NSSet<Foundation.NSNumber> SslCipherSuites { get; set; } public virtual Foundation.NSData TlsSessionID { get; set; } } ``` #### New Type: NetworkExtension.NWUdpSession ```csharp public class NWUdpSession : Foundation.NSObject { // constructors public NWUdpSession (); protected NWUdpSession (Foundation.NSObjectFlag t); public NWUdpSession (NWUdpSession session); protected NWUdpSession (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NWPath CurrentPath { get; } public virtual NWEndpoint Endpoint { get; } public virtual bool HasBetterPath { get; } public virtual nuint MaximumDatagramLength { get; } public virtual NWEndpoint ResolvedEndpoint { get; } public virtual NWUdpSessionState State { get; } public virtual bool Viable { get; } // methods public virtual void Cancel (); public virtual void SetReadHandler (System.Action<Foundation.NSArray,Foundation.NSError> handler, nuint maxDatagrams); public virtual void TryNextResolvedEndpoint (); public virtual void WriteDatagram (Foundation.NSData datagram, System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task WriteDatagramAsync (Foundation.NSData datagram); public virtual void WriteMultipleDatagrams (Foundation.NSData[] datagramArray, System.Action<Foundation.NSError> completionHandler); public virtual System.Threading.Tasks.Task WriteMultipleDatagramsAsync (Foundation.NSData[] datagramArray); } ``` #### New Type: NetworkExtension.NWUdpSessionState ```csharp [Serializable] public enum NWUdpSessionState { Cancelled = 5, Failed = 4, Invalid = 0, Preparing = 2, Ready = 3, Waiting = 1, } ``` ### New Namespace Phase #### New Type: Phase.PhaseAmbientMixerDefinition ```csharp public class PhaseAmbientMixerDefinition : Phase.PhaseMixerDefinition { // constructors protected PhaseAmbientMixerDefinition (Foundation.NSObjectFlag t); protected PhaseAmbientMixerDefinition (IntPtr handle); public PhaseAmbientMixerDefinition (AVFoundation.AVAudioChannelLayout layout, OpenTK.Quaternion orientation); public PhaseAmbientMixerDefinition (AVFoundation.AVAudioChannelLayout layout, OpenTK.Quaternion orientation, Foundation.NSString identifier); // properties public override IntPtr ClassHandle { get; } public virtual AVFoundation.AVAudioChannelLayout InputChannelLayout { get; } public virtual OpenTK.Quaternion Orientation { get; } } ``` #### New Type: Phase.PhaseAsset ```csharp public class PhaseAsset : Foundation.NSObject { // constructors protected PhaseAsset (Foundation.NSObjectFlag t); protected PhaseAsset (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Identifier { get; } } ``` #### New Type: Phase.PhaseAssetError ```csharp [Serializable] public enum PhaseAssetError { AlreadyExists = 1346920804, BadParameters = 1346920803, FailedToLoad = 1346920801, GeneralError = 1346920805, InvalidEngineInstance = 1346920802, MemoryAllocation = 1346920806, } ``` #### New Type: Phase.PhaseAssetErrorExtensions ```csharp public static class PhaseAssetErrorExtensions { // methods public static Foundation.NSString GetDomain (this PhaseAssetError self); } ``` #### New Type: Phase.PhaseAssetRegistry ```csharp public class PhaseAssetRegistry : Foundation.NSObject { // constructors protected PhaseAssetRegistry (Foundation.NSObjectFlag t); protected PhaseAssetRegistry (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSDictionary<Foundation.NSString,Phase.PhaseMetaParameter> GlobalMetaParameters { get; } // methods public virtual PhaseAsset GetAsset (string identifier); public virtual PhaseGlobalMetaParameterAsset RegisterGlobalMetaParameter (PhaseMetaParameterDefinition metaParameterDefinition, out Foundation.NSError error); public virtual PhaseSoundAsset RegisterSoundAsset (Foundation.NSData data, string identifier, AVFoundation.AVAudioFormat format, PhaseNormalizationMode normalizationMode, out Foundation.NSError error); public virtual PhaseSoundAsset RegisterSoundAsset (Foundation.NSUrl url, string identifier, PhaseAssetType assetType, AVFoundation.AVAudioChannelLayout channelLayout, PhaseNormalizationMode normalizationMode, out Foundation.NSError error); public virtual PhaseSoundEventNodeAsset RegisterSoundEventAsset (PhaseSoundEventNodeDefinition rootNode, string identifier, out Foundation.NSError error); public virtual void UnregisterAsset (string identifier, System.Action<bool> handler); public virtual System.Threading.Tasks.Task<bool> UnregisterAssetAsync (string identifier); } ``` #### New Type: Phase.PhaseAssetType ```csharp [Serializable] public enum PhaseAssetType { Resident = 0, Streamed = 1, } ``` #### New Type: Phase.PhaseBlendNodeDefinition ```csharp public class PhaseBlendNodeDefinition : Phase.PhaseSoundEventNodeDefinition { // constructors protected PhaseBlendNodeDefinition (Foundation.NSObjectFlag t); public PhaseBlendNodeDefinition (PhaseNumberMetaParameterDefinition blendMetaParameterDefinition); public PhaseBlendNodeDefinition (PhaseSpatialMixerDefinition spatialMixerDefinition); protected PhaseBlendNodeDefinition (IntPtr handle); public PhaseBlendNodeDefinition (PhaseNumberMetaParameterDefinition blendMetaParameterDefinition, string identifier); public PhaseBlendNodeDefinition (PhaseSpatialMixerDefinition spatialMixerDefinition, string identifier); // properties public virtual PhaseNumberMetaParameterDefinition BlendParameterDefinition { get; } public override IntPtr ClassHandle { get; } public virtual PhaseSpatialMixerDefinition SpatialMixerDefinitionForDistance { get; } // methods public virtual void AddRange (PhaseEnvelope envelope, PhaseSoundEventNodeDefinition subtree); public virtual void AddRangeForInputValuesAbove (double value, double fullGainAtValue, PhaseCurveType fadeCurveType, PhaseSoundEventNodeDefinition subtree); public virtual void AddRangeForInputValuesBelow (double value, double fullGainAtValue, PhaseCurveType fadeCurveType, PhaseSoundEventNodeDefinition subtree); public virtual void AddRangeForInputValuesBetween (double lowValue, double highValue, double fullGainAtLowValue, double fullGainAtHighValue, PhaseCurveType lowFadeCurveType, PhaseCurveType highFadeCurveType, PhaseSoundEventNodeDefinition subtree); } ``` #### New Type: Phase.PhaseCalibrationMode ```csharp [Serializable] public enum PhaseCalibrationMode { AbsoluteSpl = 2, None = 0, RelativeSpl = 1, } ``` #### New Type: Phase.PhaseChannelMixerDefinition ```csharp public class PhaseChannelMixerDefinition : Phase.PhaseMixerDefinition { // constructors public PhaseChannelMixerDefinition (AVFoundation.AVAudioChannelLayout layout); protected PhaseChannelMixerDefinition (Foundation.NSObjectFlag t); protected PhaseChannelMixerDefinition (IntPtr handle); public PhaseChannelMixerDefinition (AVFoundation.AVAudioChannelLayout layout, string identifier); // properties public override IntPtr ClassHandle { get; } public virtual AVFoundation.AVAudioChannelLayout InputChannelLayout { get; } } ``` #### New Type: Phase.PhaseCullOption ```csharp [Serializable] public enum PhaseCullOption { DoNotCull = 4, SleepWakeAtRandomOffset = 2, SleepWakeAtRealtimeOffset = 3, SleepWakeAtZero = 1, Terminate = 0, } ``` #### New Type: Phase.PhaseCurveType ```csharp [Serializable] public enum PhaseCurveType { Cubed = 1668432757, HoldStartValue = 1668434003, InverseCubed = 1668434243, InverseSigmoid = 1668434247, InverseSine = 1668434259, InverseSquared = 1668434257, JumpToEndValue = 1668434501, Linear = 1668435054, Sigmoid = 1668436839, Sine = 1668436846, Squared = 1668436849, } ``` #### New Type: Phase.PhaseDefinition ```csharp public class PhaseDefinition : Foundation.NSObject { // constructors protected PhaseDefinition (Foundation.NSObjectFlag t); protected PhaseDefinition (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Identifier { get; } } ``` #### New Type: Phase.PhaseDirectivityModelParameters ```csharp public class PhaseDirectivityModelParameters : Foundation.NSObject { // constructors protected PhaseDirectivityModelParameters (Foundation.NSObjectFlag t); protected PhaseDirectivityModelParameters (IntPtr handle); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: Phase.PhaseDistanceModelFadeOutParameters ```csharp public class PhaseDistanceModelFadeOutParameters : Foundation.NSObject { // constructors protected PhaseDistanceModelFadeOutParameters (Foundation.NSObjectFlag t); public PhaseDistanceModelFadeOutParameters (double cullDistance); protected PhaseDistanceModelFadeOutParameters (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual double CullDistance { get; } } ``` #### New Type: Phase.PhaseDistanceModelParameters ```csharp public class PhaseDistanceModelParameters : Foundation.NSObject { // constructors protected PhaseDistanceModelParameters (Foundation.NSObjectFlag t); protected PhaseDistanceModelParameters (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual PhaseDistanceModelFadeOutParameters FadeOutParameters { get; set; } } ``` #### New Type: Phase.PhaseDucker ```csharp public class PhaseDucker : Foundation.NSObject { // constructors protected PhaseDucker (Foundation.NSObjectFlag t); protected PhaseDucker (IntPtr handle); public PhaseDucker (PhaseEngine engine, Foundation.NSSet<PhaseGroup> sourceGroups, Foundation.NSSet<PhaseGroup> targetGroups, double gain, double attackTime, double releaseTime, PhaseCurveType attackCurve, PhaseCurveType releaseCurve); // properties public virtual PhaseCurveType AttackCurve { get; } public virtual double AttackTime { get; } public override IntPtr ClassHandle { get; } public virtual double Gain { get; } public virtual string Identifier { get; } public virtual bool IsActive { get; } public virtual PhaseCurveType ReleaseCurve { get; } public virtual double ReleaseTime { get; } public virtual Foundation.NSSet<PhaseGroup> SourceGroups { get; } public virtual Foundation.NSSet<PhaseGroup> TargetGroups { get; } // methods public virtual void Activate (); public virtual void Deactivate (); } ``` #### New Type: Phase.PhaseEngine ```csharp public class PhaseEngine : Foundation.NSObject { // constructors protected PhaseEngine (Foundation.NSObjectFlag t); public PhaseEngine (PhaseUpdateMode updateMode); protected PhaseEngine (IntPtr handle); // properties public virtual PhaseGroupPreset ActiveGroupPreset { get; } public virtual PhaseAssetRegistry AssetRegistry { get; } public override IntPtr ClassHandle { get; } public virtual PhaseMedium DefaultMedium { get; set; } public virtual PhaseReverbPreset DefaultReverbPreset { get; set; } public virtual PhaseDucker[] Duckers { get; } public virtual Foundation.NSDictionary<Foundation.NSString,Phase.PhaseGroup> Groups { get; } public virtual PhaseSpatializationMode OutputSpatializationMode { get; set; } public virtual PhaseRenderingState RenderingState { get; } public virtual PhaseObject RootObject { get; } public virtual PhaseSoundEvent[] SoundEvents { get; } public virtual double UnitsPerMeter { get; set; } public virtual double UnitsPerSecond { get; set; } // methods public virtual void Pause (); public virtual bool Start (out Foundation.NSError error); public virtual void Stop (); public virtual void Update (); } ``` #### New Type: Phase.PhaseEnvelope ```csharp public class PhaseEnvelope : Foundation.NSObject { // constructors protected PhaseEnvelope (Foundation.NSObjectFlag t); protected PhaseEnvelope (IntPtr handle); public PhaseEnvelope (OpenTK.Vector2d startPoint, PhaseEnvelopeSegment[] segments); // properties public override IntPtr ClassHandle { get; } public virtual PhaseNumericPair Domain { get; } public virtual PhaseNumericPair Range { get; } public virtual PhaseEnvelopeSegment[] Segments { get; } public virtual OpenTK.Vector2d StartPoint { get; } // methods public virtual double Evaluate (double x); } ``` #### New Type: Phase.PhaseEnvelopeDistanceModelParameters ```csharp public class PhaseEnvelopeDistanceModelParameters : Phase.PhaseDistanceModelParameters { // constructors protected PhaseEnvelopeDistanceModelParameters (Foundation.NSObjectFlag t); public PhaseEnvelopeDistanceModelParameters (PhaseEnvelope envelope); protected PhaseEnvelopeDistanceModelParameters (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual PhaseEnvelope Envelope { get; } } ``` #### New Type: Phase.PhaseEnvelopeSegment ```csharp public class PhaseEnvelopeSegment : Foundation.NSObject { // constructors protected PhaseEnvelopeSegment (Foundation.NSObjectFlag t); protected PhaseEnvelopeSegment (IntPtr handle); public PhaseEnvelopeSegment (OpenTK.Vector2d endPoint, PhaseCurveType curveType); // properties public override IntPtr ClassHandle { get; } public virtual PhaseCurveType CurveType { get; set; } public virtual OpenTK.Vector2d EndPoint { get; set; } } ``` #### New Type: Phase.PhaseError ```csharp [Serializable] public enum PhaseError { InitializeFailed = 1346913633, InvalidObject = 1346913634, } ``` #### New Type: Phase.PhaseErrorExtensions ```csharp public static class PhaseErrorExtensions { // methods public static Foundation.NSString GetDomain (this PhaseError self); } ``` #### New Type: Phase.PhaseGeneratorNodeDefinition ```csharp public class PhaseGeneratorNodeDefinition : Phase.PhaseSoundEventNodeDefinition { // constructors protected PhaseGeneratorNodeDefinition (Foundation.NSObjectFlag t); protected PhaseGeneratorNodeDefinition (IntPtr handle); // properties public virtual PhaseCalibrationMode CalibrationMode { get; } public override IntPtr ClassHandle { get; } public virtual PhaseNumberMetaParameterDefinition GainMetaParameterDefinition { get; set; } public virtual PhaseGroup Group { get; set; } public virtual double Level { get; } public virtual PhaseMixerDefinition MixerDefinition { get; } public virtual double Rate { get; set; } public virtual PhaseNumberMetaParameterDefinition RateMetaParameterDefinition { get; set; } // methods protected override void Dispose (bool disposing); public virtual void SetCalibrationMode (PhaseCalibrationMode calibrationMode, double level); } ``` #### New Type: Phase.PhaseGlobalMetaParameterAsset ```csharp public class PhaseGlobalMetaParameterAsset : Phase.PhaseAsset { // constructors protected PhaseGlobalMetaParameterAsset (Foundation.NSObjectFlag t); protected PhaseGlobalMetaParameterAsset (IntPtr handle); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: Phase.PhaseGroup ```csharp public class PhaseGroup : Foundation.NSObject { // constructors protected PhaseGroup (Foundation.NSObjectFlag t); protected PhaseGroup (IntPtr handle); public PhaseGroup (string identifier); // properties public override IntPtr ClassHandle { get; } public virtual double Gain { get; set; } public virtual string Identifier { get; } public virtual bool Muted { get; } public virtual double Rate { get; set; } public virtual bool Soloed { get; } // methods public virtual void FadeGain (double gain, double duration, PhaseCurveType curveType); public virtual void FadeRate (double rate, double duration, PhaseCurveType curveType); public virtual void Mute (); public virtual void Register (PhaseEngine engine); public virtual void Solo (); public virtual void Unmute (); public virtual void Unregister (); public virtual void Unsolo (); } ``` #### New Type: Phase.PhaseGroupPreset ```csharp public class PhaseGroupPreset : Foundation.NSObject { // constructors protected PhaseGroupPreset (Foundation.NSObjectFlag t); protected PhaseGroupPreset (IntPtr handle); public PhaseGroupPreset (PhaseEngine engine, Foundation.NSDictionary<Foundation.NSString,Phase.PhaseGroupPresetSetting> settings, double timeToTarget, double timeToReset); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSDictionary<Foundation.NSString,Phase.PhaseGroupPresetSetting> Settings { get; } public virtual double TimeToReset { get; } public virtual double TimeToTarget { get; } // methods public virtual void Activate (); public virtual void Activate (double timeToTargetOverride); public virtual void Deactivate (); public virtual void Deactivate (double timeToResetOverride); } ``` #### New Type: Phase.PhaseGroupPresetSetting ```csharp public class PhaseGroupPresetSetting : Foundation.NSObject { // constructors protected PhaseGroupPresetSetting (Foundation.NSObjectFlag t); protected PhaseGroupPresetSetting (IntPtr handle); public PhaseGroupPresetSetting (double gain, double rate, PhaseCurveType gainCurveType, PhaseCurveType rateCurveType); // properties public override IntPtr ClassHandle { get; } public virtual double Gain { get; } public virtual PhaseCurveType GainCurveType { get; } public virtual double Rate { get; } public virtual PhaseCurveType RateCurveType { get; } } ``` #### New Type: Phase.PhaseListener ```csharp public class PhaseListener : Phase.PhaseObject { // constructors protected PhaseListener (Foundation.NSObjectFlag t); public PhaseListener (PhaseEngine engine); protected PhaseListener (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual double Gain { get; set; } } ``` #### New Type: Phase.PhaseMappedMetaParameterDefinition ```csharp public class PhaseMappedMetaParameterDefinition : Phase.PhaseNumberMetaParameterDefinition { // constructors protected PhaseMappedMetaParameterDefinition (Foundation.NSObjectFlag t); protected PhaseMappedMetaParameterDefinition (IntPtr handle); public PhaseMappedMetaParameterDefinition (PhaseNumberMetaParameterDefinition inputMetaParameterDefinition, PhaseEnvelope envelope); public PhaseMappedMetaParameterDefinition (double value, string identifier); public PhaseMappedMetaParameterDefinition (PhaseNumberMetaParameterDefinition inputMetaParameterDefinition, PhaseEnvelope envelope, string identifier); public PhaseMappedMetaParameterDefinition (double value, double minimum, double maximum); // properties public override IntPtr ClassHandle { get; } public virtual PhaseEnvelope Envelope { get; } public virtual PhaseNumberMetaParameterDefinition InputMetaParameterDefinition { get; } } ``` #### New Type: Phase.PhaseMaterial ```csharp public class PhaseMaterial : Foundation.NSObject { // constructors protected PhaseMaterial (Foundation.NSObjectFlag t); protected PhaseMaterial (IntPtr handle); public PhaseMaterial (PhaseEngine engine, PhaseMaterialPreset preset); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: Phase.PhaseMaterialPreset ```csharp [Serializable] public enum PhaseMaterialPreset { Brickwork = 1833071211, Cardboard = 1833136740, Concrete = 1833132914, Drywall = 1833202295, Glass = 1833397363, Wood = 1834448228, } ``` #### New Type: Phase.PhaseMedium ```csharp public class PhaseMedium : Foundation.NSObject { // constructors protected PhaseMedium (Foundation.NSObjectFlag t); protected PhaseMedium (IntPtr handle); public PhaseMedium (PhaseEngine engine, PhaseMediumPreset preset); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: Phase.PhaseMediumPreset ```csharp [Serializable] public enum PhaseMediumPreset { PresetAir = 1835286898, } ``` #### New Type: Phase.PhaseMetaParameter ```csharp public class PhaseMetaParameter : Foundation.NSObject { // constructors protected PhaseMetaParameter (Foundation.NSObjectFlag t); protected PhaseMetaParameter (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual string Identifier { get; } public virtual Foundation.NSObject Value { get; set; } } ``` #### New Type: Phase.PhaseMetaParameterDefinition ```csharp public class PhaseMetaParameterDefinition : Phase.PhaseDefinition { // constructors protected PhaseMetaParameterDefinition (Foundation.NSObjectFlag t); protected PhaseMetaParameterDefinition (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSObject Value { get; } } ``` #### New Type: Phase.PhaseMixer ```csharp public class PhaseMixer : Foundation.NSObject { // constructors protected PhaseMixer (Foundation.NSObjectFlag t); protected PhaseMixer (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual double Gain { get; } public virtual PhaseMetaParameter GainMetaParameter { get; } public virtual string Identifier { get; } } ``` #### New Type: Phase.PhaseMixerDefinition ```csharp public class PhaseMixerDefinition : Phase.PhaseDefinition { // constructors protected PhaseMixerDefinition (Foundation.NSObjectFlag t); protected PhaseMixerDefinition (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual double Gain { get; set; } public virtual PhaseNumberMetaParameterDefinition GainMetaParameterDefinition { get; set; } } ``` #### New Type: Phase.PhaseMixerParameters ```csharp public class PhaseMixerParameters : Foundation.NSObject { // constructors protected PhaseMixerParameters (Foundation.NSObjectFlag t); protected PhaseMixerParameters (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual void AddAmbientMixerParameters (string identifier, PhaseListener listener); public virtual void AddSpatialMixerParameters (string identifier, PhaseSource source, PhaseListener listener); } ``` #### New Type: Phase.PhaseNormalizationMode ```csharp [Serializable] public enum PhaseNormalizationMode { Dynamic = 1, None = 0, } ``` #### New Type: Phase.PhaseNumberMetaParameter ```csharp public class PhaseNumberMetaParameter : Phase.PhaseMetaParameter { // constructors protected PhaseNumberMetaParameter (Foundation.NSObjectFlag t); protected PhaseNumberMetaParameter (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual double Maximum { get; } public virtual double Minimum { get; } // methods public virtual void Fade (double value, double duration); } ``` #### New Type: Phase.PhaseNumberMetaParameterDefinition ```csharp public class PhaseNumberMetaParameterDefinition : Phase.PhaseMetaParameterDefinition { // constructors protected PhaseNumberMetaParameterDefinition (Foundation.NSObjectFlag t); public PhaseNumberMetaParameterDefinition (double value); protected PhaseNumberMetaParameterDefinition (IntPtr handle); public PhaseNumberMetaParameterDefinition (double value, string identifier); public PhaseNumberMetaParameterDefinition (double value, double minimum, double maximum); public PhaseNumberMetaParameterDefinition (double value, double minimum, double maximum, string identifier); // properties public override IntPtr ClassHandle { get; } public virtual double Maximum { get; } public virtual double Minimum { get; } } ``` #### New Type: Phase.PhaseNumericPair ```csharp public class PhaseNumericPair : Foundation.NSObject { // constructors protected PhaseNumericPair (Foundation.NSObjectFlag t); protected PhaseNumericPair (IntPtr handle); public PhaseNumericPair (double first, double second); // properties public override IntPtr ClassHandle { get; } public virtual double First { get; set; } public virtual double Second { get; set; } } ``` #### New Type: Phase.PhaseObject ```csharp public class PhaseObject : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected PhaseObject (Foundation.NSObjectFlag t); public PhaseObject (PhaseEngine engine); protected PhaseObject (IntPtr handle); // properties public virtual PhaseObject[] Children { get; } public override IntPtr ClassHandle { get; } public static OpenTK.Vector3 Forward { get; } public virtual PhaseObject Parent { get; } public static OpenTK.Vector3 Right { get; } public virtual OpenTK.NMatrix4 Transform { get; set; } public static OpenTK.Vector3 Up { get; } public virtual OpenTK.NMatrix4 WorldTransform { get; set; } // methods public virtual bool AddChild (PhaseObject child, out Foundation.NSError error); public virtual Foundation.NSObject Copy (Foundation.NSZone zone); protected override void Dispose (bool disposing); public virtual void RemoveChild (PhaseObject child); public virtual void RemoveChildren (); } ``` #### New Type: Phase.PhaseOccluder ```csharp public class PhaseOccluder : Phase.PhaseObject { // constructors protected PhaseOccluder (Foundation.NSObjectFlag t); public PhaseOccluder (PhaseEngine engine); protected PhaseOccluder (IntPtr handle); public PhaseOccluder (PhaseEngine engine, PhaseShape[] shapes); // properties public override IntPtr ClassHandle { get; } public virtual PhaseShape[] Shapes { get; } } ``` #### New Type: Phase.PhasePlaybackMode ```csharp [Serializable] public enum PhasePlaybackMode { Looping = 1, OneShot = 0, } ``` #### New Type: Phase.PhasePushStreamBufferOptions ```csharp [Serializable] [Flags] public enum PhasePushStreamBufferOptions { Default = 1, Interrupts = 4, InterruptsAtLoop = 8, Loops = 2, } ``` #### New Type: Phase.PhasePushStreamCompletionCallbackCondition ```csharp [Serializable] public enum PhasePushStreamCompletionCallbackCondition { DataRendered = 0, } ``` #### New Type: Phase.PhasePushStreamNode ```csharp public class PhasePushStreamNode : Foundation.NSObject { // constructors protected PhasePushStreamNode (Foundation.NSObjectFlag t); protected PhasePushStreamNode (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual AVFoundation.AVAudioFormat Format { get; } public virtual PhaseNumberMetaParameter GainMetaParameter { get; } public virtual PhaseMixer Mixer { get; } public virtual PhaseNumberMetaParameter RateMetaParameter { get; } // methods public virtual void ScheduleBuffer (AVFoundation.AVAudioPcmBuffer buffer); public virtual void ScheduleBuffer (AVFoundation.AVAudioPcmBuffer buffer, AVFoundation.AVAudioTime when, PhasePushStreamBufferOptions options); public virtual void ScheduleBuffer (AVFoundation.AVAudioPcmBuffer buffer, PhasePushStreamCompletionCallbackCondition completionCallbackCondition, System.Action<PhasePushStreamCompletionCallbackCondition> completionHandler); public virtual void ScheduleBuffer (AVFoundation.AVAudioPcmBuffer buffer, AVFoundation.AVAudioTime when, PhasePushStreamBufferOptions options, PhasePushStreamCompletionCallbackCondition completionCallbackCondition, System.Action<PhasePushStreamCompletionCallbackCondition> completionHandler); public virtual System.Threading.Tasks.Task<PhasePushStreamCompletionCallbackCondition> ScheduleBufferAsync (AVFoundation.AVAudioPcmBuffer buffer, PhasePushStreamCompletionCallbackCondition completionCallbackCondition); public virtual System.Threading.Tasks.Task<PhasePushStreamCompletionCallbackCondition> ScheduleBufferAsync (AVFoundation.AVAudioPcmBuffer buffer, AVFoundation.AVAudioTime when, PhasePushStreamBufferOptions options, PhasePushStreamCompletionCallbackCondition completionCallbackCondition); } ``` #### New Type: Phase.PhasePushStreamNodeDefinition ```csharp public class PhasePushStreamNodeDefinition : Phase.PhaseGeneratorNodeDefinition { // constructors protected PhasePushStreamNodeDefinition (Foundation.NSObjectFlag t); protected PhasePushStreamNodeDefinition (IntPtr handle); public PhasePushStreamNodeDefinition (PhaseMixerDefinition mixerDefinition, AVFoundation.AVAudioFormat format); public PhasePushStreamNodeDefinition (PhaseMixerDefinition mixerDefinition, AVFoundation.AVAudioFormat format, string identifier); // properties public override IntPtr ClassHandle { get; } public virtual AVFoundation.AVAudioFormat Format { get; } public virtual bool Normalize { get; set; } } ``` #### New Type: Phase.PhaseRenderingState ```csharp [Serializable] public enum PhaseRenderingState { Paused = 2, Started = 1, Stopped = 0, } ``` #### New Type: Phase.PhaseReverbPreset ```csharp [Serializable] public enum PhaseReverbPreset { Cathedral = 1917023336, LargeChamber = 1917600616, LargeHall = 1917601841, LargeHall2 = 1917601842, LargeRoom = 1917604401, LargeRoom2 = 1917604402, MediumChamber = 1917666152, MediumHall = 1917667377, MediumHall2 = 1917667378, MediumHall3 = 1917667379, MediumRoom = 1917669997, None = 1917742958, SmallRoom = 1918063213, } ``` #### New Type: Phase.PhaseSamplerNodeDefinition ```csharp public class PhaseSamplerNodeDefinition : Phase.PhaseGeneratorNodeDefinition { // constructors protected PhaseSamplerNodeDefinition (Foundation.NSObjectFlag t); protected PhaseSamplerNodeDefinition (IntPtr handle); public PhaseSamplerNodeDefinition (string soundAssetIdentifier, PhaseMixerDefinition mixerDefinition); public PhaseSamplerNodeDefinition (string soundAssetIdentifier, PhaseMixerDefinition mixerDefinition, string identifier); // properties public virtual string AssetIdentifier { get; } public override IntPtr ClassHandle { get; } public virtual PhaseCullOption CullOption { get; set; } public virtual PhasePlaybackMode PlaybackMode { get; set; } } ``` #### New Type: Phase.PhaseShape ```csharp public class PhaseShape : Foundation.NSObject, Foundation.INSCopying, ObjCRuntime.INativeObject, System.IDisposable { // constructors protected PhaseShape (Foundation.NSObjectFlag t); protected PhaseShape (IntPtr handle); public PhaseShape (PhaseEngine engine, ModelIO.MDLMesh mesh); public PhaseShape (PhaseEngine engine, ModelIO.MDLMesh mesh, PhaseMaterial[] materials); // properties public override IntPtr ClassHandle { get; } public virtual PhaseShapeElement[] Elements { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); } ``` #### New Type: Phase.PhaseShapeElement ```csharp public class PhaseShapeElement : Foundation.NSObject { // constructors protected PhaseShapeElement (Foundation.NSObjectFlag t); protected PhaseShapeElement (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual PhaseMaterial Material { get; set; } } ``` #### New Type: Phase.PhaseSoundAsset ```csharp public class PhaseSoundAsset : Phase.PhaseAsset { // constructors protected PhaseSoundAsset (Foundation.NSObjectFlag t); protected PhaseSoundAsset (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSData Data { get; } public virtual PhaseAssetType Type { get; } public virtual Foundation.NSUrl Url { get; } } ``` #### New Type: Phase.PhaseSoundEvent ```csharp public class PhaseSoundEvent : Foundation.NSObject { // constructors protected PhaseSoundEvent (Foundation.NSObjectFlag t); protected PhaseSoundEvent (IntPtr handle); public PhaseSoundEvent (PhaseEngine engine, string assetIdentifier, out Foundation.NSError error); public PhaseSoundEvent (PhaseEngine engine, string assetIdentifier, PhaseMixerParameters mixerParameters, out Foundation.NSError error); // properties public override IntPtr ClassHandle { get; } public virtual bool Indefinite { get; } public virtual Foundation.NSDictionary<Foundation.NSString,Phase.PhaseMetaParameter> MetaParameters { get; } public virtual Foundation.NSDictionary<Foundation.NSString,Phase.PhaseMixer> Mixers { get; } public virtual PhaseSoundEventPrepareState PrepareState { get; } public virtual Foundation.NSDictionary<Foundation.NSString,Phase.PhasePushStreamNode> PushStreamNodes { get; } public virtual PhaseRenderingState RenderingState { get; } // methods public virtual void Pause (); public virtual void Prepare (System.Action<PhaseSoundEventPrepareHandlerReason> completionBlock); public virtual bool Prepare (out Foundation.NSError error); public virtual System.Threading.Tasks.Task<PhaseSoundEventPrepareHandlerReason> PrepareAsync (); public virtual void Resume (); public virtual bool Seek (double time, System.Action<PhaseSoundEventSeekHandlerReason> completionHandler); public virtual System.Threading.Tasks.Task<PhaseSoundEventSeekHandlerReason> SeekAsync (double time); public virtual System.Threading.Tasks.Task<PhaseSoundEventSeekHandlerReason> SeekAsync (double time, out bool result); public virtual bool Start (System.Action<PhaseSoundEventStartHandlerReason> completionBlock); public virtual bool Start (out Foundation.NSError error); public virtual System.Threading.Tasks.Task<PhaseSoundEventStartHandlerReason> StartAsync (); public virtual System.Threading.Tasks.Task<PhaseSoundEventStartHandlerReason> StartAsync (out bool result); public virtual void StopAndInvalidate (); } ``` #### New Type: Phase.PhaseSoundEventError ```csharp [Serializable] public enum PhaseSoundEventError { ApiMisuse = 1346925668, BadData = 1346925666, InvalidInstance = 1346925667, NotFound = 1346925665, OutOfMemory = 1346925670, SystemNotInitialized = 1346925669, } ``` #### New Type: Phase.PhaseSoundEventErrorExtensions ```csharp public static class PhaseSoundEventErrorExtensions { // methods public static Foundation.NSString GetDomain (this PhaseSoundEventError self); } ``` #### New Type: Phase.PhaseSoundEventNodeAsset ```csharp public class PhaseSoundEventNodeAsset : Phase.PhaseAsset { // constructors protected PhaseSoundEventNodeAsset (Foundation.NSObjectFlag t); protected PhaseSoundEventNodeAsset (IntPtr handle); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: Phase.PhaseSoundEventNodeDefinition ```csharp public class PhaseSoundEventNodeDefinition : Phase.PhaseDefinition { // constructors protected PhaseSoundEventNodeDefinition (Foundation.NSObjectFlag t); protected PhaseSoundEventNodeDefinition (IntPtr handle); // properties public virtual PhaseSoundEventNodeDefinition[] Children { get; } public override IntPtr ClassHandle { get; } } ``` #### New Type: Phase.PhaseSoundEventPrepareHandlerReason ```csharp [Serializable] public enum PhaseSoundEventPrepareHandlerReason { Error = 0, Prepared = 1, Terminated = 2, } ``` #### New Type: Phase.PhaseSoundEventPrepareState ```csharp [Serializable] public enum PhaseSoundEventPrepareState { InProgress = 1, NotStarted = 0, Prepared = 2, } ``` #### New Type: Phase.PhaseSoundEventSeekHandlerReason ```csharp [Serializable] public enum PhaseSoundEventSeekHandlerReason { Error = 0, ErrorSeekAlreadyInProgress = 1, SeekSuccessful = 2, } ``` #### New Type: Phase.PhaseSoundEventStartHandlerReason ```csharp [Serializable] public enum PhaseSoundEventStartHandlerReason { Error = 0, FinishedPlaying = 1, Terminated = 2, } ``` #### New Type: Phase.PhaseSource ```csharp public class PhaseSource : Phase.PhaseObject { // constructors protected PhaseSource (Foundation.NSObjectFlag t); public PhaseSource (PhaseEngine engine); protected PhaseSource (IntPtr handle); public PhaseSource (PhaseEngine engine, PhaseShape[] shapes); // properties public override IntPtr ClassHandle { get; } public virtual double Gain { get; set; } public virtual PhaseShape[] Shapes { get; } } ``` #### New Type: Phase.PhaseSpatialCategory ```csharp [Serializable] public enum PhaseSpatialCategory { DirectPathTransmission = 0, EarlyReflections = 1, LateReverb = 2, } ``` #### New Type: Phase.PhaseSpatialCategoryExtensions ```csharp public static class PhaseSpatialCategoryExtensions { // methods public static Foundation.NSString GetConstant (this PhaseSpatialCategory self); public static PhaseSpatialCategory GetValue (Foundation.NSString constant); } ``` #### New Type: Phase.PhaseSpatialMixerDefinition ```csharp public class PhaseSpatialMixerDefinition : Phase.PhaseMixerDefinition { // constructors protected PhaseSpatialMixerDefinition (Foundation.NSObjectFlag t); public PhaseSpatialMixerDefinition (PhaseSpatialPipeline spatialPipeline); protected PhaseSpatialMixerDefinition (IntPtr handle); public PhaseSpatialMixerDefinition (PhaseSpatialPipeline spatialPipeline, string identifier); // properties public override IntPtr ClassHandle { get; } public virtual PhaseDistanceModelParameters DistanceModelParameters { get; set; } public virtual PhaseDirectivityModelParameters ListenerDirectivityModelParameters { get; set; } public virtual PhaseDirectivityModelParameters SourceDirectivityModelParameters { get; set; } public virtual PhaseSpatialPipeline SpatialPipeline { get; } } ``` #### New Type: Phase.PhaseSpatialPipeline ```csharp public class PhaseSpatialPipeline : Foundation.NSObject { // constructors protected PhaseSpatialPipeline (Foundation.NSObjectFlag t); public PhaseSpatialPipeline (PhaseSpatialPipelineFlags flags); protected PhaseSpatialPipeline (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual Foundation.NSDictionary<Foundation.NSString,Phase.PhaseSpatialPipelineEntry> Entries { get; } public virtual PhaseSpatialPipelineFlags Flags { get; } } ``` #### New Type: Phase.PhaseSpatialPipelineEntry ```csharp public class PhaseSpatialPipelineEntry : Foundation.NSObject { // constructors protected PhaseSpatialPipelineEntry (Foundation.NSObjectFlag t); protected PhaseSpatialPipelineEntry (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual double SendLevel { get; set; } public virtual PhaseNumberMetaParameterDefinition SendLevelMetaParameterDefinition { get; set; } } ``` #### New Type: Phase.PhaseSpatialPipelineFlags ```csharp [Serializable] [Flags] public enum PhaseSpatialPipelineFlags { DirectPathTransmission = 1, EarlyReflections = 2, LateReverb = 4, } ``` #### New Type: Phase.PhaseSpatializationMode ```csharp [Serializable] public enum PhaseSpatializationMode { AlwaysUseBinaural = 1, AlwaysUseChannelBased = 2, Automatic = 0, } ``` #### New Type: Phase.PhaseStringMetaParameter ```csharp public class PhaseStringMetaParameter : Phase.PhaseMetaParameter { // constructors protected PhaseStringMetaParameter (Foundation.NSObjectFlag t); protected PhaseStringMetaParameter (IntPtr handle); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: Phase.PhaseStringMetaParameterDefinition ```csharp public class PhaseStringMetaParameterDefinition : Phase.PhaseMetaParameterDefinition { // constructors protected PhaseStringMetaParameterDefinition (Foundation.NSObjectFlag t); protected PhaseStringMetaParameterDefinition (IntPtr handle); public PhaseStringMetaParameterDefinition (string value); public PhaseStringMetaParameterDefinition (string value, string identifier); // properties public override IntPtr ClassHandle { get; } } ``` #### New Type: Phase.PhaseSwitchNodeDefinition ```csharp public class PhaseSwitchNodeDefinition : Phase.PhaseSoundEventNodeDefinition { // constructors protected PhaseSwitchNodeDefinition (Foundation.NSObjectFlag t); public PhaseSwitchNodeDefinition (PhaseStringMetaParameterDefinition switchMetaParameterDefinition); protected PhaseSwitchNodeDefinition (IntPtr handle); public PhaseSwitchNodeDefinition (PhaseStringMetaParameterDefinition switchMetaParameterDefinition, string identifier); // properties public override IntPtr ClassHandle { get; } public virtual PhaseStringMetaParameterDefinition SwitchMetaParameterDefinition { get; } // methods public virtual void AddSubtree (PhaseSoundEventNodeDefinition subtree, string switchValue); } ``` #### New Type: Phase.PhaseUpdateMode ```csharp [Serializable] public enum PhaseUpdateMode { Automatic = 0, Manual = 1, } ``` ### New Namespace Symbols #### New Type: Symbols.NSSymbolAppearEffect ```csharp public class NSSymbolAppearEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolAppearEffect (Foundation.NSCoder coder); protected NSSymbolAppearEffect (Foundation.NSObjectFlag t); protected NSSymbolAppearEffect (IntPtr handle); // properties public virtual NSSymbolAppearEffect ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolAppearEffect WholeSymbol { get; } // methods public static NSSymbolAppearEffect Create (); public static NSSymbolAppearEffect CreateAppearDownEffect (); public static NSSymbolAppearEffect CreateAppearUpEffect (); } ``` #### New Type: Symbols.NSSymbolAutomaticContentTransition ```csharp public class NSSymbolAutomaticContentTransition : Symbols.NSSymbolContentTransition { // constructors public NSSymbolAutomaticContentTransition (Foundation.NSCoder coder); protected NSSymbolAutomaticContentTransition (Foundation.NSObjectFlag t); protected NSSymbolAutomaticContentTransition (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public static NSSymbolAutomaticContentTransition Create (); } ``` #### New Type: Symbols.NSSymbolBounceEffect ```csharp public class NSSymbolBounceEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolBounceEffect (Foundation.NSCoder coder); protected NSSymbolBounceEffect (Foundation.NSObjectFlag t); protected NSSymbolBounceEffect (IntPtr handle); // properties public virtual NSSymbolBounceEffect ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolBounceEffect WholeSymbol { get; } // methods public static NSSymbolBounceEffect Create (); public static NSSymbolBounceEffect CreateBounceDownEffect (); public static NSSymbolBounceEffect CreateBounceUpEffect (); } ``` #### New Type: Symbols.NSSymbolContentTransition ```csharp public class NSSymbolContentTransition : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NSSymbolContentTransition (Foundation.NSCoder coder); protected NSSymbolContentTransition (Foundation.NSObjectFlag t); protected NSSymbolContentTransition (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: Symbols.NSSymbolDisappearEffect ```csharp public class NSSymbolDisappearEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolDisappearEffect (Foundation.NSCoder coder); protected NSSymbolDisappearEffect (Foundation.NSObjectFlag t); protected NSSymbolDisappearEffect (IntPtr handle); // properties public virtual NSSymbolDisappearEffect ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolDisappearEffect WholeSymbol { get; } // methods public static NSSymbolDisappearEffect Create (); public static NSSymbolDisappearEffect CreateDisappearDownEffect (); public static NSSymbolDisappearEffect CreateDisappearUpEffect (); } ``` #### New Type: Symbols.NSSymbolEffect ```csharp public class NSSymbolEffect : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NSSymbolEffect (Foundation.NSCoder coder); protected NSSymbolEffect (Foundation.NSObjectFlag t); protected NSSymbolEffect (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public virtual void EncodeTo (Foundation.NSCoder encoder); } ``` #### New Type: Symbols.NSSymbolEffectOptions ```csharp public class NSSymbolEffectOptions : Foundation.NSObject, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable { // constructors public NSSymbolEffectOptions (Foundation.NSCoder coder); protected NSSymbolEffectOptions (Foundation.NSObjectFlag t); protected NSSymbolEffectOptions (IntPtr handle); // properties public override IntPtr ClassHandle { get; } // methods public virtual Foundation.NSObject Copy (Foundation.NSZone zone); public static NSSymbolEffectOptions Create (); public static NSSymbolEffectOptions Create (double speed); public static NSSymbolEffectOptions Create (nint repeatCount); public static NSSymbolEffectOptions CreateNonRepeating (); public static NSSymbolEffectOptions CreateRepeating (); public virtual void EncodeTo (Foundation.NSCoder encoder); public virtual NSSymbolEffectOptions Get (double speed); public virtual NSSymbolEffectOptions Get (nint repeatCount); public virtual NSSymbolEffectOptions GetNonRepeating (); public virtual NSSymbolEffectOptions GetRepeating (); } ``` #### New Type: Symbols.NSSymbolPulseEffect ```csharp public class NSSymbolPulseEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolPulseEffect (Foundation.NSCoder coder); protected NSSymbolPulseEffect (Foundation.NSObjectFlag t); protected NSSymbolPulseEffect (IntPtr handle); // properties public virtual NSSymbolPulseEffect ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolPulseEffect WholeSymbol { get; } // methods public static NSSymbolPulseEffect Create (); } ``` #### New Type: Symbols.NSSymbolReplaceContentTransition ```csharp public class NSSymbolReplaceContentTransition : Symbols.NSSymbolContentTransition { // constructors public NSSymbolReplaceContentTransition (Foundation.NSCoder coder); protected NSSymbolReplaceContentTransition (Foundation.NSObjectFlag t); protected NSSymbolReplaceContentTransition (IntPtr handle); // properties public virtual NSSymbolReplaceContentTransition ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolReplaceContentTransition WholeSymbol { get; } // methods public static NSSymbolReplaceContentTransition Create (); public static NSSymbolReplaceContentTransition CreateReplaceDownUpTransition (); public static NSSymbolReplaceContentTransition CreateReplaceOffUpTransition (); public static NSSymbolReplaceContentTransition CreateReplaceUpUpTransition (); } ``` #### New Type: Symbols.NSSymbolScaleEffect ```csharp public class NSSymbolScaleEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolScaleEffect (Foundation.NSCoder coder); protected NSSymbolScaleEffect (Foundation.NSObjectFlag t); protected NSSymbolScaleEffect (IntPtr handle); // properties public virtual NSSymbolScaleEffect ByLayer { get; } public override IntPtr ClassHandle { get; } public virtual NSSymbolScaleEffect WholeSymbol { get; } // methods public static NSSymbolScaleEffect Create (); public static NSSymbolScaleEffect CreateScaleDownEffect (); public static NSSymbolScaleEffect CreateScaleUpEffect (); } ``` #### New Type: Symbols.NSSymbolVariableColorEffect ```csharp public class NSSymbolVariableColorEffect : Symbols.NSSymbolEffect { // constructors public NSSymbolVariableColorEffect (Foundation.NSCoder coder); protected NSSymbolVariableColorEffect (Foundation.NSObjectFlag t); protected NSSymbolVariableColorEffect (IntPtr handle); // properties public override IntPtr ClassHandle { get; } public virtual NSSymbolVariableColorEffect Cumulative { get; } public virtual NSSymbolVariableColorEffect DimInactiveLayers { get; } public virtual NSSymbolVariableColorEffect HideInactiveLayers { get; } public virtual NSSymbolVariableColorEffect Iterative { get; } public virtual NSSymbolVariableColorEffect NonReversing { get; } public virtual NSSymbolVariableColorEffect Reversing { get; } // methods public static NSSymbolVariableColorEffect Create (); } ```