Share via


Xamarin.Mac SDK API diff: 6.16.0 vs 6.18.3

Xamarin.Mac.dll

Namespace AVFoundation

Type Changed: AVFoundation.AVCaptureVideoStabilizationMode

Added value:

CinematicExtended = 3,

New Type: AVFoundation.AVMetadataObjectTypeExtensions

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

Namespace AppKit

Type Changed: AppKit.NSScrollView

Added property:

public static Foundation.NSString WillStartLiveScrollNotification { get; }

Type Changed: AppKit.NSScrollView.Notifications

Added methods:

public static Foundation.NSObject ObserveWillStartLiveScroll (System.EventHandler<Foundation.NSNotificationEventArgs> handler);
public static Foundation.NSObject ObserveWillStartLiveScroll (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler);

Namespace CoreFoundation

Type Changed: CoreFoundation.DispatchData

Added methods:

public static DispatchData FromReadOnlySpan (System.ReadOnlySpan<byte> content);
public byte[] ToArray ();

Type Changed: CoreFoundation.DispatchQueue

Added method:

public static DispatchQueue GetGlobalQueue (DispatchQualityOfService service);

Namespace CoreSpotlight

Type Changed: CoreSpotlight.CSLocalizedString

Added interface:

System.IComparable<Foundation.NSString>

Namespace Foundation

Type Changed: Foundation.NSFileManager

Added properties:

public static string FullUserName { get; }
public static string HomeDirectory { get; }
public static string TemporaryDirectory { get; }
public static string UserName { get; }

Added method:

public static string GetHomeDirectory (string userName);

Type Changed: Foundation.NSMutableString

Added interface:

System.IComparable<NSString>

Type Changed: Foundation.NSString

Added interface:

System.IComparable<NSString>

Added method:

public virtual int CompareTo (NSString other);

Type Changed: Foundation.NSUrlSessionConfiguration

Added properties:

public NSUrlSessionConfiguration.SessionConfigurationType SessionType { get; }
public virtual ProxyConfigurationDictionary StrongConnectionProxyDictionary { get; set; }

Added method:

protected override void Dispose (bool disposing);

Type Changed: Foundation.NSUrlSessionHandler

Obsoleted properties:

 [Obsolete ("Use the 'TrustOverrideForUrl' property instead.")]
 public NSUrlSessionHandlerTrustOverrideCallback TrustOverride { get; set; }

Added properties:

public System.Net.CookieContainer CookieContainer { get; set; }
public NSUrlSessionHandlerTrustOverrideForUrlCallback TrustOverrideForUrl { get; set; }
public bool UseCookies { get; set; }

New Type: Foundation.NSBackgroundActivityCompletionAction

public sealed delegate NSBackgroundActivityCompletionAction : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NSBackgroundActivityCompletionAction (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (NSBackgroundActivityCompletionHandler handler, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (NSBackgroundActivityCompletionHandler handler);
}

New Type: Foundation.NSBackgroundActivityCompletionHandler

public sealed delegate NSBackgroundActivityCompletionHandler : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NSBackgroundActivityCompletionHandler (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (NSBackgroundActivityResult result, System.AsyncCallback callback, object object);
	public virtual void EndInvoke (System.IAsyncResult result);
	public virtual void Invoke (NSBackgroundActivityResult result);
}

New Type: Foundation.NSBackgroundActivityResult

[Serializable]
public enum NSBackgroundActivityResult {
	Deferred = 2,
	Finished = 1,
}

New Type: Foundation.NSBackgroundActivityScheduler

public class NSBackgroundActivityScheduler : Foundation.NSObject, INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<NSObject> {
	// constructors
	protected NSBackgroundActivityScheduler (NSObjectFlag t);
	protected NSBackgroundActivityScheduler (IntPtr handle);
	public NSBackgroundActivityScheduler (string identifier);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string Identifier { get; }
	public virtual double Interval { get; set; }
	public virtual NSQualityOfService QualityOfService { get; set; }
	public virtual bool Repeats { get; set; }
	public virtual bool ShouldDefer { get; }
	public virtual double Tolerance { get; set; }
	// methods
	public virtual void Invalidate ();
	public virtual void Schedule (NSBackgroundActivityCompletionAction action);
}

New Type: Foundation.NSUrlSessionHandlerTrustOverrideForUrlCallback

public sealed delegate NSUrlSessionHandlerTrustOverrideForUrlCallback : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
	// constructors
	public NSUrlSessionHandlerTrustOverrideForUrlCallback (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (NSUrlSessionHandler sender, string url, Security.SecTrust trust, System.AsyncCallback callback, object object);
	public virtual bool EndInvoke (System.IAsyncResult result);
	public virtual bool Invoke (NSUrlSessionHandler sender, string url, Security.SecTrust trust);
}

New Type: Foundation.ProxyConfigurationDictionary

public class ProxyConfigurationDictionary : Foundation.DictionaryContainer {
	// constructors
	public ProxyConfigurationDictionary ();
	public ProxyConfigurationDictionary (NSDictionary dictionary);
	// properties
	public bool? HttpEnable { get; set; }
	public string HttpProxyHost { get; set; }
	public int? HttpProxyPort { get; set; }
	public bool? HttpsEnable { get; set; }
	public string HttpsProxyHost { get; set; }
	public int? HttpsProxyPort { get; set; }
}

Namespace MetalPerformanceShaders

Type Changed: MetalPerformanceShaders.MPSDataType

Added value:

Int32 = 536870944,

Type Changed: MetalPerformanceShaders.MPSImage

Added properties:

public virtual MPSImageFeatureChannelFormat FeatureChannelFormat { get; }
public MPSImageType ImageType { get; }

Added method:

public virtual void WriteBytes (IntPtr dataBytes, MPSDataLayout dataLayout, nuint bytesPerColumn, nuint bytesPerRow, nuint bytesPerImage, Metal.MTLRegion region, MPSImageReadWriteParams featureChannelInfo, nuint imageIndex);

Type Changed: MetalPerformanceShaders.MPSImageFeatureChannelFormat

Added value:

Reserved0 = 5,

Type Changed: MetalPerformanceShaders.MPSKernel

Added method:

public static Metal.IMTLDevice GetPreferredDevice (MPSDeviceOptions options);

Type Changed: MetalPerformanceShaders.MPSMatrix

Added constructor:

public MPSMatrix (Metal.IMTLBuffer buffer, nuint offset, MPSMatrixDescriptor descriptor);

Type Changed: MetalPerformanceShaders.MPSNNGraph

Added methods:

public static MPSNNGraph Create (Metal.IMTLDevice device, MPSNNImageNode[] resultImages, bool[] resultsAreNeeded);
public static MPSNNGraph Create (Metal.IMTLDevice device, MPSNNImageNode[] resultImages, IntPtr resultsAreNeeded);

Type Changed: MetalPerformanceShaders.MPSVector

Added constructor:

public MPSVector (Metal.IMTLBuffer buffer, nuint offset, MPSVectorDescriptor descriptor);

New Type: MetalPerformanceShaders.IMPSHeapProvider

public interface IMPSHeapProvider : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual Metal.IMTLHeap GetNewHeap (Metal.MTLHeapDescriptor descriptor);
}

New Type: MetalPerformanceShaders.IMPSNDArrayAllocator

public interface IMPSNDArrayAllocator : Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual MPSNDArray AllocateArray (Metal.IMTLCommandBuffer cmdBuf, MPSNDArrayDescriptor descriptor, MPSKernel kernel);
}

New Type: MetalPerformanceShaders.IMPSNNLossCallback

public interface IMPSNNLossCallback : Foundation.INSCoding, Foundation.INSCopying, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual float GetScalarWeight (MPSImage sourceImage, MPSImage destinationImage);
}

New Type: MetalPerformanceShaders.MPSAliasingStrategy

[Serializable]
[Flags]
public enum MPSAliasingStrategy {
	AliasingReserved = 3,
	Default = 0,
	DontCare = 0,
	PreferNonTemporaryMemory = 8,
	PreferTemporaryMemory = 4,
	ShallAlias = 1,
	ShallNotAlias = 2,
}

New Type: MetalPerformanceShaders.MPSCommandBuffer

public class MPSCommandBuffer : Foundation.NSObject, Foundation.INSObjectProtocol, Metal.IMTLCommandBuffer, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSCommandBuffer (Foundation.NSObjectFlag t);
	public MPSCommandBuffer (Metal.IMTLCommandBuffer commandBuffer);
	protected MPSCommandBuffer (IntPtr handle);
	// properties
	public virtual Metal.IMTLBlitCommandEncoder BlitCommandEncoder { get; }
	public override IntPtr ClassHandle { get; }
	public virtual Metal.IMTLCommandBuffer CommandBuffer { get; }
	public virtual Metal.IMTLCommandQueue CommandQueue { get; }
	public virtual Metal.IMTLComputeCommandEncoder ComputeCommandEncoder { get; }
	public virtual Metal.IMTLDevice Device { get; }
	public virtual Foundation.NSError Error { get; }
	public static Foundation.NSString ErrorDomain { get; }
	public virtual double GpuEndTime { get; }
	public virtual double GpuStartTime { get; }
	public virtual IMPSHeapProvider HeapProvider { get; set; }
	public virtual double KernelEndTime { get; }
	public virtual double KernelStartTime { get; }
	public virtual string Label { get; set; }
	public virtual MPSPredicate Predicate { get; set; }
	public virtual bool RetainedReferences { get; }
	public virtual Metal.IMTLCommandBuffer RootCommandBuffer { get; }
	public virtual Metal.MTLCommandBufferStatus Status { get; }
	// methods
	public virtual void AddCompletedHandler (System.Action<Metal.IMTLCommandBuffer> block);
	public virtual void AddScheduledHandler (System.Action<Metal.IMTLCommandBuffer> block);
	public virtual void Commit ();
	public virtual void CommitAndContinue ();
	public virtual Metal.IMTLComputeCommandEncoder ComputeCommandEncoderDispatch (Metal.MTLDispatchType dispatchType);
	public static MPSCommandBuffer Create (Metal.IMTLCommandBuffer commandBuffer);
	public static MPSCommandBuffer Create (Metal.IMTLCommandQueue commandQueue);
	public virtual Metal.IMTLParallelRenderCommandEncoder CreateParallelRenderCommandEncoder (Metal.MTLRenderPassDescriptor renderPassDescriptor);
	public virtual Metal.IMTLRenderCommandEncoder CreateRenderCommandEncoder (Metal.MTLRenderPassDescriptor renderPassDescriptor);
	public virtual void EncodeSignal (Metal.IMTLEvent event, ulong value);
	public virtual void EncodeWait (Metal.IMTLEvent event, ulong value);
	public virtual void Enqueue ();
	public virtual void PopDebugGroup ();
	public virtual void PrefetchHeap (nuint size);
	public virtual void PresentDrawable (Metal.IMTLDrawable drawable);
	public virtual void PresentDrawable (Metal.IMTLDrawable drawable, double presentationTime);
	public virtual void PresentDrawableAfter (Metal.IMTLDrawable drawable, double duration);
	public virtual void PushDebugGroup (string string);
	public virtual void WaitUntilCompleted ();
	public virtual void WaitUntilScheduled ();
}

New Type: MetalPerformanceShaders.MPSConstants

public static class MPSConstants {
	// fields
	public static const uint BatchSizeIndex;
	public static const uint FunctionConstantIndex;
	public static const uint NDArrayConstantIndex;
	public static const uint UserConstantIndex;
}

New Type: MetalPerformanceShaders.MPSCustomKernelIndex

[Serializable]
public enum MPSCustomKernelIndex {
	DestIndex = 0,
	Src0Index = 0,
	Src1Index = 1,
	Src2Index = 2,
	Src3Index = 3,
	Src4Index = 4,
	UserDataIndex = 30,
}

New Type: MetalPerformanceShaders.MPSDeviceOptions

[Serializable]
[Flags]
public enum MPSDeviceOptions {
	Default = 0,
	LowPower = 1,
	SkipRemovable = 2,
}

New Type: MetalPerformanceShaders.MPSDimensionSlice

public struct MPSDimensionSlice {
	// fields
	public nuint Length;
	public nuint Start;
}

New Type: MetalPerformanceShaders.MPSHeapProvider_Extensions

public static class MPSHeapProvider_Extensions {
	// methods
	public static void RetireHeap (this IMPSHeapProvider This, Metal.IMTLHeap heap, double seconds);
}

New Type: MetalPerformanceShaders.MPSImageType

[Serializable]
public enum MPSImageType {
	Array2d = 2,
	Array2dArray = 3,
	Array2dArrayNoAlpha = 7,
	Array2dNoAlpha = 6,
	ArrayMask = 1,
	BatchMask = 2,
	BitCount = 6,
	DestTextureType = 63,
	Mask = 63,
	NoAlpha = 4,
	Src0TextureType = 63,
	Src1TextureType = 1,
	Src2TextureType = 0,
	Src3TextureType = 0,
	Src4TextureType = 0,
	TexelFormatBFloat16 = 24,
	TexelFormatFloat16 = 16,
	TexelFormatMask = 56,
	TexelFormatShift = 3,
	TexelFormatStandard = 0,
	TexelFormatUnorm8 = 8,
	Type2d = 0,
	Type2dArray = 1,
	Type2dArrayNoAlpha = 5,
	Type2dNoAlpha = 4,
	TypeMask = 3,
}

New Type: MetalPerformanceShaders.MPSMatrixOffset

public struct MPSMatrixOffset {
	// fields
	public uint ColumnOffset;
	public uint RowOffset;
}

New Type: MetalPerformanceShaders.MPSMatrixRandom

public class MPSMatrixRandom : MetalPerformanceShaders.MPSKernel, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MPSMatrixRandom (Foundation.NSCoder coder);
	protected MPSMatrixRandom (Foundation.NSObjectFlag t);
	protected MPSMatrixRandom (IntPtr handle);
	// properties
	public virtual nuint BatchSize { get; set; }
	public virtual nuint BatchStart { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual MPSDataType DestinationDataType { get; }
	public virtual MPSMatrixRandomDistribution DistributionType { get; }
	// methods
	public virtual void EncodeToCommandBuffer (Metal.IMTLCommandBuffer commandBuffer, MPSMatrix destinationMatrix);
	public virtual void EncodeToCommandBuffer (Metal.IMTLCommandBuffer commandBuffer, MPSVector destinationVector);
}

New Type: MetalPerformanceShaders.MPSMatrixRandomDistribution

[Serializable]
[Flags]
public enum MPSMatrixRandomDistribution {
	Default = 1,
	Uniform = 2,
}

New Type: MetalPerformanceShaders.MPSMatrixRandomDistributionDescriptor

public class MPSMatrixRandomDistributionDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MPSMatrixRandomDistributionDescriptor ();
	protected MPSMatrixRandomDistributionDescriptor (Foundation.NSObjectFlag t);
	protected MPSMatrixRandomDistributionDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPSMatrixRandomDistribution DistributionType { get; set; }
	public virtual float Maximum { get; set; }
	public virtual float Mean { get; set; }
	public virtual float Minimum { get; set; }
	public virtual float StandardDeviation { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
	public static MPSMatrixRandomDistributionDescriptor CreateDefault ();
	public static MPSMatrixRandomDistributionDescriptor CreateUniform (float minimum, float maximum);
}

New Type: MetalPerformanceShaders.MPSMatrixRandomMtgp32

public class MPSMatrixRandomMtgp32 : MetalPerformanceShaders.MPSMatrixRandom, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MPSMatrixRandomMtgp32 (Foundation.NSCoder coder);
	protected MPSMatrixRandomMtgp32 (Foundation.NSObjectFlag t);
	public MPSMatrixRandomMtgp32 (Metal.IMTLDevice device);
	protected MPSMatrixRandomMtgp32 (IntPtr handle);
	public MPSMatrixRandomMtgp32 (Foundation.NSCoder decoder, Metal.IMTLDevice device);
	public MPSMatrixRandomMtgp32 (Metal.IMTLDevice device, MPSDataType destinationDataType, nuint seed);
	public MPSMatrixRandomMtgp32 (Metal.IMTLDevice device, MPSDataType destinationDataType, nuint seed, MPSMatrixRandomDistributionDescriptor distributionDescriptor);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual void Synchronize (Metal.IMTLCommandBuffer commandBuffer);
}

New Type: MetalPerformanceShaders.MPSMatrixRandomPhilox

public class MPSMatrixRandomPhilox : MetalPerformanceShaders.MPSMatrixRandom, Foundation.INSCoding, Foundation.INSCopying, Foundation.INSObjectProtocol, Foundation.INSSecureCoding, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MPSMatrixRandomPhilox (Foundation.NSCoder coder);
	protected MPSMatrixRandomPhilox (Foundation.NSObjectFlag t);
	public MPSMatrixRandomPhilox (Metal.IMTLDevice device);
	protected MPSMatrixRandomPhilox (IntPtr handle);
	public MPSMatrixRandomPhilox (Foundation.NSCoder aDecoder, Metal.IMTLDevice device);
	public MPSMatrixRandomPhilox (Metal.IMTLDevice device, MPSDataType destinationDataType, nuint seed);
	public MPSMatrixRandomPhilox (Metal.IMTLDevice device, MPSDataType destinationDataType, nuint seed, MPSMatrixRandomDistributionDescriptor distributionDescriptor);
	// properties
	public override IntPtr ClassHandle { get; }
}

New Type: MetalPerformanceShaders.MPSNDArray

public class MPSNDArray : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSNDArray (Foundation.NSObjectFlag t);
	protected MPSNDArray (IntPtr handle);
	public MPSNDArray (Metal.IMTLDevice device, MPSNDArrayDescriptor descriptor);
	public MPSNDArray (Metal.IMTLDevice device, double value);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPSDataType DataType { get; }
	public virtual nuint DataTypeSize { get; }
	public static IMPSNDArrayAllocator DefaultAllocator { get; }
	public virtual MPSNDArrayDescriptor Descriptor { get; }
	public virtual Metal.IMTLDevice Device { get; }
	public virtual string Label { get; set; }
	public virtual nuint NumberOfDimensions { get; }
	public virtual MPSNDArray Parent { get; }
	public virtual nuint ResourceSize { get; }
	// methods
	public virtual MPSNDArray Create (Metal.IMTLCommandBuffer cmdBuf, MPSNDArrayDescriptor descriptor, MPSAliasingStrategy aliasing);
	public virtual void ExportData (Metal.IMTLCommandBuffer cmdBuf, MPSImage[] images, MPSImageCoordinate offset);
	public void ExportData (Metal.IMTLCommandBuffer cmdBuf, Metal.IMTLBuffer buffer, MPSDataType sourceDataType, nuint offset);
	public virtual void ExportData (Metal.IMTLCommandBuffer cmdBuf, Metal.IMTLBuffer buffer, MPSDataType destinationDataType, nuint offset, IntPtr rowStrides);
	public void ExportData (Metal.IMTLCommandBuffer cmdBuf, Metal.IMTLBuffer buffer, MPSDataType sourceDataType, nuint offset, nint[] rowStrides);
	public virtual nuint GetLength (nuint dimensionIndex);
	public virtual void ImportData (Metal.IMTLCommandBuffer cmdBuf, MPSImage[] images, MPSImageCoordinate offset);
	public void ImportData (Metal.IMTLCommandBuffer cmdBuf, Metal.IMTLBuffer buffer, MPSDataType sourceDataType, nuint offset);
	public virtual void ImportData (Metal.IMTLCommandBuffer cmdBuf, Metal.IMTLBuffer buffer, MPSDataType sourceDataType, nuint offset, IntPtr rowStrides);
	public void ImportData (Metal.IMTLCommandBuffer cmdBuf, Metal.IMTLBuffer buffer, MPSDataType sourceDataType, nuint offset, nint[] rowStrides);
	public void ReadBytes (IntPtr buffer);
	public virtual void ReadBytes (IntPtr buffer, IntPtr strideBytesPerDimension);
	public void ReadBytes (IntPtr buffer, nint[] strideBytesPerDimension);
	public virtual void Synchronize (Metal.IMTLCommandBuffer commandBuffer);
	public void WriteBytes (IntPtr buffer);
	public virtual void WriteBytes (IntPtr buffer, IntPtr strideBytesPerDimension);
	public void WriteBytes (IntPtr buffer, nint[] strideBytesPerDimension);
}

New Type: MetalPerformanceShaders.MPSNDArrayDescriptor

public class MPSNDArrayDescriptor : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSNDArrayDescriptor (Foundation.NSObjectFlag t);
	protected MPSNDArrayDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual MPSDataType DataType { get; set; }
	public virtual nuint NumberOfDimensions { get; set; }
	// methods
	public static MPSNDArrayDescriptor Create (MPSDataType dataType, nuint[] shape);
	public static MPSNDArrayDescriptor Create (MPSDataType dataType, nuint numberOfDimensions, IntPtr dimensionSizes);
	public virtual nuint GetLength (nuint dimensionIndex);
	public virtual MPSDimensionSlice GetSliceRange (nuint dimensionIndex);
	public virtual void Reshape (nuint[] shape);
	public virtual void Reshape (nuint numberOfDimensions, IntPtr dimensionSizes);
	public virtual void Slice (nuint dimensionIndex, MPSDimensionSlice subRange);
	public virtual void Transpose (nuint dimensionIndex, nuint dimensionIndex2);
}

New Type: MetalPerformanceShaders.MPSNNForwardLossNode

public class MPSNNForwardLossNode : MetalPerformanceShaders.MPSNNFilterNode, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSNNForwardLossNode (Foundation.NSObjectFlag t);
	protected MPSNNForwardLossNode (IntPtr handle);
	public MPSNNForwardLossNode (MPSNNImageNode[] sourceNodes, MPSCnnLossDescriptor descriptor);
	public MPSNNForwardLossNode (MPSNNImageNode source, MPSNNImageNode labels, MPSCnnLossDescriptor descriptor);
	public MPSNNForwardLossNode (MPSNNImageNode source, MPSNNImageNode labels, MPSNNImageNode weights, MPSCnnLossDescriptor descriptor);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float Delta { get; }
	public virtual float Epsilon { get; }
	public virtual float LabelSmoothing { get; }
	public virtual MPSCnnLossType LossType { get; }
	public virtual nuint NumberOfClasses { get; }
	public virtual IMPSNNLossCallback PropertyCallBack { get; set; }
	public virtual MPSCnnReductionType ReductionType { get; }
	public virtual float Weight { get; }
	// methods
	public static MPSNNForwardLossNode Create (MPSNNImageNode[] sourceNodes, MPSCnnLossDescriptor descriptor);
	public static MPSNNForwardLossNode Create (MPSNNImageNode source, MPSNNImageNode labels, MPSCnnLossDescriptor descriptor);
	public static MPSNNForwardLossNode Create (MPSNNImageNode source, MPSNNImageNode labels, MPSNNImageNode weights, MPSCnnLossDescriptor descriptor);
	public virtual MPSNNLossGradientNode GetFilter (MPSNNImageNode sourceGradient);
	public virtual MPSNNLossGradientNode GetFilter (MPSNNImageNode[] sourceGradient);
	public virtual MPSNNLossGradientNode[] GetFilters (MPSNNImageNode sourceGradient);
	public virtual MPSNNLossGradientNode[] GetFilters (MPSNNImageNode[] sourceGradient);
}

New Type: MetalPerformanceShaders.MPSNNInitialGradientNode

public class MPSNNInitialGradientNode : MetalPerformanceShaders.MPSNNFilterNode, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSNNInitialGradientNode (Foundation.NSObjectFlag t);
	public MPSNNInitialGradientNode (MPSNNImageNode source);
	protected MPSNNInitialGradientNode (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	// methods
	public static MPSNNInitialGradientNode Create (MPSNNImageNode source);
}

New Type: MetalPerformanceShaders.MPSNNLossGradientNode

public class MPSNNLossGradientNode : MetalPerformanceShaders.MPSNNGradientFilterNode, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSNNLossGradientNode (Foundation.NSObjectFlag t);
	protected MPSNNLossGradientNode (IntPtr handle);
	public MPSNNLossGradientNode (MPSNNImageNode[] sourceNodes, MPSNNGradientStateNode gradientState, MPSCnnLossDescriptor descriptor, bool isLabelsGradientFilter);
	public MPSNNLossGradientNode (MPSNNImageNode sourceGradient, MPSNNImageNode sourceImage, MPSNNImageNode labels, MPSNNGradientStateNode gradientState, MPSCnnLossDescriptor descriptor, bool isLabelsGradientFilter);
	public MPSNNLossGradientNode (MPSNNImageNode sourceGradient, MPSNNImageNode sourceImage, MPSNNImageNode labels, MPSNNImageNode weights, MPSNNGradientStateNode gradientState, MPSCnnLossDescriptor descriptor, bool isLabelsGradientFilter);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual float Delta { get; }
	public virtual float Epsilon { get; }
	public virtual bool IsLabelsGradientFilter { get; }
	public virtual float LabelSmoothing { get; }
	public virtual MPSCnnLossType LossType { get; }
	public virtual nuint NumberOfClasses { get; }
	public virtual IMPSNNLossCallback PropertyCallBack { get; set; }
	public virtual MPSCnnReductionType ReductionType { get; }
	public virtual float Weight { get; }
	// methods
	public static MPSNNLossGradientNode Create (MPSNNImageNode[] sourceNodes, MPSNNGradientStateNode gradientState, MPSCnnLossDescriptor descriptor, bool isLabelsGradientFilter);
	public static MPSNNLossGradientNode Create (MPSNNImageNode sourceGradient, MPSNNImageNode sourceImage, MPSNNImageNode labels, MPSNNGradientStateNode gradientState, MPSCnnLossDescriptor descriptor, bool isLabelsGradientFilter);
	public static MPSNNLossGradientNode Create (MPSNNImageNode sourceGradient, MPSNNImageNode sourceImage, MPSNNImageNode labels, MPSNNImageNode weights, MPSNNGradientStateNode gradientState, MPSCnnLossDescriptor descriptor, bool isLabelsGradientFilter);
}

New Type: MetalPerformanceShaders.MPSPredicate

public class MPSPredicate : Foundation.NSObject, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MPSPredicate ();
	protected MPSPredicate (Foundation.NSObjectFlag t);
	public MPSPredicate (Metal.IMTLDevice device);
	protected MPSPredicate (IntPtr handle);
	public MPSPredicate (Metal.IMTLBuffer buffer, nuint offset);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Metal.IMTLBuffer PredicateBuffer { get; }
	public virtual nuint PredicateOffset { get; }
	// methods
	public static MPSPredicate Create (Metal.IMTLBuffer buffer, nuint offset);
}

New Type: MetalPerformanceShaders.MPSTemporaryNDArray

public class MPSTemporaryNDArray : MetalPerformanceShaders.MPSNDArray, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MPSTemporaryNDArray (Foundation.NSObjectFlag t);
	protected MPSTemporaryNDArray (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static IMPSNDArrayAllocator DefaultAllocator { get; }
	public virtual nuint ReadCount { get; set; }
	// methods
	public static MPSTemporaryNDArray Create (Metal.IMTLCommandBuffer commandBuffer, MPSNDArrayDescriptor descriptor);
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "6.16.0";
+public const string Version = "6.18.3";

Namespace Photos

Type Changed: Photos.PHAssetCreationRequest

Added method:

public bool SupportsAssetResourceTypes (PHAssetResourceType[] resourceTypes);

Type Changed: Photos.PHFetchResult

Added interfaces:

System.Collections.Generic.IEnumerable<Foundation.NSObject>
System.Collections.IEnumerable

Added property:

public Foundation.NSObject Item { get; }

Added methods:

public virtual System.Collections.Generic.IEnumerator<Foundation.NSObject> GetEnumerator ();
public T[] ObjectsAt<T> (Foundation.NSIndexSet indexes);

Type Changed: Photos.PHPhotoLibrary

Added methods:

public object RegisterChangeObserver (System.Action<PHChange> changeObserver);
public void UnregisterChangeObserver (object registeredToken);