diff --git a/src/Perspex.SceneGraph/Media/LineGeometry.cs b/src/Perspex.SceneGraph/Media/LineGeometry.cs index fb5219e82e..196fdc40eb 100644 --- a/src/Perspex.SceneGraph/Media/LineGeometry.cs +++ b/src/Perspex.SceneGraph/Media/LineGeometry.cs @@ -10,6 +10,9 @@ namespace Perspex.Media /// public class LineGeometry : Geometry { + private Point _startPoint; + private Point _endPoint; + /// /// Initializes a new instance of the class. /// @@ -17,21 +20,23 @@ namespace Perspex.Media /// The end point. public LineGeometry(Point startPoint, Point endPoint) { + _startPoint = startPoint; + _endPoint = endPoint; IPlatformRenderInterface factory = PerspexLocator.Current.GetService(); IStreamGeometryImpl impl = factory.CreateStreamGeometry(); using (IStreamGeometryContextImpl context = impl.Open()) { - context.BeginFigure(startPoint, true); + context.BeginFigure(startPoint, false); context.LineTo(endPoint); - context.EndFigure(true); + context.EndFigure(false); } PlatformImpl = impl; } /// - public override Rect Bounds => PlatformImpl.Bounds; + public override Rect Bounds => new Rect(_startPoint, _endPoint); /// public override Geometry Clone() diff --git a/tests/Perspex.RenderTests/Perspex.Cairo.RenderTests.csproj b/tests/Perspex.RenderTests/Perspex.Cairo.RenderTests.csproj index 60b3b02b11..dd6953d355 100644 --- a/tests/Perspex.RenderTests/Perspex.Cairo.RenderTests.csproj +++ b/tests/Perspex.RenderTests/Perspex.Cairo.RenderTests.csproj @@ -71,6 +71,7 @@ + diff --git a/tests/Perspex.RenderTests/Perspex.Skia.RenderTests.csproj b/tests/Perspex.RenderTests/Perspex.Skia.RenderTests.csproj index 14dd170a8f..08bba41fce 100644 --- a/tests/Perspex.RenderTests/Perspex.Skia.RenderTests.csproj +++ b/tests/Perspex.RenderTests/Perspex.Skia.RenderTests.csproj @@ -68,6 +68,7 @@ + diff --git a/tests/Perspex.RenderTests/Shapes/LineTests.cs b/tests/Perspex.RenderTests/Shapes/LineTests.cs index bc5eb36dbf..80eb7c75ca 100644 --- a/tests/Perspex.RenderTests/Shapes/LineTests.cs +++ b/tests/Perspex.RenderTests/Shapes/LineTests.cs @@ -22,7 +22,7 @@ namespace Perspex.Direct2D1.RenderTests.Shapes } [Fact] - public void Circle_1px_Stroke() + public void Line_1px_Stroke() { Decorator target = new Decorator { diff --git a/tests/TestFiles/Direct2D1/Shapes/Line/Circle_1px_Stroke.expected.png b/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke.expected.png similarity index 52% rename from tests/TestFiles/Direct2D1/Shapes/Line/Circle_1px_Stroke.expected.png rename to tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke.expected.png index 539d27fdd3..18ade2da0f 100644 Binary files a/tests/TestFiles/Direct2D1/Shapes/Line/Circle_1px_Stroke.expected.png and b/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke.expected.png differ diff --git a/tests/TestFiles/Direct2D1/Shapes/Line/Line_1px_Stroke.expected.png b/tests/TestFiles/Direct2D1/Shapes/Line/Line_1px_Stroke.expected.png new file mode 100644 index 0000000000..18ade2da0f Binary files /dev/null and b/tests/TestFiles/Direct2D1/Shapes/Line/Line_1px_Stroke.expected.png differ diff --git a/tests/TestFiles/Skia/Shapes/Line/Line_1px_Stroke.expected.png b/tests/TestFiles/Skia/Shapes/Line/Line_1px_Stroke.expected.png new file mode 100644 index 0000000000..18ade2da0f Binary files /dev/null and b/tests/TestFiles/Skia/Shapes/Line/Line_1px_Stroke.expected.png differ