diff --git a/api/Avalonia.nupkg.xml b/api/Avalonia.nupkg.xml index ea0bf4b88c..32ab43f84f 100644 --- a/api/Avalonia.nupkg.xml +++ b/api/Avalonia.nupkg.xml @@ -13,6 +13,12 @@ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll current/Avalonia/lib/net10.0/Avalonia.Base.dll + + CP0001 + T:Avalonia.Platform.IGeometryContext2 + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + CP0001 T:Avalonia.Controls.Primitives.IScrollable @@ -37,6 +43,12 @@ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll current/Avalonia/lib/net8.0/Avalonia.Base.dll + + CP0001 + T:Avalonia.Platform.IGeometryContext2 + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + CP0001 T:Avalonia.Controls.Primitives.IScrollable @@ -85,6 +97,30 @@ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll current/Avalonia/lib/net10.0/Avalonia.Base.dll + + CP0002 + M:Avalonia.Media.StreamGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + CP0002 M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(Avalonia.Media.IEffect) @@ -97,6 +133,54 @@ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll current/Avalonia/lib/net10.0/Avalonia.Base.dll + + CP0002 + M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + CP0002 F:Avalonia.Controls.TextBlock.LetterSpacingProperty @@ -283,6 +367,30 @@ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll current/Avalonia/lib/net8.0/Avalonia.Base.dll + + CP0002 + M:Avalonia.Media.StreamGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + CP0002 M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(Avalonia.Media.IEffect) @@ -295,6 +403,54 @@ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll current/Avalonia/lib/net8.0/Avalonia.Base.dll + + CP0002 + M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + CP0002 F:Avalonia.Controls.TextBlock.LetterSpacingProperty @@ -487,6 +643,30 @@ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll current/Avalonia/lib/net10.0/Avalonia.Base.dll + + CP0006 + M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + CP0006 M:Avalonia.Input.Platform.IClipboard.SetDataAsync(Avalonia.Input.IAsyncDataTransfer) @@ -595,6 +775,30 @@ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll current/Avalonia/lib/net8.0/Avalonia.Base.dll + + CP0006 + M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection,System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + CP0006 M:Avalonia.Platform.IPlatformRenderInterfaceImportedImage.SnapshotWithTimelineSemaphores(Avalonia.Platform.IPlatformRenderInterfaceImportedSemaphore,System.UInt64,Avalonia.Platform.IPlatformRenderInterfaceImportedSemaphore,System.UInt64) @@ -685,6 +889,18 @@ baseline/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll current/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll + + CP0008 + T:Avalonia.Media.StreamGeometryContext + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Media.StreamGeometryContext + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + CP0009 T:Avalonia.Platform.Screen diff --git a/src/Avalonia.Base/Media/StreamGeometryContext.cs b/src/Avalonia.Base/Media/StreamGeometryContext.cs index c8072564b1..05c17f2b4d 100644 --- a/src/Avalonia.Base/Media/StreamGeometryContext.cs +++ b/src/Avalonia.Base/Media/StreamGeometryContext.cs @@ -10,7 +10,7 @@ namespace Avalonia.Media /// of is obtained by calling /// . /// - public class StreamGeometryContext : IGeometryContext, IGeometryContext2 + public class StreamGeometryContext : IGeometryContext { private readonly IStreamGeometryContextImpl _impl; @@ -34,15 +34,13 @@ namespace Avalonia.Media _impl.SetFillRule(fillRule); } - - /// - public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection) + /// + public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, bool isStroked = true) { - _impl.ArcTo(point, size, rotationAngle, isLargeArc, sweepDirection); + _impl.ArcTo(point, size, rotationAngle, isLargeArc, sweepDirection, isStroked); _currentPoint = point; } - /// /// Draws an arc to the specified point using polylines, quadratic or cubic Bezier curves /// Significantly more precise when drawing elliptic arcs with extreme width:height ratios. @@ -59,34 +57,32 @@ namespace Avalonia.Media PreciseEllipticArcHelper.ArcTo(this, _currentPoint, point, size, rotationAngle, isLargeArc, sweepDirection); } - /// - public void BeginFigure(Point startPoint, bool isFilled) + public void BeginFigure(Point startPoint, bool isFilled = true) { _impl.BeginFigure(startPoint, isFilled); _currentPoint = startPoint; } /// - public void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint) + public void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint, bool isStroked = true) { - _impl.CubicBezierTo(controlPoint1, controlPoint2, endPoint); + _impl.CubicBezierTo(controlPoint1, controlPoint2, endPoint, isStroked); _currentPoint = endPoint; } /// - public void QuadraticBezierTo(Point controlPoint , Point endPoint) + public void QuadraticBezierTo(Point controlPoint, Point endPoint, bool isStroked = true) { - _impl.QuadraticBezierTo(controlPoint , endPoint); + _impl.QuadraticBezierTo(controlPoint, endPoint, isStroked); _currentPoint = endPoint; } - /// - public void LineTo(Point endPoint) + public void LineTo(Point point, bool isStroked = true) { - _impl.LineTo(endPoint); - _currentPoint = endPoint; + _impl.LineTo(point, isStroked); + _currentPoint = point; } /// @@ -102,46 +98,5 @@ namespace Avalonia.Media { _impl.Dispose(); } - - /// - public void LineTo(Point point, bool isStroked) - { - if (_impl is IGeometryContext2 context2) - context2.LineTo(point, isStroked); - else - _impl.LineTo(point); - - _currentPoint = point; - } - - public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, bool isStroked) - { - if (_impl is IGeometryContext2 context2) - context2.ArcTo(point, size, rotationAngle, isLargeArc, sweepDirection, isStroked); - else - _impl.ArcTo(point, size, rotationAngle, isLargeArc, sweepDirection); - - _currentPoint = point; - } - - public void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint, bool isStroked) - { - if (_impl is IGeometryContext2 context2) - context2.CubicBezierTo(controlPoint1, controlPoint2, endPoint, isStroked); - else - _impl.CubicBezierTo(controlPoint1, controlPoint2, endPoint); - - _currentPoint = endPoint; - } - - public void QuadraticBezierTo(Point controlPoint, Point endPoint, bool isStroked) - { - if (_impl is IGeometryContext2 context2) - context2.QuadraticBezierTo(controlPoint, endPoint, isStroked); - else - _impl.QuadraticBezierTo(controlPoint, endPoint); - - _currentPoint = endPoint; - } } } diff --git a/src/Avalonia.Base/Platform/IGeometryContext.cs b/src/Avalonia.Base/Platform/IGeometryContext.cs index 614b331761..4305dccd3f 100644 --- a/src/Avalonia.Base/Platform/IGeometryContext.cs +++ b/src/Avalonia.Base/Platform/IGeometryContext.cs @@ -18,7 +18,8 @@ namespace Avalonia.Platform /// /// A value that indicates whether the arc is drawn in the Clockwise or Counterclockwise direction. /// - void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection); + /// Whether the segment is stroked + void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, bool isStroked = true); /// /// Begins a new figure. @@ -33,20 +34,23 @@ namespace Avalonia.Platform /// The first control point used to specify the shape of the curve. /// The second control point used to specify the shape of the curve. /// The destination point for the end of the curve. - void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint); + /// Whether the segment is stroked + void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint, bool isStroked = true); /// /// Draws a quadratic Bezier curve to the specified point /// - /// Control point - /// DestinationPoint - void QuadraticBezierTo(Point controlPoint , Point endPoint); + /// The control point used to specify the shape of the curve. + /// The destination point for the end of the curve. + /// Whether the segment is stroked + void QuadraticBezierTo(Point controlPoint, Point endPoint, bool isStroked = true); /// /// Draws a line to the specified point. /// - /// The destination point. - void LineTo(Point endPoint); + /// The destination point. + /// Whether the segment is stroked + void LineTo(Point point, bool isStroked = true); /// /// Ends the figure started by . diff --git a/src/Avalonia.Base/Platform/IGeometryContext2.cs b/src/Avalonia.Base/Platform/IGeometryContext2.cs deleted file mode 100644 index 4142430e9d..0000000000 --- a/src/Avalonia.Base/Platform/IGeometryContext2.cs +++ /dev/null @@ -1,46 +0,0 @@ -using Avalonia.Media; - -namespace Avalonia.Platform -{ - // TODO12 combine with IGeometryContext - public interface IGeometryContext2 : IGeometryContext - { - /// - /// Draws a line to the specified point. - /// - /// The destination point. - /// Whether the segment is stroked - void LineTo(Point point, bool isStroked); - - /// - /// Draws an arc to the specified point. - /// - /// The destination point. - /// The radii of an oval whose perimeter is used to draw the angle. - /// The rotation angle (in radians) of the oval that specifies the curve. - /// true to draw the arc greater than 180 degrees; otherwise, false. - /// - /// A value that indicates whether the arc is drawn in the Clockwise or Counterclockwise direction. - /// - /// Whether the segment is stroked - void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, bool isStroked); - - /// - /// Draws a Bezier curve to the specified point. - /// - /// The first control point used to specify the shape of the curve. - /// The second control point used to specify the shape of the curve. - /// The destination point for the end of the curve. - /// Whether the segment is stroked - void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint, bool isStroked); - - /// - /// Draws a quadratic Bezier curve to the specified point - /// - /// Control point - /// DestinationPoint - /// Whether the segment is stroked - void QuadraticBezierTo(Point controlPoint, Point endPoint, bool isStroked); - } - -} diff --git a/src/Avalonia.Base/Platform/PathGeometryContext.cs b/src/Avalonia.Base/Platform/PathGeometryContext.cs index bcb4f2a272..a20c7cf26b 100644 --- a/src/Avalonia.Base/Platform/PathGeometryContext.cs +++ b/src/Avalonia.Base/Platform/PathGeometryContext.cs @@ -21,7 +21,7 @@ namespace Avalonia.Visuals.Platform } /// - public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection) + public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, bool isStroked = true) { var arcSegment = new ArcSegment { @@ -29,7 +29,8 @@ namespace Avalonia.Visuals.Platform RotationAngle = rotationAngle, IsLargeArc = isLargeArc, SweepDirection = sweepDirection, - Point = point + Point = point, + IsStroked = isStroked }; CurrentFigureSegments().Add(arcSegment); @@ -47,27 +48,39 @@ namespace Avalonia.Visuals.Platform } /// - public void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint) + public void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint, bool isStroked = true) { - var bezierSegment = new BezierSegment { Point1 = controlPoint1, Point2 = controlPoint2, Point3 = endPoint }; + var bezierSegment = new BezierSegment + { + Point1 = controlPoint1, + Point2 = controlPoint2, + Point3 = endPoint, + IsStroked = isStroked + }; CurrentFigureSegments().Add(bezierSegment); } /// - public void QuadraticBezierTo(Point controlPoint , Point endPoint) + public void QuadraticBezierTo(Point controlPoint , Point endPoint, bool isStroked = true) { - var quadraticBezierSegment = new QuadraticBezierSegment { Point1 = controlPoint , Point2 = endPoint }; + var quadraticBezierSegment = new QuadraticBezierSegment + { + Point1 = controlPoint, + Point2 = endPoint, + IsStroked = isStroked + }; CurrentFigureSegments().Add(quadraticBezierSegment); } /// - public void LineTo(Point endPoint) + public void LineTo(Point point, bool isStroked = true) { var lineSegment = new LineSegment { - Point = endPoint + Point = point, + IsStroked = isStroked }; CurrentFigureSegments().Add(lineSegment); diff --git a/src/Headless/Avalonia.Headless/HeadlessPlatformRenderInterface.cs b/src/Headless/Avalonia.Headless/HeadlessPlatformRenderInterface.cs index 4bcc81846c..0a29b9a5b8 100644 --- a/src/Headless/Avalonia.Headless/HeadlessPlatformRenderInterface.cs +++ b/src/Headless/Avalonia.Headless/HeadlessPlatformRenderInterface.cs @@ -313,25 +313,25 @@ namespace Avalonia.Headless _parent.Bounds = CalculateBounds(); } - public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection) + public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, bool isStroked = true) => Track(point); public void BeginFigure(Point startPoint, bool isFilled = true) => Track(startPoint); - public void CubicBezierTo(Point point1, Point point2, Point point3) + public void CubicBezierTo(Point point1, Point point2, Point point3, bool isStroked = true) { Track(point1); Track(point2); Track(point3); } - public void QuadraticBezierTo(Point control, Point endPoint) + public void QuadraticBezierTo(Point control, Point endPoint, bool isStroked = true) { Track(control); Track(endPoint); } - public void LineTo(Point point) => Track(point); + public void LineTo(Point point, bool isStroked = true) => Track(point); public void EndFigure(bool isClosed) { diff --git a/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs b/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs index 940a1c7247..f56cd274bf 100644 --- a/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs @@ -1,5 +1,3 @@ -using System.Diagnostics.CodeAnalysis; -using System.Drawing; using Avalonia.Media; using Avalonia.Platform; using SkiaSharp; @@ -78,7 +76,7 @@ namespace Avalonia.Skia /// /// A Skia implementation of a . /// - private class StreamContext : IStreamGeometryContextImpl, IGeometryContext2 + private class StreamContext : IStreamGeometryContextImpl { private readonly StreamGeometryImpl _geometryImpl; private SKPath Stroke => _geometryImpl._strokePath; @@ -122,33 +120,7 @@ namespace Avalonia.Skia } /// - public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection) - { - var arc = isLargeArc ? SKPathArcSize.Large : SKPathArcSize.Small; - var sweep = sweepDirection == SweepDirection.Clockwise - ? SKPathDirection.Clockwise - : SKPathDirection.CounterClockwise; - Stroke.ArcTo( - (float)size.Width, - (float)size.Height, - (float)rotationAngle, - arc, - sweep, - (float)point.X, - (float)point.Y); - if (Duplicate) - Fill.ArcTo( - (float)size.Width, - (float)size.Height, - (float)rotationAngle, - arc, - sweep, - (float)point.X, - (float)point.Y); - } - - /// - public void BeginFigure(Point startPoint, bool isFilled) + public void BeginFigure(Point startPoint, bool isFilled = true) { if (!isFilled) EnsureSeparateFillPath(); @@ -161,30 +133,6 @@ namespace Avalonia.Skia Fill.MoveTo((float)startPoint.X, (float)startPoint.Y); } - /// - public void CubicBezierTo(Point point1, Point point2, Point point3) - { - Stroke.CubicTo((float)point1.X, (float)point1.Y, (float)point2.X, (float)point2.Y, (float)point3.X, (float)point3.Y); - if (Duplicate) - Fill.CubicTo((float)point1.X, (float)point1.Y, (float)point2.X, (float)point2.Y, (float)point3.X, (float)point3.Y); - } - - /// - public void QuadraticBezierTo(Point point1, Point point2) - { - Stroke.QuadTo((float)point1.X, (float)point1.Y, (float)point2.X, (float)point2.Y); - if (Duplicate) - Fill.QuadTo((float)point1.X, (float)point1.Y, (float)point2.X, (float)point2.Y); - } - - /// - public void LineTo(Point point) - { - Stroke.LineTo((float)point.X, (float)point.Y); - if (Duplicate) - Fill.LineTo((float)point.X, (float)point.Y); - } - /// public void EndFigure(bool isClosed) { @@ -209,7 +157,7 @@ namespace Avalonia.Skia } /// - public void LineTo(Point point, bool isStroked) + public void LineTo(Point point, bool isStroked = true) { if (isStroked) { @@ -225,7 +173,7 @@ namespace Avalonia.Skia } /// - public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, bool isStroked) + public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, bool isStroked = true) { var arc = isLargeArc ? SKPathArcSize.Large : SKPathArcSize.Small; var sweep = sweepDirection == SweepDirection.Clockwise @@ -260,7 +208,7 @@ namespace Avalonia.Skia } /// - public void CubicBezierTo(Point point1, Point point2, Point point3, bool isStroked) + public void CubicBezierTo(Point point1, Point point2, Point point3, bool isStroked = true) { if (isStroked) { @@ -276,7 +224,7 @@ namespace Avalonia.Skia } /// - public void QuadraticBezierTo(Point point1, Point point2, bool isStroked) + public void QuadraticBezierTo(Point point1, Point point2, bool isStroked = true) { if (isStroked) {