Browse Source

Added unit tests for skia backend

Nikita Tsukanov 10 years ago
parent
commit
d820dc1068
70 changed files with 194 additions and 1 deletions
  1. 7 0
      Perspex.sln
  2. BIN
      tests/Perspex.RenderTests/Controls/BorderTests.cs
  3. BIN
      tests/Perspex.RenderTests/Controls/ImageTests.cs
  4. 22 1
      tests/Perspex.RenderTests/Media/ImageBrushTests.cs
  5. 10 0
      tests/Perspex.RenderTests/Media/LinearGradientBrushTests.cs
  6. 26 0
      tests/Perspex.RenderTests/Media/VisualBrushTests.cs
  7. 129 0
      tests/Perspex.RenderTests/Perspex.Skia.RenderTests.csproj
  8. BIN
      tests/Perspex.RenderTests/Shapes/EllipseTests.cs
  9. BIN
      tests/Perspex.RenderTests/Shapes/PathTests.cs
  10. BIN
      tests/Perspex.RenderTests/Shapes/RectangleTests.cs
  11. BIN
      tests/Perspex.RenderTests/TestBase.cs
  12. BIN
      tests/TestFiles/Skia/Controls/Border/Border_1px_Border.expected.png
  13. BIN
      tests/TestFiles/Skia/Controls/Border/Border_2px_Border.expected.png
  14. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Bottom_Aligns_Content.expected.png
  15. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Brush_Offsets_Content.expected.png
  16. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Centers_Content_Horizontally.expected.png
  17. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Centers_Content_Vertically.expected.png
  18. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Fill.expected.png
  19. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Left_Aligns_Content.expected.png
  20. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Margin_Offsets_Content.expected.png
  21. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Nested_Rotate.expected.png
  22. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Padding_Offsets_Content.expected.png
  23. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Right_Aligns_Content.expected.png
  24. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Stretches_Content_Horizontally.expected.png
  25. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Stretches_Content_Vertically.expected.png
  26. BIN
      tests/TestFiles/Skia/Controls/Border/Border_Top_Aligns_Content.expected.png
  27. BIN
      tests/TestFiles/Skia/Controls/Image/Image_Stretch_Fill.expected.png
  28. BIN
      tests/TestFiles/Skia/Controls/Image/Image_Stretch_None.expected.png
  29. BIN
      tests/TestFiles/Skia/Controls/Image/Image_Stretch_Uniform.expected.png
  30. BIN
      tests/TestFiles/Skia/Controls/Image/Image_Stretch_UniformToFill.expected.png
  31. BIN
      tests/TestFiles/Skia/Controls/Image/test.png
  32. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_Fill_NoTile.expected.png
  33. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_FlipXY_TopLeftDest.expected.png
  34. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_FlipX_TopLeftDest.expected.png
  35. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_FlipY_TopLeftDest.expected.png
  36. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png
  37. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_Center.expected.png
  38. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png
  39. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png
  40. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png
  41. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png
  42. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png
  43. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_UniformToFill_NoTile.expected.png
  44. BIN
      tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_Uniform_NoTile.expected.png
  45. BIN
      tests/TestFiles/Skia/Media/ImageBrush/github_icon.png
  46. BIN
      tests/TestFiles/Skia/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Horizontal_Fill.expected.png
  47. BIN
      tests/TestFiles/Skia/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Vertical_Fill.expected.png
  48. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png
  49. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_FlipXY_TopLeftDest.expected.png
  50. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_FlipX_TopLeftDest.expected.png
  51. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_FlipY_TopLeftDest.expected.png
  52. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png
  53. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png
  54. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png
  55. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png
  56. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png
  57. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png
  58. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png
  59. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_UniformToFill_NoTile.expected.png
  60. BIN
      tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_Uniform_NoTile.expected.png
  61. BIN
      tests/TestFiles/Skia/Media/VisualBrush/github_icon.png
  62. BIN
      tests/TestFiles/Skia/Shapes/Ellipse/Circle_1px_Stroke.expected.png
  63. BIN
      tests/TestFiles/Skia/Shapes/Path/Path_100px_Triangle_Centered.expected.png
  64. BIN
      tests/TestFiles/Skia/Shapes/Path/Path_Expander_With_Border.expected.png
  65. BIN
      tests/TestFiles/Skia/Shapes/Path/Path_Tick_Scaled.expected.png
  66. BIN
      tests/TestFiles/Skia/Shapes/Path/Path_Tick_Scaled_Stroke_8px.expected.png
  67. BIN
      tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_1px_Stroke.expected.png
  68. BIN
      tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_2px_Stroke.expected.png
  69. BIN
      tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_Stroke_Fill.expected.png
  70. BIN
      tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_Stroke_Fill_ClipToBounds.expected.png

+ 7 - 0
Perspex.sln

@@ -112,6 +112,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Perspex.Skia", "src\Skia\Pe
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Perspex.Skia.Desktop", "src\Skia\Perspex.Skia.Desktop\Perspex.Skia.Desktop.csproj", "{925DD807-B651-475F-9F7C-CBEB974CE43D}"
 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
@@ -278,6 +280,10 @@ Global
 		{925DD807-B651-475F-9F7C-CBEB974CE43D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{925DD807-B651-475F-9F7C-CBEB974CE43D}.Release|Any CPU.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}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D35A9F3D-8BB0-496E-BF72-444038A7DEBB}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -310,5 +316,6 @@ Global
 		{3C4C0CB4-0C0F-4450-A37B-148C84FF905F} = {A689DEF5-D50F-4975-8B72-124C9EB54066}
 		{2F59F3D0-748D-4652-B01E-E0D954756308} = {3743B0F2-CC41-4F14-A8C8-267F579BF91E}
 		{925DD807-B651-475F-9F7C-CBEB974CE43D} = {3743B0F2-CC41-4F14-A8C8-267F579BF91E}
+		{D35A9F3D-8BB0-496E-BF72-444038A7DEBB} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
 	EndGlobalSection
 EndGlobal

BIN
tests/Perspex.RenderTests/Controls/BorderTests.cs


BIN
tests/Perspex.RenderTests/Controls/ImageTests.cs


+ 22 - 1
tests/Perspex.RenderTests/Media/ImageBrushTests.cs

@@ -10,6 +10,8 @@ using Xunit;
 
 #if PERSPEX_CAIRO
 namespace Perspex.Cairo.RenderTests.Media
+#elif PERSPEX_SKIA
+namespace Perspex.Skia.RenderTests
 #else
 namespace Perspex.Direct2D1.RenderTests.Media
 #endif
@@ -100,8 +102,11 @@ namespace Perspex.Direct2D1.RenderTests.Media
             RenderToFile(target);
             CompareImages();
         }
-
+#if PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
+#else
         [Fact]
+#endif
         public void ImageBrush_Fill_NoTile()
         {
             Decorator target = new Decorator
@@ -124,7 +129,11 @@ namespace Perspex.Direct2D1.RenderTests.Media
             CompareImages();
         }
 
+#if PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
+#else
         [Fact]
+#endif
         public void ImageBrush_Uniform_NoTile()
         {
             Decorator target = new Decorator
@@ -147,7 +156,11 @@ namespace Perspex.Direct2D1.RenderTests.Media
             CompareImages();
         }
 
+#if PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
+#else
         [Fact]
+#endif
         public void ImageBrush_UniformToFill_NoTile()
         {
             Decorator target = new Decorator
@@ -194,7 +207,11 @@ namespace Perspex.Direct2D1.RenderTests.Media
             CompareImages();
         }
 
+#if PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
+#else
         [Fact]
+#endif
         public void ImageBrush_NoStretch_NoTile_BottomRightQuarterDest()
         {
             Decorator target = new Decorator
@@ -218,7 +235,11 @@ namespace Perspex.Direct2D1.RenderTests.Media
             CompareImages();
         }
 
+#if PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
+#else
         [Fact]
+#endif
         public void ImageBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest()
         {
             Decorator target = new Decorator

+ 10 - 0
tests/Perspex.RenderTests/Media/LinearGradientBrushTests.cs

@@ -12,6 +12,8 @@ using Xunit;
 
 #if PERSPEX_CAIRO
 namespace Perspex.Cairo.RenderTests.Media
+#elif PERSPEX_SKIA
+namespace Perspex.Skia.RenderTests
 #else
 namespace Perspex.Direct2D1.RenderTests.Media
 #endif
@@ -22,7 +24,11 @@ namespace Perspex.Direct2D1.RenderTests.Media
         {
         }
 
+#if PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
+#else
         [Fact]
+#endif
         public void LinearGradientBrush_RedBlue_Horizontal_Fill()
         {
             Decorator target = new Decorator
@@ -49,7 +55,11 @@ namespace Perspex.Direct2D1.RenderTests.Media
             CompareImages();
         }
 
+#if PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
+#else
         [Fact]
+#endif
         public void LinearGradientBrush_RedBlue_Vertical_Fill()
         {
             Decorator target = new Decorator

+ 26 - 0
tests/Perspex.RenderTests/Media/VisualBrushTests.cs

@@ -10,6 +10,8 @@ using Xunit;
 
 #if PERSPEX_CAIRO
 namespace Perspex.Cairo.RenderTests.Media
+#elif PERSPEX_SKIA
+namespace Perspex.Skia.RenderTests
 #else
 namespace Perspex.Direct2D1.RenderTests.Media
 #endif
@@ -85,6 +87,8 @@ namespace Perspex.Direct2D1.RenderTests.Media
 
 #if PERSPEX_CAIRO
         [Fact(Skip = "Font scaling currently broken on cairo")]
+#elif PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
 #else
         [Fact]
 #endif
@@ -139,6 +143,8 @@ namespace Perspex.Direct2D1.RenderTests.Media
 
 #if PERSPEX_CAIRO
         [Fact(Skip = "Font scaling currently broken on cairo")]
+#elif PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
 #else
         [Fact]
 #endif
@@ -166,6 +172,8 @@ namespace Perspex.Direct2D1.RenderTests.Media
 
 #if PERSPEX_CAIRO
         [Fact(Skip = "Font scaling currently broken on cairo")]
+#elif PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
 #else
         [Fact]
 #endif
@@ -193,6 +201,8 @@ namespace Perspex.Direct2D1.RenderTests.Media
 
 #if PERSPEX_CAIRO
         [Fact(Skip = "Font scaling currently broken on cairo")]
+#elif PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
 #else
         [Fact]
 #endif
@@ -244,6 +254,8 @@ namespace Perspex.Direct2D1.RenderTests.Media
 
 #if PERSPEX_CAIRO
         [Fact(Skip = "Font scaling currently broken on cairo")]
+#elif PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
 #else
         [Fact]
 #endif
@@ -270,7 +282,11 @@ namespace Perspex.Direct2D1.RenderTests.Media
             CompareImages();
         }
 
+#if PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
+#else
         [Fact]
+#endif
         public void VisualBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest()
         {
             Decorator target = new Decorator
@@ -295,7 +311,11 @@ 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
@@ -322,6 +342,8 @@ namespace Perspex.Direct2D1.RenderTests.Media
 
 #if PERSPEX_CAIRO
         [Fact(Skip = "TileMode.FlipX not yet supported on cairo")]
+#elif PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
 #else
         [Fact]
 #endif
@@ -350,6 +372,8 @@ namespace Perspex.Direct2D1.RenderTests.Media
 
 #if PERSPEX_CAIRO
         [Fact(Skip = "TileMode.FlipY not yet supported on cairo")]
+#elif PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
 #else
         [Fact]
 #endif
@@ -378,6 +402,8 @@ namespace Perspex.Direct2D1.RenderTests.Media
 
 #if PERSPEX_CAIRO
         [Fact(Skip = "Font scaling currently broken on cairo")]
+#elif PERSPEX_SKIA
+        [Fact(Skip = "FIXME")]
 #else
         [Fact]
 #endif

+ 129 - 0
tests/Perspex.RenderTests/Perspex.Skia.RenderTests.csproj

@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{D35A9F3D-8BB0-496E-BF72-444038A7DEBB}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Perspex.Skia.RenderTests</RootNamespace>
+    <AssemblyName>Perspex.Skia.RenderTests</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>TRACE;DEBUG;PERSPEX_SKIA</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE;PERSPEX_SKIA</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xml" />
+    <Reference Include="Magick.NET-AnyCPU">
+      <HintPath>..\..\packages\Magick.NET-Q16-AnyCPU.7.0.0.0018\lib\net40-client\Magick.NET-AnyCPU.dll</HintPath>
+    </Reference>
+    <Reference Include="Magick.NET.Core">
+      <HintPath>..\..\packages\Magick.NET-Q16-AnyCPU.7.0.0.0018\lib\net40-client\Magick.NET.Core.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="Splat, Version=1.6.2.0, Culture=neutral, PublicKeyToken=null">
+      <HintPath>..\..\packages\Splat.1.6.2\lib\Net45\Splat.dll</HintPath>
+    </Reference>
+    <Reference Include="xunit.abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c">
+      <HintPath>..\..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll</HintPath>
+    </Reference>
+    <Reference Include="xunit.assert, Version=2.0.0.2929, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c">
+      <HintPath>..\..\packages\xunit.assert.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.assert.dll</HintPath>
+    </Reference>
+    <Reference Include="xunit.core, Version=2.0.0.2929, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c">
+      <HintPath>..\..\packages\xunit.extensibility.core.2.0.0\lib\portable-net45+win+wpa81+wp80+monotouch+monoandroid+Xamarin.iOS\xunit.core.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Properties\" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Controls\BorderTests.cs" />
+    <Compile Include="Controls\ImageTests.cs" />
+    <Compile Include="Media\ImageBrushTests.cs" />
+    <Compile Include="Media\LinearGradientBrushTests.cs" />
+    <Compile Include="Media\VisualBrushTests.cs" />
+    <Compile Include="Shapes\EllipseTests.cs" />
+    <Compile Include="Shapes\PathTests.cs" />
+    <Compile Include="Shapes\RectangleTests.cs" />
+    <Compile Include="TestBase.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\src\Perspex.Animation\Perspex.Animation.csproj">
+      <Project>{d211e587-d8bc-45b9-95a4-f297c8fa5200}</Project>
+      <Name>Perspex.Animation</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\src\Perspex.Application\Perspex.Application.csproj">
+      <Project>{799a7bb5-3c2c-48b6-85a7-406a12c420da}</Project>
+      <Name>Perspex.Application</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\src\Perspex.Base\Perspex.Base.csproj">
+      <Project>{b09b78d8-9b26-48b0-9149-d64a2f120f3f}</Project>
+      <Name>Perspex.Base</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\src\Perspex.Controls\Perspex.Controls.csproj">
+      <Project>{d2221c82-4a25-4583-9b43-d791e3f6820c}</Project>
+      <Name>Perspex.Controls</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\src\Perspex.Input\Perspex.Input.csproj">
+      <Project>{62024b2d-53eb-4638-b26b-85eeaa54866e}</Project>
+      <Name>Perspex.Input</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\src\Perspex.Interactivity\Perspex.Interactivity.csproj">
+      <Project>{6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b}</Project>
+      <Name>Perspex.Interactivity</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\src\Perspex.Layout\Perspex.Layout.csproj">
+      <Project>{42472427-4774-4c81-8aff-9f27b8e31721}</Project>
+      <Name>Perspex.Layout</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\src\Perspex.SceneGraph\Perspex.SceneGraph.csproj">
+      <Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
+      <Name>Perspex.SceneGraph</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\src\Perspex.Styling\Perspex.Styling.csproj">
+      <Project>{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}</Project>
+      <Name>Perspex.Styling</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\..\src\Skia\Perspex.Skia.Desktop\Perspex.Skia.Desktop.csproj">
+      <Project>{925dd807-b651-475f-9f7c-cbeb974ce43d}</Project>
+      <Name>Perspex.Skia.Desktop</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

BIN
tests/Perspex.RenderTests/Shapes/EllipseTests.cs


BIN
tests/Perspex.RenderTests/Shapes/PathTests.cs


BIN
tests/Perspex.RenderTests/Shapes/RectangleTests.cs


BIN
tests/Perspex.RenderTests/TestBase.cs


BIN
tests/TestFiles/Skia/Controls/Border/Border_1px_Border.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_2px_Border.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Bottom_Aligns_Content.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Brush_Offsets_Content.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Centers_Content_Horizontally.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Centers_Content_Vertically.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Fill.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Left_Aligns_Content.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Margin_Offsets_Content.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Nested_Rotate.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Padding_Offsets_Content.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Right_Aligns_Content.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Stretches_Content_Horizontally.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Stretches_Content_Vertically.expected.png


BIN
tests/TestFiles/Skia/Controls/Border/Border_Top_Aligns_Content.expected.png


BIN
tests/TestFiles/Skia/Controls/Image/Image_Stretch_Fill.expected.png


BIN
tests/TestFiles/Skia/Controls/Image/Image_Stretch_None.expected.png


BIN
tests/TestFiles/Skia/Controls/Image/Image_Stretch_Uniform.expected.png


BIN
tests/TestFiles/Skia/Controls/Image/Image_Stretch_UniformToFill.expected.png


BIN
tests/TestFiles/Skia/Controls/Image/test.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_Fill_NoTile.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_FlipXY_TopLeftDest.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_FlipX_TopLeftDest.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_FlipY_TopLeftDest.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_Center.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_UniformToFill_NoTile.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_Uniform_NoTile.expected.png


BIN
tests/TestFiles/Skia/Media/ImageBrush/github_icon.png


BIN
tests/TestFiles/Skia/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Horizontal_Fill.expected.png


BIN
tests/TestFiles/Skia/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Vertical_Fill.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_FlipXY_TopLeftDest.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_FlipX_TopLeftDest.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_FlipY_TopLeftDest.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_UniformToFill_NoTile.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/VisualBrush_Uniform_NoTile.expected.png


BIN
tests/TestFiles/Skia/Media/VisualBrush/github_icon.png


BIN
tests/TestFiles/Skia/Shapes/Ellipse/Circle_1px_Stroke.expected.png


BIN
tests/TestFiles/Skia/Shapes/Path/Path_100px_Triangle_Centered.expected.png


BIN
tests/TestFiles/Skia/Shapes/Path/Path_Expander_With_Border.expected.png


BIN
tests/TestFiles/Skia/Shapes/Path/Path_Tick_Scaled.expected.png


BIN
tests/TestFiles/Skia/Shapes/Path/Path_Tick_Scaled_Stroke_8px.expected.png


BIN
tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_1px_Stroke.expected.png


BIN
tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_2px_Stroke.expected.png


BIN
tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_Stroke_Fill.expected.png


BIN
tests/TestFiles/Skia/Shapes/Rectangle/Rectangle_Stroke_Fill_ClipToBounds.expected.png