diff --git a/Perspex.sln b/Perspex.sln
index 48e1bc66cd..8aae91f1b8 100644
--- a/Perspex.sln
+++ b/Perspex.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
-VisualStudioVersion = 14.0.25123.0
+VisualStudioVersion = 14.0.24720.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Base", "src\Perspex.Base\Perspex.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}"
EndProject
@@ -147,6 +147,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Logging.Serilog", "
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.DesignerSupport", "src\Perspex.DesignerSupport\Perspex.DesignerSupport.csproj", "{799A7BB5-3C2C-48B6-85A7-406A12C420DA}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Skia.RenderTests", "tests\Perspex.RenderTests\Perspex.Skia.RenderTests.csproj", "{D35A9F3D-8BB0-496E-BF72-444038A7DEBB}"
+EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
src\Shared\RenderHelpers\RenderHelpers.projitems*{fb05ac90-89ba-4f2f-a924-f37875fb547c}*SharedItemsImports = 4
@@ -1738,6 +1740,38 @@ Global
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|x86.ActiveCfg = Release|Any CPU
{799A7BB5-3C2C-48B6-85A7-406A12C420DA}.Release|x86.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|Any CPU.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|iPhone.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|x86.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.AppStore|x86.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Debug|x86.Build.0 = Debug|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|iPhone.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|x86.ActiveCfg = Release|Any CPU
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1783,5 +1817,6 @@ Global
{61BEC86C-F307-4295-B5B8-9428610D7D55} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{88060192-33D5-4932-B0F9-8BD2763E857D} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{410AC439-81A1-4EB5-B5E9-6A7FC6B77F4B} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
+ {D35A9F3D-8BB0-496E-BF72-444038A7DEBB} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
EndGlobalSection
EndGlobal
diff --git a/tests/Perspex.RenderTests/Controls/BorderTests.cs b/tests/Perspex.RenderTests/Controls/BorderTests.cs
index dbb2ada4b2..6c6c0d78d2 100644
Binary files a/tests/Perspex.RenderTests/Controls/BorderTests.cs and b/tests/Perspex.RenderTests/Controls/BorderTests.cs differ
diff --git a/tests/Perspex.RenderTests/Media/ImageBrushTests.cs b/tests/Perspex.RenderTests/Media/ImageBrushTests.cs
index aaf6592b88..cfebd90b62 100644
--- a/tests/Perspex.RenderTests/Media/ImageBrushTests.cs
+++ b/tests/Perspex.RenderTests/Media/ImageBrushTests.cs
@@ -102,7 +102,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
RenderToFile(target);
CompareImages();
}
-#if PERSPEX_SKIA
+#if PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -129,7 +129,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
CompareImages();
}
-#if PERSPEX_SKIA
+#if PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -156,7 +156,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
CompareImages();
}
-#if PERSPEX_SKIA
+#if PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -207,7 +207,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
CompareImages();
}
-#if PERSPEX_SKIA
+#if PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -235,7 +235,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
CompareImages();
}
-#if PERSPEX_SKIA
+#if PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
diff --git a/tests/Perspex.RenderTests/Media/LinearGradientBrushTests.cs b/tests/Perspex.RenderTests/Media/LinearGradientBrushTests.cs
index 14060ebcc2..1ad308f602 100644
--- a/tests/Perspex.RenderTests/Media/LinearGradientBrushTests.cs
+++ b/tests/Perspex.RenderTests/Media/LinearGradientBrushTests.cs
@@ -24,7 +24,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
{
}
-#if PERSPEX_SKIA
+#if PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -55,7 +55,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
CompareImages();
}
-#if PERSPEX_SKIA
+#if PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
diff --git a/tests/Perspex.RenderTests/Media/VisualBrushTests.cs b/tests/Perspex.RenderTests/Media/VisualBrushTests.cs
index 63b7013c58..acbc42146c 100644
--- a/tests/Perspex.RenderTests/Media/VisualBrushTests.cs
+++ b/tests/Perspex.RenderTests/Media/VisualBrushTests.cs
@@ -87,7 +87,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
#if PERSPEX_CAIRO
[Fact(Skip = "Font scaling currently broken on cairo")]
-#elif PERSPEX_SKIA
+#elif PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -143,7 +143,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
#if PERSPEX_CAIRO
[Fact(Skip = "Font scaling currently broken on cairo")]
-#elif PERSPEX_SKIA
+#elif PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -172,7 +172,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
#if PERSPEX_CAIRO
[Fact(Skip = "Font scaling currently broken on cairo")]
-#elif PERSPEX_SKIA
+#elif PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -201,7 +201,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
#if PERSPEX_CAIRO
[Fact(Skip = "Font scaling currently broken on cairo")]
-#elif PERSPEX_SKIA
+#elif PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -254,7 +254,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
#if PERSPEX_CAIRO
[Fact(Skip = "Font scaling currently broken on cairo")]
-#elif PERSPEX_SKIA
+#elif PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -282,7 +282,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
CompareImages();
}
-#if PERSPEX_SKIA
+#if PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -311,11 +311,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
CompareImages();
}
-#if PERSPEX_SKIA
- [Fact(Skip = "FIXME")]
-#else
[Fact]
-#endif
public void VisualBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest()
{
Decorator target = new Decorator
@@ -342,7 +338,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
#if PERSPEX_CAIRO
[Fact(Skip = "TileMode.FlipX not yet supported on cairo")]
-#elif PERSPEX_SKIA
+#elif PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -372,7 +368,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
#if PERSPEX_CAIRO
[Fact(Skip = "TileMode.FlipY not yet supported on cairo")]
-#elif PERSPEX_SKIA
+#elif PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -402,7 +398,7 @@ namespace Perspex.Direct2D1.RenderTests.Media
#if PERSPEX_CAIRO
[Fact(Skip = "Font scaling currently broken on cairo")]
-#elif PERSPEX_SKIA
+#elif PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
diff --git a/tests/Perspex.RenderTests/Perspex.Skia.RenderTests.csproj b/tests/Perspex.RenderTests/Perspex.Skia.RenderTests.csproj
index d358a6ccb5..1310c7daea 100644
--- a/tests/Perspex.RenderTests/Perspex.Skia.RenderTests.csproj
+++ b/tests/Perspex.RenderTests/Perspex.Skia.RenderTests.csproj
@@ -20,7 +20,7 @@
full
false
bin\Debug\
- TRACE;DEBUG;PERSPEX_SKIA
+ TRACE;DEBUG;PERSPEX_SKIA;PERSPEX_SKIA_SKIP_FAIL
prompt
4
diff --git a/tests/Perspex.RenderTests/Shapes/PathTests.cs b/tests/Perspex.RenderTests/Shapes/PathTests.cs
index 3d52b87ac2..045df0a1dd 100644
--- a/tests/Perspex.RenderTests/Shapes/PathTests.cs
+++ b/tests/Perspex.RenderTests/Shapes/PathTests.cs
@@ -45,8 +45,11 @@ namespace Perspex.Direct2D1.RenderTests.Shapes
RenderToFile(target);
CompareImages();
}
-
+#if PERSPEX_SKIA_SKIP_FAIL
+ [Fact(Skip = "Waiting for https://github.com/mono/SkiaSharp/pull/63")]
+#else
[Fact]
+#endif
public void Path_Tick_Scaled()
{
Decorator target = new Decorator
@@ -69,7 +72,11 @@ namespace Perspex.Direct2D1.RenderTests.Shapes
CompareImages();
}
+#if PERSPEX_SKIA_SKIP_FAIL
+ [Fact(Skip = "Waiting for https://github.com/mono/SkiaSharp/pull/63")]
+#else
[Fact]
+#endif
public void Path_Tick_Scaled_Stroke_8px()
{
Decorator target = new Decorator
@@ -122,7 +129,7 @@ namespace Perspex.Direct2D1.RenderTests.Shapes
#if PERSPEX_CAIRO
[Fact(Skip = "Path with StrokeDashCap, StrokeStartLineCap, StrokeEndLineCap rendering is not implemented in Cairo yet")]
-#elif PERSPEX_SKIA
+#elif PERSPEX_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
diff --git a/tests/Perspex.RenderTests/Shapes/PolygonTests.cs b/tests/Perspex.RenderTests/Shapes/PolygonTests.cs
index 94f6bf584a..712c7e91fa 100644
--- a/tests/Perspex.RenderTests/Shapes/PolygonTests.cs
+++ b/tests/Perspex.RenderTests/Shapes/PolygonTests.cs
@@ -23,6 +23,8 @@ namespace Perspex.Direct2D1.RenderTests.Shapes
#if PERSPEX_CAIRO
[Fact(Skip = "Caused by cairo bug")]
+#elif PERSPEX_SKIA_SKIP_FAIL
+ [Fact(Skip = "Waiting for https://github.com/mono/SkiaSharp/pull/63")]
#else
[Fact]
#endif
@@ -49,6 +51,8 @@ namespace Perspex.Direct2D1.RenderTests.Shapes
#if PERSPEX_CAIRO
[Fact(Skip = "Caused by cairo bug")]
+#elif PERSPEX_SKIA_SKIP_FAIL
+ [Fact(Skip = "Waiting for https://github.com/mono/SkiaSharp/pull/63")]
#else
[Fact]
#endif
diff --git a/tests/Perspex.RenderTests/Shapes/PolylineTests.cs b/tests/Perspex.RenderTests/Shapes/PolylineTests.cs
index ca91be8e4b..bb21a3c7b7 100644
--- a/tests/Perspex.RenderTests/Shapes/PolylineTests.cs
+++ b/tests/Perspex.RenderTests/Shapes/PolylineTests.cs
@@ -23,6 +23,8 @@ namespace Perspex.Direct2D1.RenderTests.Shapes
#if PERSPEX_CAIRO
[Fact(Skip = "Caused by cairo bug")]
+#elif PERSPEX_SKIA_SKIP_FAIL
+ [Fact(Skip = "Waiting for https://github.com/mono/SkiaSharp/pull/63")]
#else
[Fact]
#endif
@@ -51,6 +53,8 @@ namespace Perspex.Direct2D1.RenderTests.Shapes
#if PERSPEX_CAIRO
[Fact(Skip = "Caused by cairo bug")]
+#elif PERSPEX_SKIA_SKIP_FAIL
+ [Fact(Skip = "Waiting for https://github.com/mono/SkiaSharp/pull/63")]
#else
[Fact]
#endif