diff --git a/Avalonia.sln b/Avalonia.sln
index 56f33c2a6b..d17bb2ed97 100644
--- a/Avalonia.sln
+++ b/Avalonia.sln
@@ -50,8 +50,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Input.UnitTests",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Direct2D1.UnitTests", "tests\Avalonia.Direct2D1.UnitTests\Avalonia.Direct2D1.UnitTests.csproj", "{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Cairo.RenderTests", "tests\Avalonia.RenderTests\Avalonia.Cairo.RenderTests.csproj", "{E106CF37-4066-4615-B684-172A6D30B058}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup.Xaml.UnitTests", "tests\Avalonia.Markup.Xaml.UnitTests\Avalonia.Markup.Xaml.UnitTests.csproj", "{99135EAB-653D-47E4-A378-C96E1278CA44}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Markup", "Markup", "{8B6A8209-894F-4BA1-B880-965FD453982C}"
@@ -67,10 +65,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{A689DE
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Gtk", "Gtk", "{B9894058-278A-46B5-B6ED-AD613FCC03B3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Gtk", "src\Gtk\Avalonia.Gtk\Avalonia.Gtk.csproj", "{54F237D5-A70A-4752-9656-0C70B1A7B047}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Cairo", "src\Gtk\Avalonia.Cairo\Avalonia.Cairo.csproj", "{FB05AC90-89BA-4F2F-A924-F37875FB547C}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.ReactiveUI", "src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj", "{6417B24E-49C2-4985-8DB2-3AB9D898EC91}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.HtmlRenderer", "src\Avalonia.HtmlRenderer\Avalonia.HtmlRenderer.csproj", "{5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}"
@@ -127,8 +121,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Interop", "Interop", "{A0CC
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsInteropTest", "samples\interop\WindowsInteropTest\WindowsInteropTest.csproj", "{C7A69145-60B6-4882-97D6-A3921DD43978}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GtkInteropDemo", "samples\interop\GtkInteropDemo\GtkInteropDemo.csproj", "{BD7F352C-6DC1-4740-BAF2-2D34A038728C}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.DotNetFrameworkRuntime", "src\Avalonia.DotNetFrameworkRuntime\Avalonia.DotNetFrameworkRuntime.csproj", "{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RenderTest", "samples\RenderTest\RenderTest.csproj", "{F1FDC5B0-4654-416F-AE69-E3E9BBD87801}"
@@ -204,9 +196,7 @@ Global
src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{811a76cf-1cf6-440f-963b-bbe31bd72a82}*SharedItemsImports = 4
src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{9defc6b7-845b-4d8f-afc0-d32bf0032b8c}*SharedItemsImports = 13
tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{dabfd304-d6a4-4752-8123-c2ccf7ac7831}*SharedItemsImports = 4
- tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{e106cf37-4066-4615-b684-172a6d30b058}*SharedItemsImports = 4
src\Shared\PlatformSupport\PlatformSupport.projitems*{e4d9629c-f168-4224-3f51-a5e482ffbc42}*SharedItemsImports = 13
- src\Shared\RenderHelpers\RenderHelpers.projitems*{fb05ac90-89ba-4f2f-a924-f37875fb547c}*SharedItemsImports = 4
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
@@ -1053,44 +1043,6 @@ Global
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|Mono.ActiveCfg = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|x86.ActiveCfg = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Release|x86.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhone.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.AppStore|x86.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhone.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|Mono.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Debug|x86.Build.0 = Debug|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|Any CPU.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhone.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhone.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|Mono.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|Mono.Build.0 = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|x86.ActiveCfg = Release|Any CPU
- {E106CF37-4066-4615-B684-172A6D30B058}.Release|x86.Build.0 = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{99135EAB-653D-47E4-A378-C96E1278CA44}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -1167,82 +1119,6 @@ Global
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|Mono.Build.0 = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|x86.ActiveCfg = Release|Any CPU
{3E53A01A-B331-47F3-B828-4A5717E77A24}.Release|x86.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhone.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.AppStore|x86.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhone.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|Mono.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|x86.ActiveCfg = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Debug|x86.Build.0 = Debug|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Any CPU.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhone.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhone.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Mono.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|Mono.Build.0 = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|x86.ActiveCfg = Release|Any CPU
- {54F237D5-A70A-4752-9656-0C70B1A7B047}.Release|x86.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|Mono.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhone.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|Mono.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.AppStore|x86.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|Mono.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Debug|x86.Build.0 = Debug|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Any CPU.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhone.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Mono.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|Mono.Build.0 = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|x86.ActiveCfg = Release|Any CPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}.Release|x86.Build.0 = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -1985,46 +1861,6 @@ Global
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|Mono.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|x86.ActiveCfg = Release|Any CPU
{C7A69145-60B6-4882-97D6-A3921DD43978}.Release|x86.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Mono.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|Mono.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Ad-Hoc|x86.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhone.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Mono.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|Mono.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|x86.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.AppStore|x86.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhone.Build.0 = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Mono.ActiveCfg = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|Mono.Build.0 = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Debug|x86.Build.0 = Debug|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Any CPU.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhone.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhone.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Mono.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|Mono.Build.0 = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|x86.ActiveCfg = Release|Any CPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}.Release|x86.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -2576,11 +2412,8 @@ Global
{DABFD304-D6A4-4752-8123-C2CCF7AC7831} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{AC18926A-E784-40FE-B09D-BB0FE2B599F0} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {E106CF37-4066-4615-B684-172A6D30B058} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{99135EAB-653D-47E4-A378-C96E1278CA44} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{3E53A01A-B331-47F3-B828-4A5717E77A24} = {8B6A8209-894F-4BA1-B880-965FD453982C}
- {54F237D5-A70A-4752-9656-0C70B1A7B047} = {B9894058-278A-46B5-B6ED-AD613FCC03B3}
- {FB05AC90-89BA-4F2F-A924-F37875FB547C} = {B9894058-278A-46B5-B6ED-AD613FCC03B3}
{E4D9629C-F168-4224-3F51-A5E482FFBC42} = {A689DEF5-D50F-4975-8B72-124C9EB54066}
{6417E941-21BC-467B-A771-0DE389353CE6} = {8B6A8209-894F-4BA1-B880-965FD453982C}
{8EF392D5-1416-45AA-9956-7CBBC3229E8A} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
@@ -2602,7 +2435,6 @@ Global
{FBCAF3D0-2808-4934-8E96-3F607594517B} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{A0CC0258-D18C-4AB3-854F-7101680FC3F9} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{C7A69145-60B6-4882-97D6-A3921DD43978} = {A0CC0258-D18C-4AB3-854F-7101680FC3F9}
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C} = {A0CC0258-D18C-4AB3-854F-7101680FC3F9}
{F1FDC5B0-4654-416F-AE69-E3E9BBD87801} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{29132311-1848-4FD6-AE0C-4FF841151BD3} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{9DEFC6B7-845B-4D8F-AFC0-D32BF0032B8C} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
diff --git a/packages.cake b/packages.cake
index 7ada627200..a22ff65e72 100644
--- a/packages.cake
+++ b/packages.cake
@@ -375,23 +375,6 @@ public class Packages
OutputDirectory = parameters.NugetRoot
},
///////////////////////////////////////////////////////////////////////////////
- // Avalonia.Gtk
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.Gtk",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.Gtk.dll", Target = "lib/net45" }
- },
- BasePath = context.Directory("./src/Gtk/Avalonia.Gtk/bin/" + parameters.DirSuffix),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
// Avalonia.Gtk3
///////////////////////////////////////////////////////////////////////////////
new NuGetPackSettings()
@@ -409,23 +392,6 @@ public class Packages
OutputDirectory = parameters.NugetRoot
},
///////////////////////////////////////////////////////////////////////////////
- // Avalonia.Cairo
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.Cairo",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.Cairo.dll", Target = "lib/net45" }
- },
- BasePath = context.Directory("./src/Gtk/Avalonia.Cairo/bin/" + parameters.DirSuffix),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
// Avalonia.Skia
///////////////////////////////////////////////////////////////////////////////
new NuGetPackSettings()
@@ -471,19 +437,11 @@ public class Packages
Id = "Avalonia.Desktop",
Dependencies = new []
{
- //Full .NET
- new NuSpecDependency() { Id = "Avalonia.Direct2D1", TargetFramework="net45", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Gtk", TargetFramework="net45", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Cairo", TargetFramework="net45", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Win32", TargetFramework="net45", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Skia", TargetFramework="net45", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Gtk3", TargetFramework="net45", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.MonoMac", TargetFramework="net45", Version = parameters.Version },
- //.NET Core
- new NuSpecDependency() { Id = "Avalonia.Win32", TargetFramework="netcoreapp2.0", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Skia", TargetFramework="netcoreapp2.0", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.Gtk3", TargetFramework="netcoreapp2.0", Version = parameters.Version },
- new NuSpecDependency() { Id = "Avalonia.MonoMac", TargetFramework="netcoreapp2.0", Version = parameters.Version }
+ new NuSpecDependency() { Id = "Avalonia.Direct2D1", Version = parameters.Version },
+ new NuSpecDependency() { Id = "Avalonia.Win32", Version = parameters.Version },
+ new NuSpecDependency() { Id = "Avalonia.Skia", Version = parameters.Version },
+ new NuSpecDependency() { Id = "Avalonia.Gtk3", Version = parameters.Version },
+ new NuSpecDependency() { Id = "Avalonia.MonoMac", Version = parameters.Version }
},
Files = new NuSpecContent[]
{
diff --git a/samples/BindingTest/BindingTest.csproj b/samples/BindingTest/BindingTest.csproj
index b4dd17194b..d7d349fbdf 100644
--- a/samples/BindingTest/BindingTest.csproj
+++ b/samples/BindingTest/BindingTest.csproj
@@ -148,14 +148,6 @@
{811a76cf-1cf6-440f-963b-bbe31bd72a82}
Avalonia.Win32
-
- {54F237D5-A70A-4752-9656-0C70B1A7B047}
- Avalonia.Gtk
-
-
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}
- Avalonia.Cairo
-
diff --git a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj
index 91d24f9152..3f4679086e 100644
--- a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj
+++ b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj
@@ -63,18 +63,10 @@
{4A1ABB09-9047-4BD5-A4AD-A055E52C5EE0}
Avalonia.DotNetFrameworkRuntime
-
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}
- Avalonia.Cairo
-
{bb1f7bb5-6ad4-4776-94d9-c09d0a972658}
Avalonia.Gtk3
-
- {54F237D5-A70A-4752-9656-0C70B1A7B047}
- Avalonia.Gtk
-
{3E53A01A-B331-47F3-B828-4A5717E77A24}
Avalonia.Markup.Xaml
diff --git a/samples/ControlCatalog/Program.cs b/samples/ControlCatalog/Program.cs
deleted file mode 100644
index f975b91834..0000000000
--- a/samples/ControlCatalog/Program.cs
+++ /dev/null
@@ -1,126 +0,0 @@
-using Avalonia.Logging.Serilog;
-using Serilog;
-using System;
-using System.Linq;
-using Avalonia;
-
-namespace ControlCatalog
-{
- internal class Program
- {
- static void Main(string[] args)
- {
- InitializeLogging();
-
- new App()
- .ConfigureRenderSystem(args)
- .LoadFromXaml()
- .RunWithMainWindow();
- }
-
- // This will be made into a runtime configuration extension soon!
- private static void InitializeLogging()
- {
-#if DEBUG
- SerilogLogger.Initialize(new LoggerConfiguration()
- .MinimumLevel.Warning()
- .WriteTo.Trace(outputTemplate: "{Area}: {Message}")
- .CreateLogger());
-#endif
- }
-
- }
-
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // Experimental: Would like to move this into a shared location once I figure out the best place for it
- // considering all common libraries are PCL and do not have access to Environment.OSVersion.Platform
- // nor do they have access to the platform specific render/subsystem extensions.
- //
- // Perhaps via DI we register each system with a priority/rank
- //
- public static class RenderSystemExtensions
- {
- [Flags]
- enum RenderSystem
- {
- None = 0,
- GTK = 1,
- Skia = 2,
- Direct2D = 4
- };
-
- ///
- /// Default (Optimal) render system for a particular platform
- ///
- ///
- private static RenderSystem DefaultRenderSystem()
- {
- switch (Environment.OSVersion.Platform)
- {
- case PlatformID.MacOSX:
- return RenderSystem.GTK;
-
- case PlatformID.Unix:
- return RenderSystem.GTK;
-
- case PlatformID.Win32Windows:
- return RenderSystem.Direct2D;
- }
-
- return RenderSystem.None;
- }
-
- ///
- /// Returns an array of avalidable rendering systems in priority order
- ///
- ///
- private static RenderSystem[] AvailableRenderSystems()
- {
- switch (Environment.OSVersion.Platform)
- {
- case PlatformID.MacOSX:
- return new RenderSystem[] { RenderSystem.GTK, RenderSystem.Skia };
-
- case PlatformID.Unix:
- return new RenderSystem[] { RenderSystem.GTK, RenderSystem.Skia };
-
- case PlatformID.Win32Windows:
- return new RenderSystem[] { RenderSystem.Direct2D, RenderSystem.Skia, RenderSystem.GTK };
- }
-
- return new RenderSystem[0];
- }
-
- ///
- /// Selects the optimal render system for desktop platforms. Supports cmd line overrides
- ///
- ///
- ///
- public static TApp ConfigureRenderSystem(this TApp app, string[] args) where TApp : Application
- {
- // So this all works great under Windows where it can support
- // ALL configurations. But on OSX/Unix we cannot use Direct2D
- //
- if (args.Contains("--gtk") || DefaultRenderSystem() == RenderSystem.GTK)
- {
- app.UseGtk();
- app.UseCairo();
- }
- else
- {
- app.UseWin32();
-
- if (args.Contains("--skia") || DefaultRenderSystem() == RenderSystem.Skia)
- {
- app.UseSkia();
- }
- else
- {
- app.UseDirect2D();
- }
- }
-
- return app;
- }
- }
-}
diff --git a/samples/RenderTest/RenderTest.csproj b/samples/RenderTest/RenderTest.csproj
index 974b8802ac..0141ad29c6 100644
--- a/samples/RenderTest/RenderTest.csproj
+++ b/samples/RenderTest/RenderTest.csproj
@@ -132,14 +132,6 @@
{3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f}
Avalonia.Themes.Default
-
- {fb05ac90-89ba-4f2f-a924-f37875fb547c}
- Avalonia.Cairo
-
-
- {54f237d5-a70a-4752-9656-0c70b1a7b047}
- Avalonia.Gtk
-
{3e53a01a-b331-47f3-b828-4a5717e77a24}
Avalonia.Markup.Xaml
diff --git a/samples/VirtualizationTest/VirtualizationTest.csproj b/samples/VirtualizationTest/VirtualizationTest.csproj
index 9d31a6cb86..58775926cc 100644
--- a/samples/VirtualizationTest/VirtualizationTest.csproj
+++ b/samples/VirtualizationTest/VirtualizationTest.csproj
@@ -134,14 +134,6 @@
{811a76cf-1cf6-440f-963b-bbe31bd72a82}
Avalonia.Win32
-
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}
- Avalonia.Cairo
-
-
- {54F237D5-A70A-4752-9656-0C70B1A7B047}
- Avalonia.Gtk
-
diff --git a/samples/interop/GtkInteropDemo/App.config b/samples/interop/GtkInteropDemo/App.config
deleted file mode 100644
index 8324aa6ff1..0000000000
--- a/samples/interop/GtkInteropDemo/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/interop/GtkInteropDemo/GtkInteropDemo.csproj b/samples/interop/GtkInteropDemo/GtkInteropDemo.csproj
deleted file mode 100644
index 8382426620..0000000000
--- a/samples/interop/GtkInteropDemo/GtkInteropDemo.csproj
+++ /dev/null
@@ -1,154 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {BD7F352C-6DC1-4740-BAF2-2D34A038728C}
- WinExe
- Properties
- GtkInteropDemo
- GtkInteropDemo
- v4.6.1
- 512
- true
-
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
- false
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ResXFileCodeGenerator
- Resources.Designer.cs
- Designer
-
-
- True
- Resources.resx
-
-
- SettingsSingleFileGenerator
- Settings.Designer.cs
-
-
- True
- Settings.settings
- True
-
-
-
-
-
-
-
- {d211e587-d8bc-45b9-95a4-f297c8fa5200}
- Avalonia.Animation
-
-
- {b09b78d8-9b26-48b0-9149-d64a2f120f3f}
- Avalonia.Base
-
-
- {d2221c82-4a25-4583-9b43-d791e3f6820c}
- Avalonia.Controls
-
-
- {7062ae20-5dcc-4442-9645-8195bdece63e}
- Avalonia.Diagnostics
-
-
- {4a1abb09-9047-4bd5-a4ad-a055e52c5ee0}
- Avalonia.DotNetFrameworkRuntime
-
-
- {62024b2d-53eb-4638-b26b-85eeaa54866e}
- Avalonia.Input
-
-
- {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b}
- Avalonia.Interactivity
-
-
- {42472427-4774-4c81-8aff-9f27b8e31721}
- Avalonia.Layout
-
-
- {6417b24e-49c2-4985-8db2-3ab9d898ec91}
- Avalonia.ReactiveUI
-
-
- {eb582467-6abb-43a1-b052-e981ba910e3a}
- Avalonia.Visuals
-
-
- {f1baa01a-f176-4c6a-b39d-5b40bb1b148f}
- Avalonia.Styling
-
-
- {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f}
- Avalonia.Themes.Default
-
-
- {fb05ac90-89ba-4f2f-a924-f37875fb547c}
- Avalonia.Cairo
-
-
- {54f237d5-a70a-4752-9656-0c70b1a7b047}
- Avalonia.Gtk
-
-
- {3e53a01a-b331-47f3-b828-4a5717e77a24}
- Avalonia.Markup.Xaml
-
-
- {6417e941-21bc-467b-a771-0de389353ce6}
- Avalonia.Markup
-
-
- {7d2d3083-71dd-4cc9-8907-39a0d86fb322}
- Avalonia.Skia
-
-
- {d0a739b9-3c68-4ba6-a328-41606954b6bd}
- ControlCatalog
-
-
-
-
-
\ No newline at end of file
diff --git a/samples/interop/GtkInteropDemo/MainWindow.cs b/samples/interop/GtkInteropDemo/MainWindow.cs
deleted file mode 100644
index 2c193f24e8..0000000000
--- a/samples/interop/GtkInteropDemo/MainWindow.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Avalonia.Diagnostics;
-using Avalonia.Gtk.Embedding;
-using ControlCatalog;
-using Gtk;
-
-namespace GtkInteropDemo
-{
- class MainWindow : Window
- {
- public MainWindow() : base("Gtk Embedding Demo")
- {
- var root = new HBox();
- var left = new VBox();
- left.Add(new Button("I'm GTK button"));
- left.Add(new Calendar());
- root.PackEnd(left, false, false, 0);
- var host = new GtkAvaloniaControlHost() {Content = new MainView()};
- host.SetSizeRequest(600, 600);
- root.PackStart(host, true, true, 0);
- Add(root);
-
- ShowAll();
- }
- }
-}
diff --git a/samples/interop/GtkInteropDemo/Program.cs b/samples/interop/GtkInteropDemo/Program.cs
deleted file mode 100644
index 7dd39c74ca..0000000000
--- a/samples/interop/GtkInteropDemo/Program.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Avalonia;
-using Avalonia.Controls;
-using ControlCatalog;
-
-namespace GtkInteropDemo
-{
- static class Program
- {
- ///
- /// The main entry point for the application.
- ///
- [STAThread]
- static void Main()
- {
- AppBuilder.Configure().UseGtk().UseCairo().SetupWithoutStarting();
- new MainWindow().Show();
- Gtk.Application.Run();
- }
- }
-}
diff --git a/samples/interop/GtkInteropDemo/Properties/AssemblyInfo.cs b/samples/interop/GtkInteropDemo/Properties/AssemblyInfo.cs
deleted file mode 100644
index 8aaf28c2f0..0000000000
--- a/samples/interop/GtkInteropDemo/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("GtkInteropDemo")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("GtkInteropDemo")]
-[assembly: AssemblyCopyright("Copyright © 2016")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("bd7f352c-6dc1-4740-baf2-2d34a038728c")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/samples/interop/GtkInteropDemo/Properties/Resources.Designer.cs b/samples/interop/GtkInteropDemo/Properties/Resources.Designer.cs
deleted file mode 100644
index f79a8bf680..0000000000
--- a/samples/interop/GtkInteropDemo/Properties/Resources.Designer.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace GtkInteropDemo.Properties
-{
-
-
- ///
- /// A strongly-typed resource class, for looking up localized strings, etc.
- ///
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources
- {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources()
- {
- }
-
- ///
- /// Returns the cached ResourceManager instance used by this class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager
- {
- get
- {
- if ((resourceMan == null))
- {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GtkInteropDemo.Properties.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- ///
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture
- {
- get
- {
- return resourceCulture;
- }
- set
- {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/samples/interop/GtkInteropDemo/Properties/Resources.resx b/samples/interop/GtkInteropDemo/Properties/Resources.resx
deleted file mode 100644
index af7dbebbac..0000000000
--- a/samples/interop/GtkInteropDemo/Properties/Resources.resx
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
\ No newline at end of file
diff --git a/samples/interop/GtkInteropDemo/Properties/Settings.Designer.cs b/samples/interop/GtkInteropDemo/Properties/Settings.Designer.cs
deleted file mode 100644
index 8173ee7dfa..0000000000
--- a/samples/interop/GtkInteropDemo/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace GtkInteropDemo.Properties
-{
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
- {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default
- {
- get
- {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/samples/interop/GtkInteropDemo/Properties/Settings.settings b/samples/interop/GtkInteropDemo/Properties/Settings.settings
deleted file mode 100644
index 39645652af..0000000000
--- a/samples/interop/GtkInteropDemo/Properties/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Visuals/Media/GradientBrush.cs b/src/Avalonia.Visuals/Media/GradientBrush.cs
index 52edf12e7f..8c2c9a2c01 100644
--- a/src/Avalonia.Visuals/Media/GradientBrush.cs
+++ b/src/Avalonia.Visuals/Media/GradientBrush.cs
@@ -21,8 +21,8 @@ namespace Avalonia.Media
///
/// Defines the property.
///
- public static readonly StyledProperty> GradientStopsProperty =
- AvaloniaProperty.Register>(nameof(Opacity));
+ public static readonly StyledProperty> GradientStopsProperty =
+ AvaloniaProperty.Register>(nameof(Opacity));
///
/// Initializes a new instance of the class.
@@ -46,7 +46,7 @@ namespace Avalonia.Media
/// Gets or sets the brush's gradient stops.
///
[Content]
- public IReadOnlyList GradientStops
+ public IList GradientStops
{
get { return GetValue(GradientStopsProperty); }
set { SetValue(GradientStopsProperty, value); }
diff --git a/src/Avalonia.Visuals/Media/IGradientBrush.cs b/src/Avalonia.Visuals/Media/IGradientBrush.cs
index ce064c4a1f..390ce6ee5b 100644
--- a/src/Avalonia.Visuals/Media/IGradientBrush.cs
+++ b/src/Avalonia.Visuals/Media/IGradientBrush.cs
@@ -10,7 +10,7 @@ namespace Avalonia.Media
///
/// Gets the brush's gradient stops.
///
- IReadOnlyList GradientStops { get; }
+ IList GradientStops { get; }
///
/// Gets the brush's spread method that defines how to draw a gradient that doesn't fill
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableGradientBrush.cs b/src/Avalonia.Visuals/Media/Immutable/ImmutableGradientBrush.cs
index e8507f8fc3..ca67789c7f 100644
--- a/src/Avalonia.Visuals/Media/Immutable/ImmutableGradientBrush.cs
+++ b/src/Avalonia.Visuals/Media/Immutable/ImmutableGradientBrush.cs
@@ -16,7 +16,7 @@ namespace Avalonia.Media.Immutable
/// The opacity of the brush.
/// The spread method.
protected ImmutableGradientBrush(
- IReadOnlyList gradientStops,
+ IList gradientStops,
double opacity,
GradientSpreadMethod spreadMethod)
{
@@ -36,7 +36,7 @@ namespace Avalonia.Media.Immutable
}
///
- public IReadOnlyList GradientStops { get; }
+ public IList GradientStops { get; }
///
public double Opacity { get; }
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableLinearGradientBrush.cs b/src/Avalonia.Visuals/Media/Immutable/ImmutableLinearGradientBrush.cs
index b46ee951f7..39ddc305fb 100644
--- a/src/Avalonia.Visuals/Media/Immutable/ImmutableLinearGradientBrush.cs
+++ b/src/Avalonia.Visuals/Media/Immutable/ImmutableLinearGradientBrush.cs
@@ -20,7 +20,7 @@ namespace Avalonia.Media.Immutable
/// The start point for the gradient.
/// The end point for the gradient.
public ImmutableLinearGradientBrush(
- IReadOnlyList gradientStops,
+ IList gradientStops,
double opacity = 1,
GradientSpreadMethod spreadMethod = GradientSpreadMethod.Pad,
RelativePoint? startPoint = null,
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableRadialGradientBrush.cs b/src/Avalonia.Visuals/Media/Immutable/ImmutableRadialGradientBrush.cs
index cc2c7b3697..672a45ebc4 100644
--- a/src/Avalonia.Visuals/Media/Immutable/ImmutableRadialGradientBrush.cs
+++ b/src/Avalonia.Visuals/Media/Immutable/ImmutableRadialGradientBrush.cs
@@ -22,7 +22,7 @@ namespace Avalonia.Media.Immutable
/// The horizontal and vertical radius of the outermost circle of the radial gradient.
///
public ImmutableRadialGradientBrush(
- IReadOnlyList gradientStops,
+ IList gradientStops,
double opacity = 1,
GradientSpreadMethod spreadMethod = GradientSpreadMethod.Pad,
RelativePoint? center = null,
diff --git a/src/Avalonia.Visuals/Media/PathMarkupParser.cs b/src/Avalonia.Visuals/Media/PathMarkupParser.cs
index 145013d76b..fbc189546c 100644
--- a/src/Avalonia.Visuals/Media/PathMarkupParser.cs
+++ b/src/Avalonia.Visuals/Media/PathMarkupParser.cs
@@ -21,7 +21,10 @@ namespace Avalonia.Media
{ 'L', Command.Line },
{ 'H', Command.HorizontalLine },
{ 'V', Command.VerticalLine },
+ { 'Q', Command.QuadraticBezierCurve },
+ { 'T', Command.SmoothQuadraticBezierCurve },
{ 'C', Command.CubicBezierCurve },
+ { 'S', Command.SmoothCubicBezierCurve },
{ 'A', Command.Arc },
{ 'Z', Command.Close },
};
@@ -55,6 +58,9 @@ namespace Avalonia.Media
HorizontalLine,
VerticalLine,
CubicBezierCurve,
+ QuadraticBezierCurve,
+ SmoothCubicBezierCurve,
+ SmoothQuadraticBezierCurve,
Arc,
Close,
}
@@ -71,7 +77,8 @@ namespace Avalonia.Media
{
Command command = Command.None;
Point point = new Point();
- bool relative = false;
+ bool relative = false;
+ Point? previousControlPoint = null;
while (ReadCommand(reader, ref command, ref relative))
{
@@ -79,6 +86,7 @@ namespace Avalonia.Media
{
case Command.FillRule:
_context.SetFillRule(ReadFillRule(reader));
+ previousControlPoint = null;
break;
case Command.Move:
@@ -90,11 +98,13 @@ namespace Avalonia.Media
point = ReadPoint(reader, point, relative);
_context.BeginFigure(point, true);
openFigure = true;
+ previousControlPoint = null;
break;
case Command.Line:
point = ReadPoint(reader, point, relative);
_context.LineTo(point);
+ previousControlPoint = null;
break;
case Command.HorizontalLine:
@@ -108,6 +118,7 @@ namespace Avalonia.Media
}
_context.LineTo(point);
+ previousControlPoint = null;
break;
case Command.VerticalLine:
@@ -121,18 +132,57 @@ namespace Avalonia.Media
}
_context.LineTo(point);
+ previousControlPoint = null;
break;
+ case Command.QuadraticBezierCurve:
+ {
+ Point handle = ReadPoint(reader, point, relative);
+ previousControlPoint = handle;
+ ReadSeparator(reader);
+ point = ReadPoint(reader, point, relative);
+ _context.QuadraticBezierTo(handle, point);
+ break;
+ }
+
+ case Command.SmoothQuadraticBezierCurve:
+ {
+ Point end = ReadPoint(reader, point, relative);
+
+ if(previousControlPoint != null)
+ previousControlPoint = MirrorControlPoint((Point)previousControlPoint, point);
+
+ _context.QuadraticBezierTo(previousControlPoint ?? point, end);
+ point = end;
+ break;
+ }
+
case Command.CubicBezierCurve:
{
Point point1 = ReadPoint(reader, point, relative);
ReadSeparator(reader);
Point point2 = ReadPoint(reader, point, relative);
+ previousControlPoint = point2;
ReadSeparator(reader);
point = ReadPoint(reader, point, relative);
_context.CubicBezierTo(point1, point2, point);
break;
}
+
+ case Command.SmoothCubicBezierCurve:
+ {
+ Point point2 = ReadPoint(reader, point, relative);
+ ReadSeparator(reader);
+ Point end = ReadPoint(reader, point, relative);
+
+ if(previousControlPoint != null)
+ previousControlPoint = MirrorControlPoint((Point)previousControlPoint, point);
+
+ _context.CubicBezierTo(previousControlPoint ?? point, point2, end);
+ previousControlPoint = point2;
+ point = end;
+ break;
+ }
case Command.Arc:
{
@@ -147,12 +197,14 @@ namespace Avalonia.Media
point = ReadPoint(reader, point, relative);
_context.ArcTo(point, size, rotationAngle, isLargeArc, sweepDirection);
+ previousControlPoint = null;
break;
}
case Command.Close:
_context.EndFigure(true);
openFigure = false;
+ previousControlPoint = null;
break;
default:
@@ -167,6 +219,12 @@ namespace Avalonia.Media
}
}
+ private Point MirrorControlPoint(Point controlPoint, Point center)
+ {
+ Point dir = (controlPoint - center);
+ return center + -dir;
+ }
+
private static bool ReadCommand(
StringReader reader,
ref Command command,
@@ -243,6 +301,9 @@ namespace Avalonia.Media
(c == 'E' && !readExponent) ||
char.IsDigit(c))
{
+ if (b.Length != 0 && !readExponent && c == '-')
+ break;
+
b.Append(c);
reader.Read();
diff --git a/src/Avalonia.Visuals/Properties/AssemblyInfo.cs b/src/Avalonia.Visuals/Properties/AssemblyInfo.cs
index ded650e2ed..87347d64b1 100644
--- a/src/Avalonia.Visuals/Properties/AssemblyInfo.cs
+++ b/src/Avalonia.Visuals/Properties/AssemblyInfo.cs
@@ -10,6 +10,5 @@ using Avalonia.Metadata;
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media")]
-[assembly: InternalsVisibleTo("Avalonia.Cairo.RenderTests")]
[assembly: InternalsVisibleTo("Avalonia.Direct2D1.RenderTests")]
[assembly: InternalsVisibleTo("Avalonia.Skia.RenderTests")]
\ No newline at end of file
diff --git a/src/Gtk/Avalonia.Cairo/Avalonia.Cairo.csproj b/src/Gtk/Avalonia.Cairo/Avalonia.Cairo.csproj
deleted file mode 100644
index 460db98895..0000000000
--- a/src/Gtk/Avalonia.Cairo/Avalonia.Cairo.csproj
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}
- Library
- Properties
- Avalonia.Cairo
- Avalonia.Cairo
- v4.6.1
- 512
-
-
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Properties\SharedAssemblyInfo.cs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}
- Avalonia.Animation
-
-
- {B09B78D8-9B26-48B0-9149-D64A2F120F3F}
- Avalonia.Base
-
-
- {d2221c82-4a25-4583-9b43-d791e3f6820c}
- Avalonia.Controls
-
-
- {62024b2d-53eb-4638-b26b-85eeaa54866e}
- Avalonia.Input
-
-
- {6b0ed19d-a08b-461c-a9d9-a9ee40b0c06b}
- Avalonia.Interactivity
-
-
- {42472427-4774-4C81-8AFF-9F27B8E31721}
- Avalonia.Layout
-
-
- {EB582467-6ABB-43A1-B052-E981BA910E3A}
- Avalonia.Visuals
-
-
- {f1baa01a-f176-4c6a-b39d-5b40bb1b148f}
- Avalonia.Styling
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Gtk/Avalonia.Cairo/CairoExtensions.cs b/src/Gtk/Avalonia.Cairo/CairoExtensions.cs
deleted file mode 100644
index daea3b0239..0000000000
--- a/src/Gtk/Avalonia.Cairo/CairoExtensions.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-namespace Avalonia.Cairo
-{
- using Cairo = global::Cairo;
-
- public static class CairoExtensions
- {
- public static Cairo.Color ToCairo(this Avalonia.Media.Color color)
- {
- return new Cairo.Color(color.R / 255.0, color.G / 255.0, color.B / 255.0, color.A / 255.0);
- }
-
- public static Cairo.Matrix ToCairo(this Matrix m)
- {
- return new Cairo.Matrix(m.M11, m.M12, m.M21, m.M22, m.M31, m.M32);
- }
-
- public static Cairo.PointD ToCairo(this Point p)
- {
- return new Cairo.PointD(p.X, p.Y);
- }
-
- public static Cairo.Rectangle ToCairo(this Rect rect)
- {
- return new Cairo.Rectangle(rect.X, rect.Y, rect.Width, rect.Height);
- }
-
- public static Rect ToAvalonia(this Cairo.Rectangle rect)
- {
- return new Rect(rect.X, rect.Y, rect.Width, rect.Height);
- }
-
- public static Rect ToAvalonia(this Pango.Rectangle rect)
- {
- return new Rect(
- Pango.Units.ToDouble(rect.X),
- Pango.Units.ToDouble(rect.Y),
- Pango.Units.ToDouble(rect.Width),
- Pango.Units.ToDouble(rect.Height));
- }
-
- public static Pango.Weight ToCairo(this Avalonia.Media.FontWeight weight)
- {
- return (Pango.Weight)weight;
- }
-
- public static Pango.Alignment ToCairo(this Avalonia.Media.TextAlignment alignment)
- {
- if (alignment == Avalonia.Media.TextAlignment.Left)
- {
- return Pango.Alignment.Left;
- }
-
- if (alignment == Avalonia.Media.TextAlignment.Center)
- {
- return Pango.Alignment.Center;
- }
-
- return Pango.Alignment.Right;
- }
- }
-}
\ No newline at end of file
diff --git a/src/Gtk/Avalonia.Cairo/CairoPlatform.cs b/src/Gtk/Avalonia.Cairo/CairoPlatform.cs
deleted file mode 100644
index e3578874a3..0000000000
--- a/src/Gtk/Avalonia.Cairo/CairoPlatform.cs
+++ /dev/null
@@ -1,112 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Avalonia.Cairo.Media;
-using Avalonia.Cairo.Media.Imaging;
-using Avalonia.Media;
-using Avalonia.Platform;
-using Avalonia.Controls;
-
-namespace Avalonia
-{
- public static class GtkApplicationExtensions
- {
- public static T UseCairo(this T builder) where T : AppBuilderBase, new()
- {
- builder.UseRenderingSubsystem(Cairo.CairoPlatform.Initialize, "Cairo");
- return builder;
- }
- }
-}
-
-namespace Avalonia.Cairo
-{
- using System.IO;
- using global::Cairo;
- using Rendering;
-
- public class CairoPlatform : IPlatformRenderInterface
- {
- private static readonly CairoPlatform s_instance = new CairoPlatform();
-
- private static readonly Pango.Context s_pangoContext = CreatePangoContext();
-
- public static void Initialize() => AvaloniaLocator.CurrentMutable.Bind().ToConstant(s_instance);
-
- public IBitmapImpl CreateBitmap(int width, int height)
- {
- return new BitmapImpl(new Gdk.Pixbuf(Gdk.Colorspace.Rgb, true, 32, width, height));
- }
-
- public IFormattedTextImpl CreateFormattedText(
- string text,
- Typeface typeface,
- TextAlignment textAlignment,
- TextWrapping wrapping,
- Size constraint,
- IReadOnlyList spans)
- {
- return new FormattedTextImpl(
- s_pangoContext,
- text,
- typeface,
- textAlignment,
- wrapping,
- constraint,
- spans);
- }
-
- public IRenderTarget CreateRenderTarget(IEnumerable
diff --git a/src/Gtk/Avalonia.Gtk/KeyTransform.cs b/src/Gtk/Avalonia.Gtk3/KeyTransform.cs
similarity index 99%
rename from src/Gtk/Avalonia.Gtk/KeyTransform.cs
rename to src/Gtk/Avalonia.Gtk3/KeyTransform.cs
index 77de8d18a3..de3a4766a1 100644
--- a/src/Gtk/Avalonia.Gtk/KeyTransform.cs
+++ b/src/Gtk/Avalonia.Gtk3/KeyTransform.cs
@@ -4,11 +4,8 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Avalonia.Input;
-#if GTK3_PINVOKE
using Avalonia.Gtk3;
-#else
-using GdkKey = Gdk.Key;
-#endif
+
namespace Avalonia.Gtk.Common
{
static class KeyTransform
diff --git a/src/Gtk/Avalonia.Gtk3/WindowBaseImpl.cs b/src/Gtk/Avalonia.Gtk3/WindowBaseImpl.cs
index ad96ee1f17..a3b5d57fdc 100644
--- a/src/Gtk/Avalonia.Gtk3/WindowBaseImpl.cs
+++ b/src/Gtk/Avalonia.Gtk3/WindowBaseImpl.cs
@@ -395,7 +395,10 @@ namespace Avalonia.Gtk3
Native.GtkWindowResize(GtkWidget, (int)value.Width, (int)value.Height);
}
- public IScreenImpl Screen { get; } = new ScreenImpl();
+ public IScreenImpl Screen
+ {
+ get;
+ } = new ScreenImpl();
public Point Position
{
diff --git a/src/OSX/Avalonia.MonoMac/MonoMacPlatform.cs b/src/OSX/Avalonia.MonoMac/MonoMacPlatform.cs
index 2c9710c05a..0deea7fb44 100644
--- a/src/OSX/Avalonia.MonoMac/MonoMacPlatform.cs
+++ b/src/OSX/Avalonia.MonoMac/MonoMacPlatform.cs
@@ -14,6 +14,9 @@ namespace Avalonia.MonoMac
internal readonly MouseDevice MouseDevice = new MouseDevice();
readonly KeyboardDevice _keyboardDevice = new KeyboardDevice();
internal static NSApplication App;
+ private static bool s_monoMacInitialized;
+ private static bool s_showInDock = true;
+
void DoInitialize()
{
AvaloniaLocator.CurrentMutable
@@ -26,7 +29,7 @@ namespace Avalonia.MonoMac
.Bind().ToSingleton()
.Bind().ToConstant(PlatformThreadingInterface.Instance);
- InitializeCocoaApp();
+ InitializeMonoMac();
}
public static void Initialize()
@@ -36,12 +39,29 @@ namespace Avalonia.MonoMac
}
- void InitializeCocoaApp()
+ void InitializeMonoMac()
{
+ if(s_monoMacInitialized)
+ return;
NSApplication.Init();
App = NSApplication.SharedApplication;
- App.ActivationPolicy = NSApplicationActivationPolicy.Regular;
+ UpdateActivationPolicy();
+ s_monoMacInitialized = true;
+ }
+ static void UpdateActivationPolicy() => App.ActivationPolicy = ShowInDock
+ ? NSApplicationActivationPolicy.Regular
+ : NSApplicationActivationPolicy.Accessory;
+
+ public static bool ShowInDock
+ {
+ get => s_showInDock;
+ set
+ {
+ s_showInDock = value;
+ if (s_monoMacInitialized)
+ UpdateActivationPolicy();
+ }
}
diff --git a/src/OSX/Avalonia.MonoMac/WindowBaseImpl.cs b/src/OSX/Avalonia.MonoMac/WindowBaseImpl.cs
index 71f008e074..9ce1756aae 100644
--- a/src/OSX/Avalonia.MonoMac/WindowBaseImpl.cs
+++ b/src/OSX/Avalonia.MonoMac/WindowBaseImpl.cs
@@ -153,7 +153,10 @@ namespace Avalonia.MonoMac
Position = pos;
}
- public IScreenImpl Screen { get; } = new ScreenImpl();
+ public IScreenImpl Screen
+ {
+ get;
+ } = new ScreenImpl();
public override Point PointToClient(Point point)
{
diff --git a/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj b/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj
index 817b753157..368e5986b2 100644
--- a/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj
+++ b/src/Windows/Avalonia.Win32.Interop/Avalonia.Win32.Interop.csproj
@@ -94,10 +94,6 @@
{eb582467-6abb-43a1-b052-e981ba910e3a}
Avalonia.Visuals
-
- {fb05ac90-89ba-4f2f-a924-f37875fb547c}
- Avalonia.Cairo
-
{3e53a01a-b331-47f3-b828-4a5717e77a24}
Avalonia.Markup.Xaml
diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs
index 4a94a09dc5..348468e0e7 100644
--- a/src/Windows/Avalonia.Win32/WindowImpl.cs
+++ b/src/Windows/Avalonia.Win32/WindowImpl.cs
@@ -104,7 +104,11 @@ namespace Avalonia.Win32
}
}
- public IScreenImpl Screen => new ScreenImpl();
+ public IScreenImpl Screen
+ {
+ get;
+ } = new ScreenImpl();
+
public IRenderer CreateRenderer(IRenderRoot root)
{
diff --git a/tests/Avalonia.Controls.UnitTests/AppBuilderTests.cs b/tests/Avalonia.Controls.UnitTests/AppBuilderTests.cs
index 9de97b41cc..867f740a3a 100644
--- a/tests/Avalonia.Controls.UnitTests/AppBuilderTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/AppBuilderTests.cs
@@ -99,7 +99,7 @@ namespace Avalonia.Controls.UnitTests
}
}
- [Fact]
+ [Fact (Skip = "We don't have rendering modules with dependencies right now")]
public void LoadsRenderingModuleWithoutDependenciesWhenNoModuleMatches()
{
using (AvaloniaLocator.EnterScope())
@@ -107,7 +107,7 @@ namespace Avalonia.Controls.UnitTests
ResetModuleLoadStates();
var builder = AppBuilder.Configure()
.UseWindowingSubsystem(() => { })
- .UseRenderingSubsystem(() => { }, "Cairo");
+ .UseRenderingSubsystem(() => { }, "TBD");
builder.UseAvaloniaModules().SetupWithoutStarting();
Assert.True(DefaultRenderingModule.IsLoaded);
Assert.False(Direct2DModule.IsLoaded);
diff --git a/tests/Avalonia.RenderTests/Avalonia.Cairo.RenderTests.csproj b/tests/Avalonia.RenderTests/Avalonia.Cairo.RenderTests.csproj
deleted file mode 100644
index 98256529bc..0000000000
--- a/tests/Avalonia.RenderTests/Avalonia.Cairo.RenderTests.csproj
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
- Debug
- AnyCPU
- {E106CF37-4066-4615-B684-172A6D30B058}
- Library
- Properties
- Avalonia.Cairo.RenderTests
- Avalonia.Cairo.RenderTests
- v4.6.1
- 512
-
-
-
- true
- full
- false
- ..\..\artifacts\tests\
- TRACE;DEBUG;AVALONIA_CAIRO
- prompt
- 4
-
-
- pdbonly
- true
- ..\..\artifacts\tests\
- TRACE;AVALONIA_CAIRO
- prompt
- 4
-
-
-
-
-
-
-
-
- {FB05AC90-89BA-4F2F-A924-F37875FB547C}
- Avalonia.Cairo
-
-
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}
- Avalonia.Animation
-
-
- {B09B78D8-9B26-48B0-9149-D64A2F120F3F}
- Avalonia.Base
-
-
- {D2221C82-4A25-4583-9B43-D791E3F6820C}
- Avalonia.Controls
-
-
- {62024B2D-53EB-4638-B26B-85EEAA54866E}
- Avalonia.Input
-
-
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}
- Avalonia.Interactivity
-
-
- {42472427-4774-4C81-8AFF-9F27B8E31721}
- Avalonia.Layout
-
-
- {EB582467-6ABB-43A1-B052-E981BA910E3A}
- Avalonia.Visuals
-
-
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}
- Avalonia.Styling
-
-
-
-
-
-
-
-
-
-
-
-
-
- False
-
-
- False
-
-
- False
-
-
- False
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj b/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
index a1c323ceb0..445f8b0368 100644
--- a/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
+++ b/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
@@ -72,9 +72,6 @@
Avalonia.Styling
-
-
-
diff --git a/tests/Avalonia.RenderTests/Avalonia.RenderTests.projitems b/tests/Avalonia.RenderTests/Avalonia.RenderTests.projitems
index a3ca0c7493..ff729a6b48 100644
--- a/tests/Avalonia.RenderTests/Avalonia.RenderTests.projitems
+++ b/tests/Avalonia.RenderTests/Avalonia.RenderTests.projitems
@@ -14,6 +14,7 @@
+
diff --git a/tests/Avalonia.RenderTests/Controls/BorderTests.cs b/tests/Avalonia.RenderTests/Controls/BorderTests.cs
index ef33ecad8e..3bd5a6e1cb 100644
--- a/tests/Avalonia.RenderTests/Controls/BorderTests.cs
+++ b/tests/Avalonia.RenderTests/Controls/BorderTests.cs
@@ -7,9 +7,7 @@ using Avalonia.Layout;
using Avalonia.Media;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Controls
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Controls
@@ -149,11 +147,8 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#else
+
[Fact]
-#endif
public async Task Border_Centers_Content_Horizontally()
{
Decorator target = new Decorator
@@ -180,11 +175,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#else
[Fact]
-#endif
public async Task Border_Centers_Content_Vertically()
{
Decorator target = new Decorator
@@ -211,11 +202,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#else
[Fact]
-#endif
public async Task Border_Stretches_Content_Horizontally()
{
Decorator target = new Decorator
@@ -242,11 +229,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#else
[Fact]
-#endif
public async Task Border_Stretches_Content_Vertically()
{
Decorator target = new Decorator
@@ -273,11 +256,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#else
[Fact]
-#endif
public async Task Border_Left_Aligns_Content()
{
Decorator target = new Decorator
@@ -304,11 +283,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#else
[Fact]
-#endif
public async Task Border_Right_Aligns_Content()
{
Decorator target = new Decorator
@@ -335,11 +310,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#else
[Fact]
-#endif
public async Task Border_Top_Aligns_Content()
{
Decorator target = new Decorator
@@ -366,11 +337,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#else
[Fact]
-#endif
public async Task Border_Bottom_Aligns_Content()
{
Decorator target = new Decorator
diff --git a/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs b/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs
index e4630d8265..8356e78cc3 100644
--- a/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs
+++ b/tests/Avalonia.RenderTests/Controls/CustomRenderTests.cs
@@ -8,9 +8,7 @@ using Avalonia.Layout;
using Avalonia.Media;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Controls
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Controls
diff --git a/tests/Avalonia.RenderTests/Controls/ImageTests.cs b/tests/Avalonia.RenderTests/Controls/ImageTests.cs
index 9c1d3624d1..593593ba3c 100644
--- a/tests/Avalonia.RenderTests/Controls/ImageTests.cs
+++ b/tests/Avalonia.RenderTests/Controls/ImageTests.cs
@@ -8,9 +8,7 @@ using Avalonia.Media;
using Avalonia.Media.Imaging;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Controls
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Controls
diff --git a/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs b/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs
index 5b1d76cd0f..a5d06a1b0e 100644
--- a/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs
+++ b/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs
@@ -6,9 +6,7 @@ using Avalonia.Layout;
using Avalonia.Media;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Controls
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Controls
diff --git a/tests/Avalonia.RenderTests/GeometryClippingTests.cs b/tests/Avalonia.RenderTests/GeometryClippingTests.cs
index a1ce8097bd..01af638e6d 100644
--- a/tests/Avalonia.RenderTests/GeometryClippingTests.cs
+++ b/tests/Avalonia.RenderTests/GeometryClippingTests.cs
@@ -7,9 +7,7 @@ using System.Text;
using Xunit;
using System.Threading.Tasks;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests
diff --git a/tests/Avalonia.RenderTests/Media/BitmapTests.cs b/tests/Avalonia.RenderTests/Media/BitmapTests.cs
index 33c14fb975..f01f78ae94 100644
--- a/tests/Avalonia.RenderTests/Media/BitmapTests.cs
+++ b/tests/Avalonia.RenderTests/Media/BitmapTests.cs
@@ -13,9 +13,7 @@ using Avalonia.Media.Imaging;
using Avalonia.Platform;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Media
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Media
@@ -105,11 +103,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media
CompareImagesNoRenderer(testName);
}
-#if AVALONIA_CAIRO
- //wontfix
-#else
[Theory]
-#endif
[InlineData(PixelFormat.Bgra8888), InlineData(PixelFormat.Rgba8888)]
public void WritableBitmapShouldBeUsable(PixelFormat fmt)
{
diff --git a/tests/Avalonia.RenderTests/Media/FormattedTextImplTests.cs b/tests/Avalonia.RenderTests/Media/FormattedTextImplTests.cs
index 4f8aeb93ac..a8f9d42c1e 100644
--- a/tests/Avalonia.RenderTests/Media/FormattedTextImplTests.cs
+++ b/tests/Avalonia.RenderTests/Media/FormattedTextImplTests.cs
@@ -9,9 +9,7 @@ using System.Linq;
using System.Text;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Media
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
@@ -86,11 +84,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media
widthConstraint);
}
-#if AVALONIA_CAIRO
- [Theory(Skip = "TODO: Font scaling currently broken on cairo")]
-#else
+
[Theory]
-#endif
[InlineData("", FontSize, 0, FontSizeHeight)]
[InlineData("x", FontSize, 7.20, FontSizeHeight)]
[InlineData(stringword, FontSize, 28.80, FontSizeHeight)]
@@ -114,12 +109,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media
Assert.Equal(expHeight, linesHeight, 2);
}
-
-#if AVALONIA_CAIRO
- [Theory(Skip = "TODO: Font scaling currently broken on cairo")]
-#else
+
[Theory]
-#endif
[InlineData("", 1, -1, TextWrapping.NoWrap)]
[InlineData("x", 1, -1, TextWrapping.NoWrap)]
[InlineData(stringword, 1, -1, TextWrapping.NoWrap)]
@@ -142,12 +133,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media
var lines = constrained.GetLines().ToArray();
Assert.Equal(linesCount, lines.Count());
}
-
-#if AVALONIA_CAIRO
- [Theory(Skip = "TODO: Font scaling currently broken on cairo")]
-#else
+
[Theory]
-#endif
[InlineData("x", 0, 0, true, false, 0)]
[InlineData(stringword, -1, -1, false, false, 0)]
[InlineData(stringword, 25, 13, true, false, 3)]
@@ -181,12 +168,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media
Assert.Equal(isInside, htRes.IsInside);
Assert.Equal(isTrailing, htRes.IsTrailing);
}
-
-#if AVALONIA_CAIRO
- [Theory(Skip = "TODO: Font scaling currently broken on cairo")]
-#else
+
[Theory]
-#endif
[InlineData("", 0, 0, 0, 0, FontSizeHeight)]
[InlineData("x", 0, 0, 0, 7.20, FontSizeHeight)]
[InlineData("x", -1, 7.20, 0, 0, FontSizeHeight)]
@@ -207,12 +190,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media
Assert.Equal(width, r.Width, 2);
Assert.Equal(height, r.Height, 2);
}
-
-#if AVALONIA_CAIRO
- [Theory(Skip = "TODO: Font scaling currently broken on cairo")]
-#else
+
[Theory]
-#endif
[InlineData("x", 0, 200, 200 - 7.20, 0, 7.20, FontSizeHeight)]
[InlineData(stringword, 0, 200, 171.20, 0, 7.20, FontSizeHeight)]
[InlineData(stringword, 3, 200, 200 - 7.20, 0, 7.20, FontSizeHeight)]
@@ -230,12 +209,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media
Assert.Equal(width, r.Width, 2);
Assert.Equal(height, r.Height, 2);
}
-
-#if AVALONIA_CAIRO
- [Theory(Skip = "TODO: Font scaling currently broken on cairo")]
-#else
+
[Theory]
-#endif
[InlineData("x", 0, 200, 100 - 7.20 / 2, 0, 7.20, FontSizeHeight)]
[InlineData(stringword, 0, 200, 85.6, 0, 7.20, FontSizeHeight)]
[InlineData(stringword, 3, 200, 100 + 7.20, 0, 7.20, FontSizeHeight)]
@@ -253,12 +228,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media
Assert.Equal(width, r.Width, 2);
Assert.Equal(height, r.Height, 2);
}
-
-#if AVALONIA_CAIRO
- [Theory(Skip = "TODO: Font scaling currently broken on cairo")]
-#else
+
[Theory]
-#endif
[InlineData("x", 0, 1, "0,0,7.20,13.59")]
[InlineData(stringword, 0, 4, "0,0,28.80,13.59")]
[InlineData(stringmiddlenewlines, 10, 10, "0,13.59,57.61,13.59")]
diff --git a/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs b/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs
index b8f81696b1..6381bceadc 100644
--- a/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs
+++ b/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs
@@ -9,9 +9,7 @@ using Avalonia.Media;
using Avalonia.Media.Imaging;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Media
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Media
@@ -366,11 +364,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "TileMode.FlipX not yet supported on cairo")]
-#else
+
[Fact]
-#endif
public async Task ImageBrush_NoStretch_FlipX_TopLeftDest()
{
Decorator target = new Decorator
@@ -393,12 +388,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "TileMode.FlipY not yet supported on cairo")]
-#else
+
[Fact]
-#endif
public async Task ImageBrush_NoStretch_FlipY_TopLeftDest()
{
Decorator target = new Decorator
diff --git a/tests/Avalonia.RenderTests/Media/LinearGradientBrushTests.cs b/tests/Avalonia.RenderTests/Media/LinearGradientBrushTests.cs
index e7889672b9..062c7d88f5 100644
--- a/tests/Avalonia.RenderTests/Media/LinearGradientBrushTests.cs
+++ b/tests/Avalonia.RenderTests/Media/LinearGradientBrushTests.cs
@@ -10,9 +10,7 @@ using System.Text;
using System.Threading.Tasks;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Media
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Media
diff --git a/tests/Avalonia.RenderTests/Media/RadialGradientBrushTests.cs b/tests/Avalonia.RenderTests/Media/RadialGradientBrushTests.cs
index 383c8ee0f8..b3e214f863 100644
--- a/tests/Avalonia.RenderTests/Media/RadialGradientBrushTests.cs
+++ b/tests/Avalonia.RenderTests/Media/RadialGradientBrushTests.cs
@@ -10,9 +10,7 @@ using System.Text;
using System.Threading.Tasks;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Media
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Media
diff --git a/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs b/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs
index 9ec901535a..60589f6a00 100644
--- a/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs
+++ b/tests/Avalonia.RenderTests/Media/VisualBrushTests.cs
@@ -9,9 +9,7 @@ using Avalonia.Media;
using Avalonia.Media.Imaging;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Media
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Media
@@ -85,10 +83,8 @@ namespace Avalonia.Direct2D1.RenderTests.Media
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#elif AVALONIA_SKIA_SKIP_FAIL
+
+#if AVALONIA_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -142,9 +138,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#elif AVALONIA_SKIA_SKIP_FAIL
+#if AVALONIA_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -171,9 +165,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#elif AVALONIA_SKIA_SKIP_FAIL
+#if AVALONIA_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -200,9 +192,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#elif AVALONIA_SKIA_SKIP_FAIL
+#if AVALONIA_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -253,9 +243,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#elif AVALONIA_SKIA_SKIP_FAIL
+#if AVALONIA_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -337,9 +325,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "TileMode.FlipX not yet supported on cairo")]
-#elif AVALONIA_SKIA_SKIP_FAIL
+#if AVALONIA_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -367,9 +353,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "TileMode.FlipY not yet supported on cairo")]
-#elif AVALONIA_SKIA_SKIP_FAIL
+#if AVALONIA_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -397,9 +381,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#elif AVALONIA_SKIA_SKIP_FAIL
+#if AVALONIA_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
@@ -427,9 +409,7 @@ namespace Avalonia.Direct2D1.RenderTests.Media
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Font scaling currently broken on cairo")]
-#elif AVALONIA_SKIA_SKIP_FAIL
+#if AVALONIA_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
diff --git a/tests/Avalonia.RenderTests/OpacityMaskTests.cs b/tests/Avalonia.RenderTests/OpacityMaskTests.cs
index b49f04f3ee..b53d9a70b1 100644
--- a/tests/Avalonia.RenderTests/OpacityMaskTests.cs
+++ b/tests/Avalonia.RenderTests/OpacityMaskTests.cs
@@ -7,9 +7,7 @@ using System.Text;
using Xunit;
using System.Threading.Tasks;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests
diff --git a/tests/Avalonia.RenderTests/SVGPathTests.cs b/tests/Avalonia.RenderTests/SVGPathTests.cs
new file mode 100644
index 0000000000..d1ed0ae1cf
--- /dev/null
+++ b/tests/Avalonia.RenderTests/SVGPathTests.cs
@@ -0,0 +1,53 @@
+using Avalonia.Controls;
+using Avalonia.Controls.Shapes;
+using Avalonia.Media;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Xunit;
+using System.Threading.Tasks;
+
+#if AVALONIA_CAIRO
+namespace Avalonia.Cairo.RenderTests
+#elif AVALONIA_SKIA
+namespace Avalonia.Skia.RenderTests
+#else
+namespace Avalonia.Direct2D1.RenderTests
+#endif
+{
+ public class SVGPathTests : TestBase
+ {
+ public SVGPathTests()
+ :base("SVGPath")
+ {
+ }
+
+ [Fact]
+ public async Task SVGPath()
+ {
+ var target = new Canvas
+ {
+ Background = Brushes.Yellow,
+ Width = 76,
+ Height = 76,
+ Children = new Avalonia.Controls.Controls
+ {
+ new Path
+ {
+ Width = 32,
+ Height = 40,
+ [Canvas.LeftProperty] = 23,
+ [Canvas.TopProperty] = 18,
+ Stretch = Stretch.Fill,
+ Fill = Brushes.Black,
+ //Coffee Maker by Becris from the Noun Project
+ Data = StreamGeometry.Parse("M5,51v4c0,1.654,1.346,3,3,3h7v3c0,0.552,0.447,1,1,1h8c0.553,0,1-0.448,1-1v-3h18v3c0,0.552,0.447,1,1,1h8 c0.553,0,1-0.448,1-1v-3c2.757,0,5-2.243,5-5V13V7c0-2.757-2.243-5-5-5H11C8.243,2,6,4.243,6,7v2c0,2.757,2.243,5,5,5h1.743 l-2.717,11.775c-0.068,0.297,0.002,0.609,0.192,0.848C10.407,26.861,10.695,27,11,27h4c0.431,0,0.812-0.275,0.948-0.684L18.721,18 h1.499l1.811,7.243C22.142,25.688,22.541,26,23,26h12c0.459,0,0.858-0.312,0.97-0.757L37.78,18h6.658l-3.235,29.11 C41.147,47.618,40.72,48,40.21,48h-4.167c0.873-1.159,1.203-2.622,0.897-4.047L35,34.895v-2.481l2.707-2.707 c0.286-0.286,0.372-0.716,0.217-1.09C37.77,28.244,37.404,28,37,28H22c-0.553,0-1,0.448-1,1v0.719l-2.758-0.689 c-0.443-0.111-0.906,0.094-1.123,0.496l-7,13l1.762,0.948l6.631-12.315L21,31.781v3.115l-1.94,9.057 c-0.306,1.426,0.025,2.889,0.897,4.048H8C6.346,48,5,49.346,5,51z M23,60h-6v-2h6V60z M51,60h-6v-2h6V60z M8,9V7 c0-1.654,1.346-3,3-3h42c1.654,0,3,1.346,3,3v5H46H14h-3C9.346,12,8,10.654,8,9z M34.219,24H23.781l-1.5-6h13.438L34.219,24z M44.66,16H37H21h-3c-0.431,0-0.812,0.275-0.948,0.684L14.279,25h-2.022l2.539-11h30.087l-0.185,1.662L44.66,16z M43.191,47.331 L46.896,14H56v39c0,1.654-1.346,3-3,3h-1h-8H24h-8H8c-0.552,0-1-0.449-1-1v-4c0-0.551,0.448-1,1-1h15.948h8.104h8.158 C41.741,50,43.022,48.853,43.191,47.331z M23,30h11.586l-1.293,1.293C33.105,31.48,33,31.735,33,32v2H23V30z M21.614,46.886 c-0.571-0.708-0.79-1.624-0.6-2.514L22.809,36h10.383l1.794,8.372c0.19,0.89-0.028,1.806-0.6,2.514 C33.813,47.594,32.963,48,32.052,48h-8.104C23.037,48,22.187,47.594,21.614,46.886z")
+ }
+ }
+ };
+
+ await RenderToFile(target);
+ CompareImages();
+ }
+ }
+}
diff --git a/tests/Avalonia.RenderTests/Shapes/EllipseTests.cs b/tests/Avalonia.RenderTests/Shapes/EllipseTests.cs
index 9687e817e3..257607d5b5 100644
--- a/tests/Avalonia.RenderTests/Shapes/EllipseTests.cs
+++ b/tests/Avalonia.RenderTests/Shapes/EllipseTests.cs
@@ -7,9 +7,7 @@ using Avalonia.Controls.Shapes;
using Avalonia.Media;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Shapes
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Shapes
diff --git a/tests/Avalonia.RenderTests/Shapes/LineTests.cs b/tests/Avalonia.RenderTests/Shapes/LineTests.cs
index a5897a2948..a30882fb0d 100644
--- a/tests/Avalonia.RenderTests/Shapes/LineTests.cs
+++ b/tests/Avalonia.RenderTests/Shapes/LineTests.cs
@@ -7,9 +7,7 @@ using Avalonia.Controls.Shapes;
using Avalonia.Media;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Shapes
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Shapes
@@ -21,12 +19,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
: base(@"Shapes\Line")
{
}
-
-#if !AVALONIA_CAIRO
+
[Fact]
-#else
- [Fact(Skip = "Fails on Cairo")]
-#endif
public async Task Line_1px_Stroke()
{
Decorator target = new Decorator
@@ -45,12 +39,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if !AVALONIA_CAIRO
+
[Fact]
-#else
- [Fact(Skip = "Fails on Cairo")]
-#endif
public async Task Line_1px_Stroke_Reversed()
{
Decorator target = new Decorator
diff --git a/tests/Avalonia.RenderTests/Shapes/PathTests.cs b/tests/Avalonia.RenderTests/Shapes/PathTests.cs
index 0fc3246635..9a580794f8 100644
--- a/tests/Avalonia.RenderTests/Shapes/PathTests.cs
+++ b/tests/Avalonia.RenderTests/Shapes/PathTests.cs
@@ -7,9 +7,7 @@ using Avalonia.Layout;
using Avalonia.Media;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Shapes
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Shapes
@@ -25,11 +23,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
{
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Broken in Cairo: waiting for Skia")]
-#else
+
[Fact]
-#endif
public async Task Line_Absolute()
{
Decorator target = new Decorator
@@ -49,12 +44,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Broken in Cairo: waiting for Skia")]
-#else
+
[Fact]
-#endif
public async Task Line_Relative()
{
Decorator target = new Decorator
@@ -74,12 +65,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Broken in Cairo: waiting for Skia")]
-#else
+
[Fact]
-#endif
public async Task HorizontalLine_Absolute()
{
Decorator target = new Decorator
@@ -99,12 +86,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Broken in Cairo: waiting for Skia")]
-#else
+
[Fact]
-#endif
public async Task HorizontalLine_Relative()
{
Decorator target = new Decorator
@@ -124,12 +107,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Broken in Cairo: waiting for Skia")]
-#else
+
[Fact]
-#endif
public async Task VerticalLine_Absolute()
{
Decorator target = new Decorator
@@ -149,12 +128,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Broken in Cairo: waiting for Skia")]
-#else
+
[Fact]
-#endif
public async Task VerticalLine_Relative()
{
Decorator target = new Decorator
@@ -174,12 +149,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Broken in Cairo: waiting for Skia")]
-#else
+
[Fact]
-#endif
public async Task CubicBezier_Absolute()
{
Decorator target = new Decorator
@@ -200,12 +171,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Broken in Cairo: waiting for Skia")]
-#else
+
[Fact]
-#endif
public async Task CubicBezier_Relative()
{
Decorator target = new Decorator
@@ -226,12 +193,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Broken in Cairo: waiting for Skia")]
-#else
+
[Fact]
-#endif
public async Task Arc_Absolute()
{
Decorator target = new Decorator
@@ -252,12 +215,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Broken in Cairo: waiting for Skia")]
-#else
+
[Fact]
-#endif
public async Task Arc_Relative()
{
Decorator target = new Decorator
@@ -375,9 +334,7 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Path with StrokeDashCap, StrokeStartLineCap, StrokeEndLineCap rendering is not implemented in Cairo yet")]
-#elif AVALONIA_SKIA_SKIP_FAIL
+#if AVALONIA_SKIA_SKIP_FAIL
[Fact(Skip = "FIXME")]
#else
[Fact]
diff --git a/tests/Avalonia.RenderTests/Shapes/PolygonTests.cs b/tests/Avalonia.RenderTests/Shapes/PolygonTests.cs
index 415f0b4e85..aae5706810 100644
--- a/tests/Avalonia.RenderTests/Shapes/PolygonTests.cs
+++ b/tests/Avalonia.RenderTests/Shapes/PolygonTests.cs
@@ -7,9 +7,7 @@ using Avalonia.Controls.Shapes;
using Avalonia.Media;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Shapes
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Shapes
@@ -21,12 +19,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
: base(@"Shapes\Polygon")
{
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Caused by cairo bug")]
-#else
+
[Fact]
-#endif
public async Task Polygon_1px_Stroke()
{
Decorator target = new Decorator
@@ -48,11 +42,7 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
CompareImages();
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Caused by cairo bug")]
-#else
[Fact]
-#endif
public async Task Polygon_NonUniformFill()
{
Decorator target = new Decorator
diff --git a/tests/Avalonia.RenderTests/Shapes/PolylineTests.cs b/tests/Avalonia.RenderTests/Shapes/PolylineTests.cs
index 684529dd4b..3b586d55ea 100644
--- a/tests/Avalonia.RenderTests/Shapes/PolylineTests.cs
+++ b/tests/Avalonia.RenderTests/Shapes/PolylineTests.cs
@@ -7,9 +7,7 @@ using Avalonia.Controls.Shapes;
using Avalonia.Media;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Shapes
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Shapes
@@ -22,11 +20,7 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
{
}
-#if AVALONIA_CAIRO
- [Fact(Skip = "Caused by cairo bug")]
-#else
[Fact]
-#endif
public async Task Polyline_1px_Stroke()
{
var polylinePoints = new Point[] { new Point(0, 0), new Point(5, 0), new Point(6, -2), new Point(7, 3), new Point(8, -3),
@@ -49,12 +43,8 @@ namespace Avalonia.Direct2D1.RenderTests.Shapes
await RenderToFile(target);
CompareImages();
}
-
-#if AVALONIA_CAIRO
- [Fact(Skip = "Caused by cairo bug")]
-#else
+
[Fact]
-#endif
public async Task Polyline_10px_Stroke_PenLineJoin()
{
var polylinePoints = new Point[] { new Point(0, 0), new Point(5, 0), new Point(6, -2), new Point(7, 3), new Point(8, -3),
diff --git a/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs b/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs
index 5fa424103f..d48765a360 100644
--- a/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs
+++ b/tests/Avalonia.RenderTests/Shapes/RectangleTests.cs
@@ -7,9 +7,7 @@ using Avalonia.Controls.Shapes;
using Avalonia.Media;
using Xunit;
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests.Shapes
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests.Shapes
diff --git a/tests/Avalonia.RenderTests/TestBase.cs b/tests/Avalonia.RenderTests/TestBase.cs
index ca00ed1595..409870ed0f 100644
--- a/tests/Avalonia.RenderTests/TestBase.cs
+++ b/tests/Avalonia.RenderTests/TestBase.cs
@@ -14,17 +14,13 @@ using System.Threading.Tasks;
using System;
using System.Threading;
using Avalonia.Threading;
-#if AVALONIA_CAIRO
-using Avalonia.Cairo;
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
using Avalonia.Skia;
#else
using Avalonia.Direct2D1;
#endif
-#if AVALONIA_CAIRO
-namespace Avalonia.Cairo.RenderTests
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
namespace Avalonia.Skia.RenderTests
#else
namespace Avalonia.Direct2D1.RenderTests
@@ -37,9 +33,7 @@ namespace Avalonia.Direct2D1.RenderTests
static TestBase()
{
-#if AVALONIA_CAIRO
- CairoPlatform.Initialize();
-#elif AVALONIA_SKIA
+#if AVALONIA_SKIA
SkiaPlatform.Initialize();
#else
Direct2D1Platform.Initialize();
diff --git a/tests/Avalonia.RenderTests/app.config b/tests/Avalonia.RenderTests/app.config
deleted file mode 100644
index 24ccddee3e..0000000000
--- a/tests/Avalonia.RenderTests/app.config
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_1px_Border.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_1px_Border.expected.png
deleted file mode 100644
index 24239d5799..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_1px_Border.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_2px_Border.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_2px_Border.expected.png
deleted file mode 100644
index cebe42f3df..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_2px_Border.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Bottom_Aligns_Content.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Bottom_Aligns_Content.expected.png
deleted file mode 100644
index 97ad212701..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Bottom_Aligns_Content.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Brush_Offsets_Content.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Brush_Offsets_Content.expected.png
deleted file mode 100644
index d1c13a9e57..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Brush_Offsets_Content.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Centers_Content_Horizontally.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Centers_Content_Horizontally.expected.png
deleted file mode 100644
index 77a7601e13..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Centers_Content_Horizontally.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Centers_Content_Vertically.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Centers_Content_Vertically.expected.png
deleted file mode 100644
index ff0c7b5984..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Centers_Content_Vertically.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Fill.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Fill.expected.png
deleted file mode 100644
index 8e08d02f66..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Fill.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Left_Aligns_Content.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Left_Aligns_Content.expected.png
deleted file mode 100644
index 5f0166406b..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Left_Aligns_Content.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Margin_Offsets_Content.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Margin_Offsets_Content.expected.png
deleted file mode 100644
index 1fa36969e5..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Margin_Offsets_Content.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Nested_Rotate.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Nested_Rotate.expected.png
deleted file mode 100644
index 54d3bb9cec..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Nested_Rotate.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Padding_Offsets_Content.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Padding_Offsets_Content.expected.png
deleted file mode 100644
index 1fa36969e5..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Padding_Offsets_Content.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Right_Aligns_Content.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Right_Aligns_Content.expected.png
deleted file mode 100644
index 3ee5e25b7c..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Right_Aligns_Content.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Horizontally.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Horizontally.expected.png
deleted file mode 100644
index e255633894..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Horizontally.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Vertically.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Vertically.expected.png
deleted file mode 100644
index e255633894..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Stretches_Content_Vertically.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Border/Border_Top_Aligns_Content.expected.png b/tests/TestFiles/Cairo/Controls/Border/Border_Top_Aligns_Content.expected.png
deleted file mode 100644
index ca04ee9121..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Border/Border_Top_Aligns_Content.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/CustomRender/Clip.expected.png b/tests/TestFiles/Cairo/Controls/CustomRender/Clip.expected.png
deleted file mode 100644
index c64045d17e..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/CustomRender/Clip.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/CustomRender/GeometryClip.expected.png b/tests/TestFiles/Cairo/Controls/CustomRender/GeometryClip.expected.png
deleted file mode 100644
index bb39bf62ca..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/CustomRender/GeometryClip.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/CustomRender/Opacity.expected.png b/tests/TestFiles/Cairo/Controls/CustomRender/Opacity.expected.png
deleted file mode 100644
index 66d12819f4..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/CustomRender/Opacity.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/CustomRender/OpacityMask.expected.png b/tests/TestFiles/Cairo/Controls/CustomRender/OpacityMask.expected.png
deleted file mode 100644
index 212a4f1eaa..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/CustomRender/OpacityMask.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_Fill.expected.png b/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_Fill.expected.png
deleted file mode 100644
index 2980a94b70..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_Fill.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_None.expected.png b/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_None.expected.png
deleted file mode 100644
index 58eebe2251..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_None.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_Uniform.expected.png b/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_Uniform.expected.png
deleted file mode 100644
index 588c6515c5..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_Uniform.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_UniformToFill.expected.png b/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_UniformToFill.expected.png
deleted file mode 100644
index 98d421f98c..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Image/Image_Stretch_UniformToFill.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Controls/Image/test.png b/tests/TestFiles/Cairo/Controls/Image/test.png
deleted file mode 100644
index ed4f82f847..0000000000
Binary files a/tests/TestFiles/Cairo/Controls/Image/test.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/GeometryClipping/Geometry_Clip_Clips_Path.expected.png b/tests/TestFiles/Cairo/GeometryClipping/Geometry_Clip_Clips_Path.expected.png
deleted file mode 100644
index 1218293ab3..0000000000
Binary files a/tests/TestFiles/Cairo/GeometryClipping/Geometry_Clip_Clips_Path.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Fill_NoTile.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Fill_NoTile.expected.png
deleted file mode 100644
index 73d147bf77..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Fill_NoTile.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipXY_TopLeftDest.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipXY_TopLeftDest.expected.png
deleted file mode 100644
index f99f56ec14..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipXY_TopLeftDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipX_TopLeftDest.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipX_TopLeftDest.expected.png
deleted file mode 100644
index 4d89f995c4..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipX_TopLeftDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipY_TopLeftDest.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipY_TopLeftDest.expected.png
deleted file mode 100644
index 75c53f0c28..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_FlipY_TopLeftDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png
deleted file mode 100644
index a13b34ba2d..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_Center.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_Center.expected.png
deleted file mode 100644
index 14704f751c..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_Center.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png
deleted file mode 100644
index 7ebac13d30..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png
deleted file mode 100644
index dd41cb98c3..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png
deleted file mode 100644
index ab9f2b76e3..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png
deleted file mode 100644
index fea4a2a8e9..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png
deleted file mode 100644
index afd39c2360..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Fill.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Fill.expected.png
deleted file mode 100644
index c38dcfbcfd..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Fill.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Small_Image.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Small_Image.expected.png
deleted file mode 100644
index 669da6ca1a..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Small_Image.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_UniformToFill.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_UniformToFill.expected.png
deleted file mode 100644
index 59e9aea5df..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_UniformToFill.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_UniformToFill_NoTile.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_UniformToFill_NoTile.expected.png
deleted file mode 100644
index e173fa6cee..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_UniformToFill_NoTile.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Uniform_NoTile.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Uniform_NoTile.expected.png
deleted file mode 100644
index de73af8170..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Uniform_NoTile.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/github_icon.png b/tests/TestFiles/Cairo/Media/ImageBrush/github_icon.png
deleted file mode 100644
index cd053c5fe1..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/github_icon.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/github_icon_small.png b/tests/TestFiles/Cairo/Media/ImageBrush/github_icon_small.png
deleted file mode 100644
index 5799bdfdce..0000000000
Binary files a/tests/TestFiles/Cairo/Media/ImageBrush/github_icon_small.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Horizontal_Fill.expected.png b/tests/TestFiles/Cairo/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Horizontal_Fill.expected.png
deleted file mode 100644
index 9d11e8b233..0000000000
Binary files a/tests/TestFiles/Cairo/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Horizontal_Fill.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Vertical_Fill.expected.png b/tests/TestFiles/Cairo/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Vertical_Fill.expected.png
deleted file mode 100644
index d09c0c30b4..0000000000
Binary files a/tests/TestFiles/Cairo/Media/LinearGradientBrush/LinearGradientBrush_RedBlue_Vertical_Fill.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/RadialGradientBrush/RadialGradientBrush_RedBlue.expected.png b/tests/TestFiles/Cairo/Media/RadialGradientBrush/RadialGradientBrush_RedBlue.expected.png
deleted file mode 100644
index 871a90caf3..0000000000
Binary files a/tests/TestFiles/Cairo/Media/RadialGradientBrush/RadialGradientBrush_RedBlue.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png
deleted file mode 100644
index 842e541de9..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_Fill_NoTile.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipXY_TopLeftDest.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipXY_TopLeftDest.expected.png
deleted file mode 100644
index c719a0328b..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipXY_TopLeftDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipX_TopLeftDest.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipX_TopLeftDest.expected.png
deleted file mode 100644
index c64b88dc68..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipX_TopLeftDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipY_TopLeftDest.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipY_TopLeftDest.expected.png
deleted file mode 100644
index a6e8b0688c..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_FlipY_TopLeftDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png
deleted file mode 100644
index a13b34ba2d..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_BottomRight.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png
deleted file mode 100644
index 9150e62edf..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_Center.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png
deleted file mode 100644
index 7ebac13d30..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_Alignment_TopLeft.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png
deleted file mode 100644
index c8ac46f84c..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png
deleted file mode 100644
index ab9f2b76e3..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png
deleted file mode 100644
index fea4a2a8e9..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_NoTile_BottomRightQuarterSource_BottomRightQuarterDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png
deleted file mode 100644
index afd39c2360..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_NoStretch_Tile_BottomRightQuarterSource_CenterQuarterDest.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_UniformToFill_NoTile.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_UniformToFill_NoTile.expected.png
deleted file mode 100644
index f56ff5f5f6..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_UniformToFill_NoTile.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_Uniform_NoTile.expected.png b/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_Uniform_NoTile.expected.png
deleted file mode 100644
index d0a982fcd5..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/VisualBrush_Uniform_NoTile.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Media/VisualBrush/github_icon.png b/tests/TestFiles/Cairo/Media/VisualBrush/github_icon.png
deleted file mode 100644
index cd053c5fe1..0000000000
Binary files a/tests/TestFiles/Cairo/Media/VisualBrush/github_icon.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/OpacityMask/Opacity_Mask_Masks_Element.expected.png b/tests/TestFiles/Cairo/OpacityMask/Opacity_Mask_Masks_Element.expected.png
deleted file mode 100644
index f57c675b7a..0000000000
Binary files a/tests/TestFiles/Cairo/OpacityMask/Opacity_Mask_Masks_Element.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/SVGPath/SVGPath.expected.png b/tests/TestFiles/Cairo/SVGPath/SVGPath.expected.png
new file mode 100644
index 0000000000..9830048810
Binary files /dev/null and b/tests/TestFiles/Cairo/SVGPath/SVGPath.expected.png differ
diff --git a/tests/TestFiles/Cairo/Shapes/Ellipse/Circle_1px_Stroke.expected.png b/tests/TestFiles/Cairo/Shapes/Ellipse/Circle_1px_Stroke.expected.png
deleted file mode 100644
index e637006545..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Ellipse/Circle_1px_Stroke.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke.expected.png b/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke.expected.png
deleted file mode 100644
index f0a6a9b109..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Reversed.expected.png b/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Reversed.expected.png
deleted file mode 100644
index 9ed7e713a9..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Reversed.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Vertical.expected.png b/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Vertical.expected.png
deleted file mode 100644
index 845961351c..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Line/Line_1px_Stroke_Vertical.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/Arc_Absolute.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Arc_Absolute.expected.png
deleted file mode 100644
index 113cc908e6..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/Arc_Absolute.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/Arc_Relative.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Arc_Relative.expected.png
deleted file mode 100644
index 113cc908e6..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/Arc_Relative.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Absolute.expected.png b/tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Absolute.expected.png
deleted file mode 100644
index 8c8f5350ee..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Absolute.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Relative.expected.png b/tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Relative.expected.png
deleted file mode 100644
index 8c8f5350ee..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/CubicBezier_Relative.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Absolute.expected.png b/tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Absolute.expected.png
deleted file mode 100644
index 546ffec3bb..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Absolute.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Relative.expected.png b/tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Relative.expected.png
deleted file mode 100644
index 546ffec3bb..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/HorizontalLine_Relative.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/Line_Absolute.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Line_Absolute.expected.png
deleted file mode 100644
index 4661a6a8c4..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/Line_Absolute.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/Path_100px_Triangle_Centered.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Path_100px_Triangle_Centered.expected.png
deleted file mode 100644
index dab965f988..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/Path_100px_Triangle_Centered.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/Path_Expander_With_Border.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Path_Expander_With_Border.expected.png
deleted file mode 100644
index 4a7f4c26b0..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/Path_Expander_With_Border.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/Path_Tick_Scaled.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Path_Tick_Scaled.expected.png
deleted file mode 100644
index cb4466a21f..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/Path_Tick_Scaled.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/Path_Tick_Scaled_Stroke_8px.expected.png b/tests/TestFiles/Cairo/Shapes/Path/Path_Tick_Scaled_Stroke_8px.expected.png
deleted file mode 100644
index 355edf84c2..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/Path_Tick_Scaled_Stroke_8px.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/VerticalLine_Absolute.expected.png b/tests/TestFiles/Cairo/Shapes/Path/VerticalLine_Absolute.expected.png
deleted file mode 100644
index b2e2beafd4..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/VerticalLine_Absolute.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Path/VerticalLine_Relative.expected.png b/tests/TestFiles/Cairo/Shapes/Path/VerticalLine_Relative.expected.png
deleted file mode 100644
index ff36de2a5c..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Path/VerticalLine_Relative.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Polygon/Polygon_1px_Stroke.expected.png b/tests/TestFiles/Cairo/Shapes/Polygon/Polygon_1px_Stroke.expected.png
deleted file mode 100644
index f62be2d4bf..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Polygon/Polygon_1px_Stroke.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Polygon/Polygon_NonUniformFill.expected.png b/tests/TestFiles/Cairo/Shapes/Polygon/Polygon_NonUniformFill.expected.png
deleted file mode 100644
index 0888c74c30..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Polygon/Polygon_NonUniformFill.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Polyline/Polyline_10px_Stroke_PenLineJoin.expected.png b/tests/TestFiles/Cairo/Shapes/Polyline/Polyline_10px_Stroke_PenLineJoin.expected.png
deleted file mode 100644
index d908a572cb..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Polyline/Polyline_10px_Stroke_PenLineJoin.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Polyline/Polyline_1px_Stroke.expected.png b/tests/TestFiles/Cairo/Shapes/Polyline/Polyline_1px_Stroke.expected.png
deleted file mode 100644
index 7cbe87fa6c..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Polyline/Polyline_1px_Stroke.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_1px_Stroke.expected.png b/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_1px_Stroke.expected.png
deleted file mode 100644
index 24239d5799..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_1px_Stroke.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_2px_Stroke.expected.png b/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_2px_Stroke.expected.png
deleted file mode 100644
index cebe42f3df..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_2px_Stroke.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_Stroke_Fill.expected.png b/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_Stroke_Fill.expected.png
deleted file mode 100644
index d1c13a9e57..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_Stroke_Fill.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_Stroke_Fill_ClipToBounds.expected.png b/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_Stroke_Fill_ClipToBounds.expected.png
deleted file mode 100644
index d1c13a9e57..0000000000
Binary files a/tests/TestFiles/Cairo/Shapes/Rectangle/Rectangle_Stroke_Fill_ClipToBounds.expected.png and /dev/null differ
diff --git a/tests/TestFiles/Direct2D1/SVGPath/SVGPath.expected.png b/tests/TestFiles/Direct2D1/SVGPath/SVGPath.expected.png
new file mode 100644
index 0000000000..9830048810
Binary files /dev/null and b/tests/TestFiles/Direct2D1/SVGPath/SVGPath.expected.png differ
diff --git a/tests/TestFiles/Skia/SVGPath/SVGPath.expected.png b/tests/TestFiles/Skia/SVGPath/SVGPath.expected.png
new file mode 100644
index 0000000000..9830048810
Binary files /dev/null and b/tests/TestFiles/Skia/SVGPath/SVGPath.expected.png differ