Xamarin.WatchOS SDK API diff: 13.2.0 vs 13.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.WatchOS.dll

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 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 = "13.2.0";
+public const string Version = "13.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.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.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);

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,
}

Namespace WatchKit

Type Changed: WatchKit.WKInterfaceSCNScene

Added properties:

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