Merge IGeometryContext and IGeometryContext2 (#20528)
Co-authored-by: Max Katz <maxkatz6@outlook.com>
This commit is contained in:
committed by
GitHub
parent
3c88142694
commit
d5d7a7b0e8
@@ -13,6 +13,12 @@
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0001</DiagnosticId>
|
||||
<Target>T:Avalonia.Platform.IGeometryContext2</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0001</DiagnosticId>
|
||||
<Target>T:Avalonia.Controls.Primitives.IScrollable</Target>
|
||||
@@ -37,6 +43,12 @@
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0001</DiagnosticId>
|
||||
<Target>T:Avalonia.Platform.IGeometryContext2</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0001</DiagnosticId>
|
||||
<Target>T:Avalonia.Controls.Primitives.IScrollable</Target>
|
||||
@@ -85,6 +97,30 @@
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Media.StreamGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Media.StreamGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Media.StreamGeometryContext.LineTo(Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Media.StreamGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(Avalonia.Media.IEffect)</Target>
|
||||
@@ -97,6 +133,54 @@
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Visuals.Platform.PathGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Visuals.Platform.PathGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Visuals.Platform.PathGeometryContext.LineTo(Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Visuals.Platform.PathGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>F:Avalonia.Controls.TextBlock.LetterSpacingProperty</Target>
|
||||
@@ -283,6 +367,30 @@
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Media.StreamGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Media.StreamGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Media.StreamGeometryContext.LineTo(Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Media.StreamGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(Avalonia.Media.IEffect)</Target>
|
||||
@@ -295,6 +403,54 @@
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Visuals.Platform.PathGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Visuals.Platform.PathGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Visuals.Platform.PathGeometryContext.LineTo(Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>M:Avalonia.Visuals.Platform.PathGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0002</DiagnosticId>
|
||||
<Target>F:Avalonia.Controls.TextBlock.LetterSpacingProperty</Target>
|
||||
@@ -487,6 +643,30 @@
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection,System.Boolean)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point,System.Boolean)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point,System.Boolean)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point,System.Boolean)</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Input.Platform.IClipboard.SetDataAsync(Avalonia.Input.IAsyncDataTransfer)</Target>
|
||||
@@ -595,6 +775,30 @@
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection,System.Boolean)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point,System.Boolean)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point,System.Boolean)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point,System.Boolean)</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0006</DiagnosticId>
|
||||
<Target>M:Avalonia.Platform.IPlatformRenderInterfaceImportedImage.SnapshotWithTimelineSemaphores(Avalonia.Platform.IPlatformRenderInterfaceImportedSemaphore,System.UInt64,Avalonia.Platform.IPlatformRenderInterfaceImportedSemaphore,System.UInt64)</Target>
|
||||
@@ -685,6 +889,18 @@
|
||||
<Left>baseline/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll</Left>
|
||||
<Right>current/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0008</DiagnosticId>
|
||||
<Target>T:Avalonia.Media.StreamGeometryContext</Target>
|
||||
<Left>baseline/Avalonia/lib/net10.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net10.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0008</DiagnosticId>
|
||||
<Target>T:Avalonia.Media.StreamGeometryContext</Target>
|
||||
<Left>baseline/Avalonia/lib/net8.0/Avalonia.Base.dll</Left>
|
||||
<Right>current/Avalonia/lib/net8.0/Avalonia.Base.dll</Right>
|
||||
</Suppression>
|
||||
<Suppression>
|
||||
<DiagnosticId>CP0009</DiagnosticId>
|
||||
<Target>T:Avalonia.Platform.Screen</Target>
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Avalonia.Media
|
||||
/// of <see cref="StreamGeometryContext"/> is obtained by calling
|
||||
/// <see cref="StreamGeometry.Open"/>.
|
||||
/// </remarks>
|
||||
public class StreamGeometryContext : IGeometryContext, IGeometryContext2
|
||||
public class StreamGeometryContext : IGeometryContext
|
||||
{
|
||||
private readonly IStreamGeometryContextImpl _impl;
|
||||
|
||||
@@ -34,15 +34,13 @@ namespace Avalonia.Media
|
||||
_impl.SetFillRule(fillRule);
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 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);
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void BeginFigure(Point startPoint, bool isFilled)
|
||||
public void BeginFigure(Point startPoint, bool isFilled = true)
|
||||
{
|
||||
_impl.BeginFigure(startPoint, isFilled);
|
||||
_currentPoint = startPoint;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
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;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc/>
|
||||
public void LineTo(Point endPoint)
|
||||
public void LineTo(Point point, bool isStroked = true)
|
||||
{
|
||||
_impl.LineTo(endPoint);
|
||||
_currentPoint = endPoint;
|
||||
_impl.LineTo(point, isStroked);
|
||||
_currentPoint = point;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
@@ -102,46 +98,5 @@ namespace Avalonia.Media
|
||||
{
|
||||
_impl.Dispose();
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,8 @@ namespace Avalonia.Platform
|
||||
/// <param name="sweepDirection">
|
||||
/// A value that indicates whether the arc is drawn in the Clockwise or Counterclockwise direction.
|
||||
/// </param>
|
||||
void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection);
|
||||
/// <param name="isStroked">Whether the segment is stroked</param>
|
||||
void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, bool isStroked = true);
|
||||
|
||||
/// <summary>
|
||||
/// Begins a new figure.
|
||||
@@ -33,20 +34,23 @@ namespace Avalonia.Platform
|
||||
/// <param name="controlPoint1">The first control point used to specify the shape of the curve.</param>
|
||||
/// <param name="controlPoint2">The second control point used to specify the shape of the curve.</param>
|
||||
/// <param name="endPoint">The destination point for the end of the curve.</param>
|
||||
void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint);
|
||||
/// <param name="isStroked">Whether the segment is stroked</param>
|
||||
void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint, bool isStroked = true);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a quadratic Bezier curve to the specified point
|
||||
/// </summary>
|
||||
/// <param name="controlPoint ">Control point</param>
|
||||
/// <param name="endPoint">DestinationPoint</param>
|
||||
void QuadraticBezierTo(Point controlPoint , Point endPoint);
|
||||
/// <param name="controlPoint">The control point used to specify the shape of the curve.</param>
|
||||
/// <param name="endPoint">The destination point for the end of the curve.</param>
|
||||
/// <param name="isStroked">Whether the segment is stroked</param>
|
||||
void QuadraticBezierTo(Point controlPoint, Point endPoint, bool isStroked = true);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a line to the specified point.
|
||||
/// </summary>
|
||||
/// <param name="endPoint">The destination point.</param>
|
||||
void LineTo(Point endPoint);
|
||||
/// <param name="point">The destination point.</param>
|
||||
/// <param name="isStroked">Whether the segment is stroked</param>
|
||||
void LineTo(Point point, bool isStroked = true);
|
||||
|
||||
/// <summary>
|
||||
/// Ends the figure started by <see cref="BeginFigure(Point, bool)"/>.
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
using Avalonia.Media;
|
||||
|
||||
namespace Avalonia.Platform
|
||||
{
|
||||
// TODO12 combine with IGeometryContext
|
||||
public interface IGeometryContext2 : IGeometryContext
|
||||
{
|
||||
/// <summary>
|
||||
/// Draws a line to the specified point.
|
||||
/// </summary>
|
||||
/// <param name="point">The destination point.</param>
|
||||
/// <param name="isStroked">Whether the segment is stroked</param>
|
||||
void LineTo(Point point, bool isStroked);
|
||||
|
||||
/// <summary>
|
||||
/// Draws an arc to the specified point.
|
||||
/// </summary>
|
||||
/// <param name="point">The destination point.</param>
|
||||
/// <param name="size">The radii of an oval whose perimeter is used to draw the angle.</param>
|
||||
/// <param name="rotationAngle">The rotation angle (in radians) of the oval that specifies the curve.</param>
|
||||
/// <param name="isLargeArc">true to draw the arc greater than 180 degrees; otherwise, false.</param>
|
||||
/// <param name="sweepDirection">
|
||||
/// A value that indicates whether the arc is drawn in the Clockwise or Counterclockwise direction.
|
||||
/// </param>
|
||||
/// <param name="isStroked">Whether the segment is stroked</param>
|
||||
void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection, bool isStroked);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a Bezier curve to the specified point.
|
||||
/// </summary>
|
||||
/// <param name="controlPoint1">The first control point used to specify the shape of the curve.</param>
|
||||
/// <param name="controlPoint2">The second control point used to specify the shape of the curve.</param>
|
||||
/// <param name="endPoint">The destination point for the end of the curve.</param>
|
||||
/// <param name="isStroked">Whether the segment is stroked</param>
|
||||
void CubicBezierTo(Point controlPoint1, Point controlPoint2, Point endPoint, bool isStroked);
|
||||
|
||||
/// <summary>
|
||||
/// Draws a quadratic Bezier curve to the specified point
|
||||
/// </summary>
|
||||
/// <param name="controlPoint ">Control point</param>
|
||||
/// <param name="endPoint">DestinationPoint</param>
|
||||
/// <param name="isStroked">Whether the segment is stroked</param>
|
||||
void QuadraticBezierTo(Point controlPoint, Point endPoint, bool isStroked);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -21,7 +21,7 @@ namespace Avalonia.Visuals.Platform
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
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
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
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);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
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);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
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);
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
/// <summary>
|
||||
/// A Skia implementation of a <see cref="IStreamGeometryContextImpl"/>.
|
||||
/// </summary>
|
||||
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
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void LineTo(Point point)
|
||||
{
|
||||
Stroke.LineTo((float)point.X, (float)point.Y);
|
||||
if (Duplicate)
|
||||
Fill.LineTo((float)point.X, (float)point.Y);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void EndFigure(bool isClosed)
|
||||
{
|
||||
@@ -209,7 +157,7 @@ namespace Avalonia.Skia
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void LineTo(Point point, bool isStroked)
|
||||
public void LineTo(Point point, bool isStroked = true)
|
||||
{
|
||||
if (isStroked)
|
||||
{
|
||||
@@ -225,7 +173,7 @@ namespace Avalonia.Skia
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void QuadraticBezierTo(Point point1, Point point2, bool isStroked)
|
||||
public void QuadraticBezierTo(Point point1, Point point2, bool isStroked = true)
|
||||
{
|
||||
if (isStroked)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user