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