Xamarin.Mac SDK API diff: 6.2.0 vs 6.4.0

mscorlib.dll

Namespace System.Buffers

Type Changed: System.Buffers.ReadOnlySequence`1

Added property:

public System.ReadOnlySpan<T> FirstSpan { get; }

Type Changed: System.Buffers.StandardFormat

Added method:

public static bool TryParse (System.ReadOnlySpan<char> format, out StandardFormat result);

New Type: System.Buffers.ArrayBufferWriter`1

public sealed class ArrayBufferWriter`1 : System.Buffers.IBufferWriter<T> {
	// constructors
	public ArrayBufferWriter`1 ();
	public ArrayBufferWriter`1 (int initialCapacity);
	// properties
	public int Capacity { get; }
	public int FreeCapacity { get; }
	public int WrittenCount { get; }
	public System.ReadOnlyMemory<T> WrittenMemory { get; }
	public System.ReadOnlySpan<T> WrittenSpan { get; }
	// methods
	public virtual void Advance (int count);
	public void Clear ();
	public virtual System.Memory<T> GetMemory (int sizeHint);
	public virtual System.Span<T> GetSpan (int sizeHint);
}

New Type: System.Buffers.SequenceReaderExtensions

public static class SequenceReaderExtensions {
	// methods
	public static bool TryReadBigEndian (ref System.Buffers.SequenceReader<byte> reader, out short value);
	public static bool TryReadBigEndian (ref System.Buffers.SequenceReader<byte> reader, out int value);
	public static bool TryReadBigEndian (ref System.Buffers.SequenceReader<byte> reader, out long value);
	public static bool TryReadLittleEndian (ref System.Buffers.SequenceReader<byte> reader, out short value);
	public static bool TryReadLittleEndian (ref System.Buffers.SequenceReader<byte> reader, out int value);
	public static bool TryReadLittleEndian (ref System.Buffers.SequenceReader<byte> reader, out long value);
}

New Type: System.Buffers.SequenceReader`1

public struct SequenceReader`1 {
	// constructors
	public SequenceReader`1 (System.Buffers.ReadOnlySequence<T> sequence);
	// properties
	public long Consumed { get; }
	public System.ReadOnlySpan<T> CurrentSpan { get; }
	public int CurrentSpanIndex { get; }
	public bool End { get; }
	public long Length { get; }
	public System.SequencePosition Position { get; }
	public long Remaining { get; }
	public System.Buffers.ReadOnlySequence<T> Sequence { get; }
	public System.ReadOnlySpan<T> UnreadSpan { get; }
	// methods
	public void Advance (long count);
	public long AdvancePast (T value);
	public long AdvancePastAny (System.ReadOnlySpan<T> values);
	public long AdvancePastAny (T value0, T value1);
	public long AdvancePastAny (T value0, T value1, T value2);
	public long AdvancePastAny (T value0, T value1, T value2, T value3);
	public bool IsNext (System.ReadOnlySpan<T> next, bool advancePast);
	public bool IsNext (T next, bool advancePast);
	public void Rewind (long count);
	public bool TryAdvanceTo (T delimiter, bool advancePastDelimiter);
	public bool TryAdvanceToAny (System.ReadOnlySpan<T> delimiters, bool advancePastDelimiter);
	public bool TryCopyTo (System.Span<T> destination);
	public bool TryPeek (out T value);
	public bool TryRead (out T value);
	public bool TryReadTo (out System.Buffers.ReadOnlySequence<T> sequence, System.ReadOnlySpan<T> delimiter, bool advancePastDelimiter);
	public bool TryReadTo (out System.Buffers.ReadOnlySequence<T> sequence, T delimiter, bool advancePastDelimiter);
	public bool TryReadTo (out System.ReadOnlySpan<T> span, T delimiter, bool advancePastDelimiter);
	public bool TryReadTo (out System.Buffers.ReadOnlySequence<T> sequence, T delimiter, T delimiterEscape, bool advancePastDelimiter);
	public bool TryReadTo (out System.ReadOnlySpan<T> span, T delimiter, T delimiterEscape, bool advancePastDelimiter);
	public bool TryReadToAny (out System.Buffers.ReadOnlySequence<T> sequence, System.ReadOnlySpan<T> delimiters, bool advancePastDelimiter);
	public bool TryReadToAny (out System.ReadOnlySpan<T> span, System.ReadOnlySpan<T> delimiters, bool advancePastDelimiter);
}

Namespace System.Diagnostics.CodeAnalysis

New Type: System.Diagnostics.CodeAnalysis.AllowNullAttribute

public sealed class AllowNullAttribute : System.Attribute {
	// constructors
	public AllowNullAttribute ();
}

New Type: System.Diagnostics.CodeAnalysis.DisallowNullAttribute

public sealed class DisallowNullAttribute : System.Attribute {
	// constructors
	public DisallowNullAttribute ();
}

New Type: System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute

public sealed class DoesNotReturnAttribute : System.Attribute {
	// constructors
	public DoesNotReturnAttribute ();
}

New Type: System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute

public sealed class DoesNotReturnIfAttribute : System.Attribute {
	// constructors
	public DoesNotReturnIfAttribute (bool parameterValue);
	// properties
	public bool ParameterValue { get; }
}

New Type: System.Diagnostics.CodeAnalysis.MaybeNullAttribute

public sealed class MaybeNullAttribute : System.Attribute {
	// constructors
	public MaybeNullAttribute ();
}

New Type: System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute

public sealed class MaybeNullWhenAttribute : System.Attribute {
	// constructors
	public MaybeNullWhenAttribute (bool returnValue);
	// properties
	public bool ReturnValue { get; }
}

New Type: System.Diagnostics.CodeAnalysis.NotNullAttribute

public sealed class NotNullAttribute : System.Attribute {
	// constructors
	public NotNullAttribute ();
}

New Type: System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute

public sealed class NotNullIfNotNullAttribute : System.Attribute {
	// constructors
	public NotNullIfNotNullAttribute (string parameterName);
	// properties
	public string ParameterName { get; }
}

New Type: System.Diagnostics.CodeAnalysis.NotNullWhenAttribute

public sealed class NotNullWhenAttribute : System.Attribute {
	// constructors
	public NotNullWhenAttribute (bool returnValue);
	// properties
	public bool ReturnValue { get; }
}

Namespace System.Runtime.InteropServices

Type Changed: System.Runtime.InteropServices.SequenceMarshal

Added method:

public static bool TryRead<T> (ref System.Buffers.SequenceReader<byte> reader, out T value);

Xamarin.Mac.dll

Namespace AppKit

Type Changed: AppKit.NSOutlineView

Added interface:

INSAccessibilityOutline

New Type: AppKit.INSAccessibilityCheckBox

public interface INSAccessibilityCheckBox : INSAccessibilityButton, INSAccessibilityElementProtocol, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual Foundation.NSNumber AccessibilityValue { get; }
}

New Type: AppKit.INSAccessibilityList

public interface INSAccessibilityList : INSAccessibilityElementProtocol, INSAccessibilityGroup, INSAccessibilityTable, ObjCRuntime.INativeObject, System.IDisposable {
}

New Type: AppKit.INSAccessibilityOutline

public interface INSAccessibilityOutline : INSAccessibilityElementProtocol, INSAccessibilityGroup, INSAccessibilityTable, ObjCRuntime.INativeObject, System.IDisposable {
}

Namespace AudioToolbox

Type Changed: AudioToolbox.AudioChannelBit

Added values:

CenterTopFront = 8192,
CenterTopMiddle = 2048,
LeftTopFront = 4096,
LeftTopMiddle = 2097152,
RightTopFront = 16384,

Type Changed: AudioToolbox.AudioChannelLabel

Added values:

CenterTopFront = 14,
CenterTopMiddle = 12,
LeftTopFront = 13,
LeftTopMiddle = 49,
RightTopFront = 15,

Namespace Metal

Type Changed: Metal.MTLBlitCommandEncoder_Extensions

Added methods:

public static void Copy (this IMTLBlitCommandEncoder This, IMTLTexture sourceTexture, IMTLTexture destinationTexture);
public static void Copy (this IMTLBlitCommandEncoder This, IMTLTexture sourceTexture, nuint sourceSlice, nuint sourceLevel, IMTLTexture destinationTexture, nuint destinationSlice, nuint destinationLevel, nuint sliceCount, nuint levelCount);
public static void ResolveCounters (this IMTLBlitCommandEncoder This, MTLCounterSampleBuffer sampleBuffer, Foundation.NSRange range, IMTLBuffer destinationBuffer, nuint destinationOffset);
public static void SampleCounters (this IMTLBlitCommandEncoder This, MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);

Type Changed: Metal.MTLBuffer_Extensions

Added methods:

public static IMTLBuffer CreateRemoteBuffer (this IMTLBuffer This, IMTLDevice device);
public static IMTLBuffer GetRemoteStorageBuffer (this IMTLBuffer This);

Type Changed: Metal.MTLCaptureManager

Added methods:

public virtual bool StartCapture (MTLCaptureDescriptor descriptor, out Foundation.NSError error);
public virtual bool SupportsDestination (MTLCaptureDestination destination);

Type Changed: Metal.MTLComputeCommandEncoder_Extensions

Added method:

public static void SampleCounters (this IMTLComputeCommandEncoder This, MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);

Type Changed: Metal.MTLDevice_Extensions

Added methods:

public static MTLCounterSampleBuffer CreateCounterSampleBuffer (this IMTLDevice This, MTLCounterSampleBufferDescriptor descriptor, out Foundation.NSError error);
public static bool GetBarycentricCoordsSupported (this IMTLDevice This);
public static MTLCounterSet[] GetCounterSets (this IMTLDevice This);
public static bool GetHasUnifiedMemory (this IMTLDevice This);
public static MTLDeviceLocation GetLocation (this IMTLDevice This);
public static nuint GetLocationNumber (this IMTLDevice This);
public static ulong GetMaxTransferRate (this IMTLDevice This);
public static uint GetPeerCount (this IMTLDevice This);
public static ulong GetPeerGroupId (this IMTLDevice This);
public static uint GetPeerIndex (this IMTLDevice This);
public static void GetSampleTimestamps (this IMTLDevice This, nuint cpuTimestamp, nuint gpuTimestamp);
public static bool GetSupportsShaderBarycentricCoordinates (this IMTLDevice This);
public static bool SupportsFamily (this IMTLDevice This, MTLGpuFamily gpuFamily);

Type Changed: Metal.MTLHeap_Extensions

Added methods:

public static IMTLBuffer CreateBuffer (this IMTLHeap This, nuint length, MTLResourceOptions options, nuint offset);
public static IMTLTexture CreateTexture (this IMTLHeap This, MTLTextureDescriptor descriptor, nuint offset);
public static MTLHazardTrackingMode GetHazardTrackingMode (this IMTLHeap This);
public static MTLResourceOptions GetResourceOptions (this IMTLHeap This);
public static MTLHeapType GetType (this IMTLHeap This);

Type Changed: Metal.MTLRenderCommandEncoder_Extensions

Added methods:

public static void SampleCounters (this IMTLRenderCommandEncoder This, MTLCounterSampleBuffer sampleBuffer, nuint sampleIndex, bool barrier);
public static void UseHeap (this IMTLRenderCommandEncoder This, IMTLHeap heap, MTLRenderStages stages);
public static void UseHeaps (this IMTLRenderCommandEncoder This, IMTLHeap[] heaps, nuint count, MTLRenderStages stages);
public static void UseResource (this IMTLRenderCommandEncoder This, IMTLResource resource, MTLResourceUsage usage, MTLRenderStages stages);
public static void UseResources (this IMTLRenderCommandEncoder This, IMTLResource[] resources, nuint count, MTLResourceUsage usage, MTLRenderStages stages);

Type Changed: Metal.MTLRenderPassDescriptor

Added properties:

public virtual nuint DefaultRasterSampleCount { get; set; }
public virtual nuint RenderTargetHeight { get; set; }
public virtual nuint RenderTargetWidth { get; set; }

Type Changed: Metal.MTLResource_Extensions

Added methods:

public static MTLHazardTrackingMode GetHazardTrackingMode (this IMTLResource This);
public static nuint GetHeapOffset (this IMTLResource This);
public static MTLResourceOptions GetResourceOptions (this IMTLResource This);

Type Changed: Metal.MTLSharedTextureHandle

Obsoleted constructors:

 [Obsolete ("Type is not meant to be created by user code.")]
 public MTLSharedTextureHandle ();

Type Changed: Metal.MTLTextureDescriptor

Added properties:

public virtual MTLHazardTrackingMode HazardTrackingMode { get; set; }
public virtual MTLTextureSwizzleChannels Swizzle { get; set; }

Type Changed: Metal.MTLTexture_Extensions

Added methods:

public static IMTLTexture Create (this IMTLTexture This, MTLPixelFormat pixelFormat, MTLTextureType textureType, Foundation.NSRange levelRange, Foundation.NSRange sliceRange, MTLTextureSwizzleChannels swizzle);
public static IMTLTexture CreateRemoteTexture (this IMTLTexture This, IMTLDevice device);
public static IMTLTexture GetRemoteStorageTexture (this IMTLTexture This);
public static MTLTextureSwizzleChannels GetSwizzle (this IMTLTexture This);

New Type: Metal.IMTLCounter

public interface IMTLCounter : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual string Name { get; }
}

New Type: Metal.IMTLCounterSampleBuffer

public interface IMTLCounterSampleBuffer : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IMTLDevice Device { get; }
	public virtual string Label { get; }
	public virtual nuint SampleCount { get; }
	// methods
	public virtual Foundation.NSData ResolveCounterRange (Foundation.NSRange range);
}

New Type: Metal.IMTLCounterSet

public interface IMTLCounterSet : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual IMTLCounter[] Counters { get; }
	public virtual string Name { get; }
}

New Type: Metal.MTLCaptureDescriptor

public class MTLCaptureDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLCaptureDescriptor ();
	protected MTLCaptureDescriptor (Foundation.NSObjectFlag t);
	protected MTLCaptureDescriptor (IntPtr handle);
	// properties
	public virtual Foundation.NSObject CaptureObject { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual MTLCaptureDestination Destination { get; set; }
	public virtual Foundation.NSUrl OutputUrl { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLCaptureDestination

[Serializable]
public enum MTLCaptureDestination {
	DeveloperTools = 1,
	GpuTraceDocument = 2,
}

New Type: Metal.MTLCaptureError

[Serializable]
public enum MTLCaptureError {
	AlreadyCapturing = 2,
	InvalidDescriptor = 3,
	NotSupported = 1,
}

New Type: Metal.MTLCaptureErrorExtensions

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

New Type: Metal.MTLCommonCounter

[Serializable]
public enum MTLCommonCounter {
	ClipperInvocations = 4,
	ClipperPrimitivesOut = 5,
	ComputeKernelInvocations = 8,
	FragmentCycles = 13,
	FragmentInvocations = 6,
	FragmentsPassed = 7,
	PostTessellationVertexCycles = 12,
	PostTessellationVertexInvocations = 3,
	RenderTargetWriteCycles = 14,
	SetStageUtilization = 16,
	SetStatistic = 17,
	SetTimestamp = 15,
	TessellationCycles = 11,
	TessellationInputPatches = 1,
	Timestamp = 0,
	TotalCycles = 9,
	VertexCycles = 10,
	VertexInvocations = 2,
}

New Type: Metal.MTLCommonCounterExtensions

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

New Type: Metal.MTLCounter

public abstract class MTLCounter : Foundation.NSObject, Foundation.INSObjectProtocol, IMTLCounter, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MTLCounter ();
	protected MTLCounter (Foundation.NSObjectFlag t);
	protected MTLCounter (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual string Name { get; }
}

New Type: Metal.MTLCounterSampleBuffer

public abstract class MTLCounterSampleBuffer : Foundation.NSObject, Foundation.INSObjectProtocol, IMTLCounterSampleBuffer, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MTLCounterSampleBuffer ();
	protected MTLCounterSampleBuffer (Foundation.NSObjectFlag t);
	protected MTLCounterSampleBuffer (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual IMTLDevice Device { get; }
	public virtual string Label { get; }
	public virtual nuint SampleCount { get; }
	// methods
	public virtual Foundation.NSData ResolveCounterRange (Foundation.NSRange range);
}

New Type: Metal.MTLCounterSampleBufferDescriptor

public class MTLCounterSampleBufferDescriptor : Foundation.NSObject, Foundation.INSCopying, Foundation.INSObjectProtocol, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	public MTLCounterSampleBufferDescriptor ();
	protected MTLCounterSampleBufferDescriptor (Foundation.NSObjectFlag t);
	protected MTLCounterSampleBufferDescriptor (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual IMTLCounterSet CounterSet { get; set; }
	public virtual string Label { get; set; }
	public virtual nuint SampleCount { get; set; }
	public virtual MTLStorageMode StorageMode { get; set; }
	// methods
	public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
}

New Type: Metal.MTLCounterSampleBufferError

[Serializable]
public enum MTLCounterSampleBufferError {
	Internal = 1,
	OutOfMemory = 0,
}

New Type: Metal.MTLCounterSampleBufferErrorExtensions

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

New Type: Metal.MTLCounterSet

public abstract class MTLCounterSet : Foundation.NSObject, Foundation.INSObjectProtocol, IMTLCounterSet, ObjCRuntime.INativeObject, System.IDisposable, System.IEquatable<Foundation.NSObject> {
	// constructors
	protected MTLCounterSet ();
	protected MTLCounterSet (Foundation.NSObjectFlag t);
	protected MTLCounterSet (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual IMTLCounter[] Counters { get; }
	public virtual string Name { get; }
}

New Type: Metal.MTLDeviceLocation

[Serializable]
public enum MTLDeviceLocation {
	BuiltIn = 0,
	External = 2,
	Slot = 1,
	Unspecified = 18446744073709551615,
}

New Type: Metal.MTLGpuFamily

[Serializable]
public enum MTLGpuFamily {
	Apple1 = 1001,
	Apple2 = 1002,
	Apple3 = 1003,
	Apple4 = 1004,
	Apple5 = 1005,
	Common1 = 3001,
	Common2 = 3002,
	Common3 = 3003,
	Mac1 = 2001,
	Mac2 = 2002,
	iOSMac1 = 4001,
	iOSMac2 = 4002,
}

New Type: Metal.MTLHazardTrackingMode

[Serializable]
public enum MTLHazardTrackingMode {
	Default = 0,
	Tracked = 2,
	Untracked = 1,
}

New Type: Metal.MTLHeapType

[Serializable]
public enum MTLHeapType {
	Automatic = 0,
	Placement = 1,
}

New Type: Metal.MTLTextureSwizzle

[Serializable]
public enum MTLTextureSwizzle {
	Alpha = 5,
	Blue = 4,
	Green = 3,
	One = 1,
	Red = 2,
	Zero = 0,
}

New Type: Metal.MTLTextureSwizzleChannels

public struct MTLTextureSwizzleChannels {
	// fields
	public MTLTextureSwizzle Alpha;
	public MTLTextureSwizzle Blue;
	public MTLTextureSwizzle Green;
	public MTLTextureSwizzle Red;
}

Namespace Network

Type Changed: Network.NWAdvertiseDescriptor

Added property:

public NWTxtRecord TxtRecord { get; set; }

Type Changed: Network.NWConnection

Added method:

public void GetEstablishmentReport (CoreFoundation.DispatchQueue queue, System.Action<NWEstablishmentReport> handler);

Type Changed: Network.NWEndpoint

Added property:

public string Url { get; }

Added method:

public static NWEndpoint Create (string url);

Type Changed: Network.NWListener

Added property:

public uint ConnectionLimit { get; set; }

Type Changed: Network.NWParameters

Added property:

public bool ProhibitConstrained { get; set; }

Type Changed: Network.NWPath

Added property:

public bool IsConstrained { get; }

Added method:

public void EnumerateGateways (System.Action<NWEndpoint> callback);

Type Changed: Network.NWProtocolDefinition

Added property:

public static NWProtocolDefinition WebSocketDefinition { get; }

Type Changed: Network.NWProtocolMetadata

Added properties:

public bool IsFramerMessage { get; }
public bool IsWebSocket { get; }

Type Changed: Network.NWProtocolOptions

Added property:

public NWIPLocalAddressPreference IPLocalAddressPreference { set; }

New Type: Network.NWBrowseResult

public class NWBrowseResult : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public NWEndpoint EndPoint { get; }
	public nuint InterfacesCount { get; }
	public NWTxtRecord TxtRecord { get; }
	// methods
	public void EnumerateInterfaces (System.Action<NWInterface> handler);
	public static NWBrowseResultChange GetChanges (NWBrowseResult oldResult, NWBrowseResult newResult);
}

New Type: Network.NWBrowseResultChange

[Serializable]
[Flags]
public enum NWBrowseResultChange {
	Identical = 1,
	InterfaceAdded = 8,
	InterfaceRemoved = 16,
	Invalid = 0,
	ResultAdded = 2,
	ResultRemoved = 4,
	TxtRecordChanged = 32,
}

New Type: Network.NWBrowser

public class NWBrowser : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWBrowser (NWBrowserDescriptor descriptor);
	public NWBrowser (NWBrowserDescriptor descriptor, NWParameters parameters);
	// properties
	public NWBrowserDescriptor Descriptor { get; }
	public bool IsActive { get; }
	public NWParameters Parameters { get; }
	// methods
	public void Cancel ();
	public void SetChangesHandler (System.Action<NWBrowseResult,Network.NWBrowseResult> handler);
	public void SetDispatchQueue (CoreFoundation.DispatchQueue queue);
	public void SetStateChangesHandler (System.Action<NWBrowserState,Network.NWError> handler);
	public void Start ();
}

New Type: Network.NWBrowserDescriptor

public class NWBrowserDescriptor : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public string BonjourDomain { get; }
	public string BonjourType { get; }
	public bool IncludeTxtRecord { get; set; }
	// methods
	public static NWBrowserDescriptor CreateBonjourService (string type);
	public static NWBrowserDescriptor CreateBonjourService (string type, string domain);
}

New Type: Network.NWBrowserState

[Serializable]
public enum NWBrowserState {
	Cancelled = 3,
	Failed = 2,
	Invalid = 0,
	Ready = 1,
}

New Type: Network.NWDataTransferReport

public class NWDataTransferReport : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWDataTransferReport (NWConnection connection);
	// properties
	public System.TimeSpan Duration { get; }
	public uint PathCount { get; }
	public NWDataTransferReportState State { get; }
	// methods
	public void Collect (CoreFoundation.DispatchQueue queue, System.Action<NWDataTransferReport> handler);
	public ulong GetApplicationReceivedByteCount (uint pathIndex);
	public ulong GetApplicationSentByteCount (uint pathIndex);
	public NWInterface GetInterface (uint pathIndex);
	public System.TimeSpan GetTransportMinimumRoundTripTime (uint pathIndex);
	public ulong GetTransportReceivedByteCount (uint pathIndex);
	public ulong GetTransportReceivedDuplicateByteCount (uint pathIndex);
	public ulong GetTransportReceivedIPPackageCount (uint pathIndex);
	public ulong GetTransportReceivedOutOfOrderByteCount (uint pathIndex);
	public ulong GetTransportRetransmittedByteCount (uint pathIndex);
	public ulong GetTransportRoundTripTimeVariance (uint pathIndex);
	public ulong GetTransportSentByteCount (uint pathIndex);
	public ulong GetTransportSentIPPackageCount (uint pathIndex);
	public System.TimeSpan GetTransportSmoothedRoundTripTime (uint pathIndex);
}

New Type: Network.NWDataTransferReportState

[Serializable]
public enum NWDataTransferReportState {
	Collected = 2,
	Collecting = 1,
}

New Type: Network.NWEstablishmentReport

public class NWEstablishmentReport : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public System.TimeSpan ConnectionSetupTime { get; }
	public System.TimeSpan Duration { get; }
	public uint PreviousAttemptCount { get; }
	public bool ProxyConfigured { get; }
	public NWEndpoint ProxyEndpoint { get; }
	public bool UsedProxy { get; }
	// methods
	public void EnumerateProtocols (System.Action<NWProtocolDefinition,System.TimeSpan,System.TimeSpan> handler);
	public void EnumerateResolutions (System.Action<NWReportResolutionSource,System.TimeSpan,System.Int32,Network.NWEndpoint,Network.NWEndpoint> handler);
}

New Type: Network.NWFramer

public class NWFramer : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
}

New Type: Network.NWIPLocalAddressPreference

[Serializable]
public enum NWIPLocalAddressPreference {
	Default = 0,
	Stable = 2,
	Temporary = 1,
}

New Type: Network.NWReportResolutionSource

[Serializable]
public enum NWReportResolutionSource {
	Cache = 2,
	ExpiredCache = 3,
	Query = 1,
}

New Type: Network.NWTxtRecord

public class NWTxtRecord : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public bool IsDictionary { get; }
	public long KeyCount { get; }
	// methods
	public bool Add (string key);
	public bool Add (string key, System.ReadOnlySpan<byte> value);
	public bool Add (string key, string value);
	public bool Apply (NWTxtRecord.NWTxtRecordApplyDelegate handler);
	public NWTxtRecord Clone ();
	public static NWTxtRecord CreateDictionary ();
	public bool Equals (NWTxtRecord other);
	public NWTxtRecordFindKey FindKey (string key);
	public static NWTxtRecord FromBytes (System.ReadOnlySpan<byte> bytes);
	public bool GetRawBytes (NWTxtRecord.NWTxtRecordGetRawByteDelegate handler);
	public bool GetValue (string key, NWTxtRecord.NWTxtRecordGetValueDelegete handler);
	public bool Remove (string key);

	// inner types
	public sealed delegate NWTxtRecordApplyDelegate : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
		// constructors
		public NWTxtRecord.NWTxtRecordApplyDelegate (object object, IntPtr method);
		// methods
		public virtual System.IAsyncResult BeginInvoke (string key, NWTxtRecordFindKey rersult, System.ReadOnlySpan<byte> value, System.AsyncCallback callback, object object);
		public virtual void EndInvoke (System.IAsyncResult result);
		public virtual void Invoke (string key, NWTxtRecordFindKey rersult, System.ReadOnlySpan<byte> value);
	}
	public sealed delegate NWTxtRecordGetRawByteDelegate : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
		// constructors
		public NWTxtRecord.NWTxtRecordGetRawByteDelegate (object object, IntPtr method);
		// methods
		public virtual System.IAsyncResult BeginInvoke (System.ReadOnlySpan<byte> value, System.AsyncCallback callback, object object);
		public virtual void EndInvoke (System.IAsyncResult result);
		public virtual void Invoke (System.ReadOnlySpan<byte> value);
	}
	public sealed delegate NWTxtRecordGetValueDelegete : System.MulticastDelegate, System.ICloneable, System.Runtime.Serialization.ISerializable {
		// constructors
		public NWTxtRecord.NWTxtRecordGetValueDelegete (object object, IntPtr method);
		// methods
		public virtual System.IAsyncResult BeginInvoke (string key, NWTxtRecordFindKey result, System.ReadOnlySpan<byte> value, System.AsyncCallback callback, object object);
		public virtual void EndInvoke (System.IAsyncResult result);
		public virtual void Invoke (string key, NWTxtRecordFindKey result, System.ReadOnlySpan<byte> value);
	}
}

New Type: Network.NWTxtRecordFindKey

[Serializable]
public enum NWTxtRecordFindKey {
	EmptyValue = 3,
	Invalid = 0,
	NoValue = 2,
	NonEmptyValue = 4,
	NotPresent = 1,
}

New Type: Network.NWWebSocketCloseCode

[Serializable]
public enum NWWebSocketCloseCode {
	AbnormalClosure = 1006,
	GoingAway = 1001,
	InternalServerError = 1011,
	InvalidFramePayloadData = 1007,
	MandatoryExtension = 1010,
	MessageTooBig = 1009,
	NoStatusReceived = 1005,
	NormalClosure = 1000,
	PolicyViolation = 1008,
	ProtocolError = 1002,
	TlsHandshake = 1015,
	UnsupportedData = 1003,
}

New Type: Network.NWWebSocketMetadata

public class NWWebSocketMetadata : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWWebSocketMetadata (NWWebSocketOpCode opcode);
	// properties
	public NWWebSocketCloseCode CloseCode { get; set; }
	public NWWebSocketOpCode OpCode { get; }
	public NWWebSocketResponse ServerResponse { get; }
	// methods
	public void SetPongHandler (CoreFoundation.DispatchQueue queue, System.Action<NWError> handler);
}

New Type: Network.NWWebSocketOpCode

[Serializable]
public enum NWWebSocketOpCode {
	Binary = 2,
	Close = 8,
	Cont = 0,
	Invalid = -1,
	Ping = 9,
	Pong = 10,
	Text = 1,
}

New Type: Network.NWWebSocketOptions

public class NWWebSocketOptions : Network.NWProtocolOptions, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWWebSocketOptions (NWWebSocketVersion version);
	// properties
	public bool AutoReplyPing { get; set; }
	public nuint MaximumMessageSize { get; set; }
	public bool SkipHandShake { get; set; }
	// methods
	public void AddSubprotocol (string subprotocol);
	public void SetClientRequestHandler (CoreFoundation.DispatchQueue queue, System.Action<NWWebSocketRequest> handler);
	public void SetHeader (string header, string value);
}

New Type: Network.NWWebSocketRequest

public class NWWebSocketRequest : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public void EnumerateAdditionalHeaders (System.Action<System.String,System.String> handler);
	public void EnumerateSubprotocols (System.Action<string> handler);
}

New Type: Network.NWWebSocketResponse

public class NWWebSocketResponse : CoreFoundation.NativeObject, ObjCRuntime.INativeObject, System.IDisposable {
	// constructors
	public NWWebSocketResponse (NWWebSocketResponseStatus status, string subprotocol);
	// properties
	public string SelectedSubprotocol { get; }
	public NWWebSocketResponseStatus Status { get; }
	// methods
	public bool EnumerateAdditionalHeaders (System.Action<System.String,System.String> handler);
	public void SetHeader (string header, string value);
}

New Type: Network.NWWebSocketResponseStatus

[Serializable]
public enum NWWebSocketResponseStatus {
	Accept = 1,
	Invalid = 0,
	Reject = 2,
}

New Type: Network.NWWebSocketVersion

[Serializable]
public enum NWWebSocketVersion {
	Invalid = 0,
	Version13 = 1,
}

Namespace ObjCRuntime

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string Version = "6.2.0";
+public const string Version = "6.4.0";

Namespace SceneKit

Type Changed: SceneKit.SCNCamera

Added properties:

public virtual nint BloomIterationCount { get; set; }
public virtual nfloat BloomIterationSpread { get; set; }
public virtual nfloat GrainIntensity { get; set; }
public virtual bool GrainIsColored { get; set; }
public virtual nfloat GrainScale { get; set; }
public virtual nfloat WhiteBalanceTemperature { get; set; }
public virtual nfloat WhiteBalanceTint { get; set; }

Added method:

public virtual SCNMatrix4 GetProjectionTransform (CoreGraphics.CGSize viewportSize);

Type Changed: SceneKit.SCNHitTest

Added property:

public static Foundation.NSString IgnoreLightAreaKey { get; }

Type Changed: SceneKit.SCNHitTestOptions

Added property:

public bool? IgnoreLightArea { get; set; }

Type Changed: SceneKit.SCNLayer

Added properties:

public virtual CoreGraphics.CGRect CurrentViewport { get; }
public virtual bool TemporalAntialiasingEnabled { get; set; }
public virtual bool UsesReverseZ { get; set; }

Type Changed: SceneKit.SCNLight

Added properties:

public virtual OpenTK.NVector3 AreaExtents { get; set; }
public virtual Foundation.NSValue[] AreaPolygonVertices { get; set; }
public virtual SCNLightAreaType AreaType { get; set; }
public virtual bool DoubleSided { get; set; }
public virtual bool DrawsArea { get; set; }
public virtual OpenTK.NVector3 ParallaxCenterOffset { get; set; }
public virtual bool ParallaxCorrectionEnabled { get; set; }
public virtual OpenTK.NVector3 ParallaxExtentsFactor { get; set; }
public virtual SCNMaterialProperty ProbeEnvironment { get; }
public virtual OpenTK.NVector3 ProbeExtents { get; set; }
public virtual OpenTK.NVector3 ProbeOffset { get; set; }
public virtual SCNLightProbeType ProbeType { get; set; }
public virtual SCNLightProbeUpdateType ProbeUpdateType { get; set; }

Type Changed: SceneKit.SCNLightType

Added property:

public static Foundation.NSString Area { get; }

Type Changed: SceneKit.SCNLightingModel

Added property:

public static Foundation.NSString ShadowOnly { get; }

Type Changed: SceneKit.SCNMaterial

Added properties:

public virtual SCNMaterialProperty ClearCoat { get; }
public virtual SCNMaterialProperty ClearCoatNormal { get; }
public virtual SCNMaterialProperty ClearCoatRoughness { get; }

Type Changed: SceneKit.SCNRenderer

Added properties:

public virtual CoreGraphics.CGRect CurrentViewport { get; }
public virtual bool TemporalAntialiasingEnabled { get; set; }
public virtual bool UsesReverseZ { get; set; }

Type Changed: SceneKit.SCNScene

Added properties:

public virtual nfloat ScreenSpaceReflectionMaximumDistance { get; set; }
public virtual nint ScreenSpaceReflectionSampleCount { get; set; }
public virtual nfloat ScreenSpaceReflectionStride { get; set; }
public virtual bool WantsScreenSpaceReflection { get; set; }

Type Changed: SceneKit.SCNSceneRenderer

Added properties:

public virtual CoreGraphics.CGRect CurrentViewport { get; }
public virtual bool TemporalAntialiasingEnabled { get; set; }
public virtual bool UsesReverseZ { get; set; }

Type Changed: SceneKit.SCNSceneRenderer_Extensions

Added methods:

public static CoreGraphics.CGRect GetCurrentViewport (this ISCNSceneRenderer This);
public static bool GetTemporalAntialiasingEnabled (this ISCNSceneRenderer This);
public static bool GetUsesReverseZ (this ISCNSceneRenderer This);
public static void SetTemporalAntialiasingEnabled (this ISCNSceneRenderer This, bool value);
public static void SetUsesReverseZ (this ISCNSceneRenderer This, bool value);

Type Changed: SceneKit.SCNTechnique

Added property:

public virtual Metal.IMTLLibrary Library { get; set; }

Type Changed: SceneKit.SCNView

Added properties:

public virtual CoreGraphics.CGRect CurrentViewport { get; }
public virtual bool DrawableResizesAsynchronously { get; set; }
public virtual bool TemporalAntialiasingEnabled { get; set; }
public virtual bool UsesReverseZ { get; set; }

New Type: SceneKit.SCNLightAreaType

[Serializable]
public enum SCNLightAreaType {
	Polygon = 4,
	Rectangle = 1,
}

New Type: SceneKit.SCNLightProbeType

[Serializable]
public enum SCNLightProbeType {
	Irradiance = 0,
	Radiance = 1,
}

New Type: SceneKit.SCNLightProbeUpdateType

[Serializable]
public enum SCNLightProbeUpdateType {
	Never = 0,
	Realtime = 1,
}