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/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 surfaces) - { - var accessor = surfaces?.OfType>().FirstOrDefault(); - if(accessor!=null) - return new RenderTarget(accessor); - - throw new NotSupportedException(string.Format( - "Don't know how to create a Cairo renderer from any of the provided surfaces.")); - } - - public IRenderTargetBitmapImpl CreateRenderTargetBitmap(int width, int height, double dpiX, double dpiY) - { - return new RenderTargetBitmapImpl(new ImageSurface(Format.Argb32, width, height)); - } - - public IStreamGeometryImpl CreateStreamGeometry() - { - return new StreamGeometryImpl(); - } - - public IBitmapImpl LoadBitmap(string fileName) - { - var pixbuf = new Gdk.Pixbuf(fileName); - - return new BitmapImpl(pixbuf); - } - - public IBitmapImpl LoadBitmap(Stream stream) - { - var pixbuf = new Gdk.Pixbuf(stream); - - return new BitmapImpl(pixbuf); - } - - private static Pango.Context CreatePangoContext() - { - Gtk.Application.Init(); - return new Gtk.Invisible().CreatePangoContext(); - } - - public IBitmapImpl LoadBitmap(PixelFormat format, IntPtr data, int width, int height, int stride) - { - throw new NotSupportedException("No proper control over pixel format with Cairo, use Skia backend instead"); - } - - public IWritableBitmapImpl CreateWritableBitmap(int width, int height, PixelFormat? fmt) - { - throw new NotSupportedException("No proper support with Cairo, use Skia backend instead"); - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Media/BrushImpl.cs b/src/Gtk/Avalonia.Cairo/Media/BrushImpl.cs deleted file mode 100644 index 7008c7a66f..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/BrushImpl.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using global::Cairo; - -namespace Avalonia.Cairo -{ - public abstract class BrushImpl : IDisposable - { - public Pattern PlatformBrush { get; protected set; } - - public void Dispose() - { - if (this.PlatformBrush != null) - this.PlatformBrush.Dispose(); - } - } -} - diff --git a/src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs b/src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs deleted file mode 100644 index 99b0a2ec73..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/DrawingContext.cs +++ /dev/null @@ -1,415 +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 System.Reactive.Disposables; -using Avalonia.Cairo.Media.Imaging; -using Avalonia.Media; -using Avalonia.Platform; -using Avalonia.Rendering; -// ReSharper disable PossibleNullReferenceException - -namespace Avalonia.Cairo.Media -{ - using Cairo = global::Cairo; - - /// - /// Draws using Cairo. - /// - public class DrawingContext : IDrawingContextImpl, IDisposable - { - private readonly Cairo.Context _context; - private readonly IVisualBrushRenderer _visualBrushRenderer; - private readonly Stack _maskStack = new Stack(); - - /// - /// Initializes a new instance of the class. - /// - /// The target surface. - public DrawingContext(Cairo.Surface surface, IVisualBrushRenderer visualBrushRenderer) - { - _context = new Cairo.Context(surface); - _visualBrushRenderer = visualBrushRenderer; - } - - /// - /// Initializes a new instance of the class. - /// - /// The GDK drawable. - public DrawingContext(Gdk.Drawable drawable, IVisualBrushRenderer visualBrushRenderer) - { - _context = Gdk.CairoHelper.Create(drawable); - _visualBrushRenderer = visualBrushRenderer; - } - - private Matrix _transform = Matrix.Identity; - /// - /// Gets the current transform of the drawing context. - /// - public Matrix Transform - { - get { return _transform; } - set - { - _transform = value; - _context.Matrix = value.ToCairo(); - - } - } - - public void Clear(Color color) - { - _context.SetSourceRGBA(color.R, color.G, color.B, color.A); - _context.Paint(); - } - - /// - /// Ends a draw operation. - /// - public void Dispose() - { - _context.Dispose(); - } - - /// - /// Draws a bitmap image. - /// - /// The bitmap image. - /// The opacity to draw with. - /// The rect in the image to draw. - /// The rect in the output to draw to. - public void DrawImage(IBitmapImpl bitmap, double opacity, Rect sourceRect, Rect destRect) - { - var pixbuf = bitmap as Gdk.Pixbuf; - var rtb = bitmap as RenderTargetBitmapImpl; - var size = new Size(pixbuf?.Width ?? rtb.PixelWidth, pixbuf?.Height ?? rtb.PixelHeight); - var scale = new Vector(destRect.Width / sourceRect.Width, destRect.Height / sourceRect.Height); - - _context.Save(); - _context.Scale(scale.X, scale.Y); - destRect /= scale; - - _context.PushGroup(); - - if (pixbuf != null) - { - Gdk.CairoHelper.SetSourcePixbuf( - _context, - pixbuf, - -sourceRect.X + destRect.X, - -sourceRect.Y + destRect.Y); - } - else - { - _context.SetSourceSurface( - rtb.Surface, - (int)(-sourceRect.X + destRect.X), - (int)(-sourceRect.Y + destRect.Y)); - } - - _context.Rectangle(destRect.ToCairo()); - _context.Fill(); - _context.PopGroupToSource(); - _context.PaintWithAlpha(opacityOverride); - _context.Restore(); - } - - public void DrawImage(IBitmapImpl source, IBrush opacityMask, Rect opacityMaskRect, Rect destRect) - { - PushOpacityMask(opacityMask, opacityMaskRect); - DrawImage(source, 1, new Rect(0, 0, source.PixelWidth, source.PixelHeight), destRect); - PopOpacityMask(); - } - - /// - /// Draws a line. - /// - /// The stroke pen. - /// The first point of the line. - /// The second point of the line. - public void DrawLine(Pen pen, Point p1, Point p2) - { - var size = new Rect(p1, p2).Size; - - using (var p = SetPen(pen, size)) - { - _context.MoveTo(p1.ToCairo()); - _context.LineTo(p2.ToCairo()); - _context.Stroke(); - } - } - - /// - /// Draws a geometry. - /// - /// The fill brush. - /// The stroke pen. - /// The geometry. - public void DrawGeometry(IBrush brush, Pen pen, IGeometryImpl geometry) - { - var impl = geometry as StreamGeometryImpl; - - var oldMatrix = Transform; - Transform = impl.Transform * Transform; - - - if (brush != null) - { - _context.AppendPath(impl.Path); - using (var b = SetBrush(brush, geometry.Bounds.Size)) - { - _context.FillRule = impl.FillRule == FillRule.EvenOdd - ? Cairo.FillRule.EvenOdd - : Cairo.FillRule.Winding; - - if (pen != null) - _context.FillPreserve(); - else - _context.Fill(); - } - } - Transform = oldMatrix; - - if (pen != null) - { - _context.AppendPath(impl.Path); - using (var p = SetPen(pen, geometry.Bounds.Size)) - { - _context.Stroke(); - } - } - } - - /// - /// Draws the outline of a rectangle. - /// - /// The pen. - /// The rectangle bounds. - public void DrawRectangle(Pen pen, Rect rect, float cornerRadius) - { - using (var p = SetPen(pen, rect.Size)) - { - _context.Rectangle(rect.ToCairo()); - _context.Stroke(); - } - } - - /// - /// Draws text. - /// - /// The foreground brush. - /// The upper-left corner of the text. - /// The text. - public void DrawText(IBrush foreground, Point origin, IFormattedTextImpl text) - { - var layout = ((FormattedTextImpl)text).Layout; - _context.MoveTo(origin.X, origin.Y); - - using (var b = SetBrush(foreground, new Size(0, 0))) - { - Pango.CairoHelper.ShowLayout(_context, layout); - } - } - - /// - /// Draws a filled rectangle. - /// - /// The brush. - /// The rectangle bounds. - public void FillRectangle(IBrush brush, Rect rect, float cornerRadius) - { - using (var b = SetBrush(brush, rect.Size)) - { - _context.Rectangle(rect.ToCairo()); - _context.Fill(); - } - } - - /// - /// Pushes a clip rectange. - /// - /// The clip rectangle. - /// A disposable used to undo the clip rectangle. - public void PushClip(Rect clip) - { - _context.Save(); - _context.Rectangle(clip.ToCairo()); - _context.Clip(); - } - - public void PopClip() - { - _context.Restore(); - } - - readonly Stack _opacityStack = new Stack(); - - /// - /// Pushes an opacity value. - /// - /// The opacity. - /// A disposable used to undo the opacity. - public void PushOpacity(double opacity) - { - _opacityStack.Push(opacityOverride); - - if (opacity < 1.0f) - opacityOverride *= opacity; - - } - - public void PopOpacity() - { - opacityOverride = _opacityStack.Pop(); - } - - /// - /// Pushes a matrix transformation. - /// - /// The matrix - /// A disposable used to undo the transformation. - public IDisposable PushTransform(Matrix matrix) - { - _context.Save(); - _context.Transform(matrix.ToCairo()); - - return Disposable.Create(() => - { - _context.Restore(); - }); - } - - private double opacityOverride = 1.0f; - - private IDisposable SetBrush(IBrush brush, Size destinationSize) - { - _context.Save(); - - BrushImpl impl = CreateBrushImpl(brush, destinationSize); - - _context.SetSource(impl.PlatformBrush); - return Disposable.Create(() => - { - impl.Dispose(); - _context.Restore(); - }); - } - - private BrushImpl CreateBrushImpl(IBrush brush, Size destinationSize) - { - var solid = brush as ISolidColorBrush; - var linearGradientBrush = brush as ILinearGradientBrush; - var radialGradientBrush = brush as IRadialGradientBrush; - var imageBrush = brush as IImageBrush; - var visualBrush = brush as IVisualBrush; - BrushImpl impl = null; - - if (solid != null) - { - impl = new SolidColorBrushImpl(solid, opacityOverride); - } - else if (linearGradientBrush != null) - { - impl = new LinearGradientBrushImpl(linearGradientBrush, destinationSize); - } - else if (radialGradientBrush != null) - { - impl = new RadialGradientBrushImpl(radialGradientBrush, destinationSize); - } - else if (imageBrush != null) - { - impl = new ImageBrushImpl(imageBrush, (BitmapImpl)imageBrush.Source.PlatformImpl, destinationSize); - } - else if (visualBrush != null) - { - if (_visualBrushRenderer != null) - { - var intermediateSize = _visualBrushRenderer.GetRenderTargetSize(visualBrush); - - if (intermediateSize.Width >= 1 && intermediateSize.Height >= 1) - { - using (var intermediate = new Cairo.ImageSurface(Cairo.Format.ARGB32, (int)intermediateSize.Width, (int)intermediateSize.Height)) - { - using (var ctx = new RenderTarget(intermediate).CreateDrawingContext(_visualBrushRenderer)) - { - ctx.Clear(Colors.Transparent); - _visualBrushRenderer.RenderVisualBrush(ctx, visualBrush); - } - - return new ImageBrushImpl( - visualBrush, - new RenderTargetBitmapImpl(intermediate), - destinationSize); - } - } - } - else - { - throw new NotSupportedException("No IVisualBrushRenderer was supplied to DrawingContextImpl."); - } - } - else - { - impl = new SolidColorBrushImpl(null, opacityOverride); - } - - return impl; - } - - private IDisposable SetPen(Pen pen, Size destinationSize) - { - if (pen.DashStyle != null) - { - if (pen.DashStyle.Dashes != null && pen.DashStyle.Dashes.Count > 0) - { - var cray = pen.DashStyle.Dashes.ToArray(); - _context.SetDash(cray, pen.DashStyle.Offset); - } - } - - _context.LineWidth = pen.Thickness; - _context.MiterLimit = pen.MiterLimit; - - // Line caps and joins are currently broken on Cairo. I've defaulted them to sensible defaults for now. - // Cairo does not have StartLineCap, EndLineCap, and DashCap properties, whereas Direct2D does. - // TODO: Figure out a solution for this. - _context.LineJoin = Cairo.LineJoin.Miter; - _context.LineCap = Cairo.LineCap.Butt; - - if (pen.Brush == null) - return Disposable.Empty; - - return SetBrush(pen.Brush, destinationSize); - } - - public void PushGeometryClip(IGeometryImpl clip) - { - _context.Save(); - _context.AppendPath(((StreamGeometryImpl)clip).Path); - _context.Clip(); - } - - public void PopGeometryClip() - { - _context.Restore(); - } - - public void PushOpacityMask(IBrush mask, Rect bounds) - { - _context.PushGroup(); - var impl = CreateBrushImpl(mask, bounds.Size); - _maskStack.Push(impl); - } - - public void PopOpacityMask() - { - _context.PopGroupToSource(); - var brushImpl = _maskStack.Pop(); - - _context.Mask(brushImpl.PlatformBrush); - brushImpl.Dispose(); - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Media/FormattedTextImpl.cs b/src/Gtk/Avalonia.Cairo/Media/FormattedTextImpl.cs deleted file mode 100644 index b8e4d1efec..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/FormattedTextImpl.cs +++ /dev/null @@ -1,146 +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 System.Text; -using Avalonia.Media; -using Avalonia.Platform; - -namespace Avalonia.Cairo.Media -{ - public class FormattedTextImpl : IFormattedTextImpl - { - private Size _constraint; - - static double CorrectScale(double input) - { - return input * 0.75; - } - - public FormattedTextImpl( - Pango.Context context, - string text, - Typeface typeface, - TextAlignment textAlignment, - TextWrapping wrapping, - Size constraint, - IReadOnlyList spans) - { - Contract.Requires(context != null); - Contract.Requires(text != null); - - Layout = new Pango.Layout(context); - Layout.SetText(text); - - Layout.FontDescription = new Pango.FontDescription - { - Family = typeface?.FontFamilyName ?? "monospace", - Size = Pango.Units.FromDouble(CorrectScale(typeface?.FontSize ?? 12)), - Style = (Pango.Style)(typeface?.Style ?? FontStyle.Normal), - Weight = (typeface?.Weight ?? FontWeight.Normal).ToCairo(), - }; - - Layout.Alignment = textAlignment.ToCairo(); - Layout.Attributes = new Pango.AttrList(); - Layout.Width = double.IsPositiveInfinity(constraint.Width) ? -1 : Pango.Units.FromDouble(constraint.Width); - - if (spans != null) - { - foreach (var span in spans) - { - if (span.ForegroundBrush is SolidColorBrush scb) - { - var color = new Pango.Color(); - color.Parse(string.Format("#{0}", scb.Color.ToString().Substring(3))); - - var brushAttr = new Pango.AttrForeground(color); - brushAttr.StartIndex = (uint)TextIndexToPangoIndex(span.StartIndex); - brushAttr.EndIndex = (uint)TextIndexToPangoIndex(span.StartIndex + span.Length); - - this.Layout.Attributes.Insert(brushAttr); - } - } - } - - Size = Measure(); - } - - public FormattedTextImpl(Pango.Layout layout) - { - Layout = layout; - Size = Measure(); - } - - public string Text => Layout.Text; - - public Size Constraint => _constraint; - - public Size Size { get; } - - public Pango.Layout Layout { get; } - - public IEnumerable GetLines() - { - return new FormattedTextLine[0]; - } - - public TextHitTestResult HitTestPoint(Point point) - { - int textPosition; - int trailing; - - var isInside = Layout.XyToIndex( - Pango.Units.FromDouble(point.X), - Pango.Units.FromDouble(point.Y), - out textPosition, - out trailing); - - textPosition = PangoIndexToTextIndex(textPosition); - - return new TextHitTestResult - { - IsInside = isInside, - TextPosition = textPosition, - IsTrailing = trailing == 0, - }; - } - - int PangoIndexToTextIndex(int pangoIndex) - { - return Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(Text), 0, Math.Min(pangoIndex, Text.Length)).Length; - } - - public Rect HitTestTextPosition(int index) - { - return Layout.IndexToPos(TextIndexToPangoIndex(index)).ToAvalonia(); - } - - int TextIndexToPangoIndex(int textIndex) - { - return Encoding.UTF8.GetByteCount(textIndex < Text.Length ? Text.Remove(textIndex) : Text); - } - - public IEnumerable HitTestTextRange(int index, int length) - { - var ranges = new List(); - - for (var i = 0; i < length; i++) - { - ranges.Add(HitTestTextPosition(index + i)); - } - - return ranges; - } - - private Size Measure() - { - int width; - int height; - Layout.GetPixelSize(out width, out height); - - return new Size(width, height); - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Media/ImageBrushImpl.cs b/src/Gtk/Avalonia.Cairo/Media/ImageBrushImpl.cs deleted file mode 100644 index 14c9dee9e2..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/ImageBrushImpl.cs +++ /dev/null @@ -1,56 +0,0 @@ -using Avalonia.Media; -using Avalonia.Platform; -using Avalonia.Rendering.Utilities; -using global::Cairo; - -namespace Avalonia.Cairo.Media -{ - public class ImageBrushImpl : BrushImpl - { - public ImageBrushImpl( - ITileBrush brush, - IBitmapImpl bitmap, - Size targetSize) - { - var calc = new TileBrushCalculator(brush, new Size(bitmap.PixelWidth, bitmap.PixelHeight), targetSize); - - using (var intermediate = new ImageSurface(Format.ARGB32, (int)calc.IntermediateSize.Width, (int)calc.IntermediateSize.Height)) - { - using (var context = new RenderTarget(intermediate).CreateDrawingContext(null)) - { - var rect = new Rect(0, 0, bitmap.PixelWidth, bitmap.PixelHeight); - - context.Clear(Colors.Transparent); - context.PushClip(calc.IntermediateClip); - context.Transform = calc.IntermediateTransform; - context.DrawImage(bitmap, 1, rect, rect); - context.PopClip(); - } - - var result = new SurfacePattern(intermediate); - - if ((brush.TileMode & TileMode.FlipXY) != 0) - { - // TODO: Currently always FlipXY as that's all cairo supports natively. - // Support separate FlipX and FlipY by drawing flipped images to intermediate - // surface. - result.Extend = Extend.Reflect; - } - else - { - result.Extend = Extend.Repeat; - } - - if (brush.TileMode != TileMode.None) - { - var matrix = result.Matrix; - matrix.InitTranslate(-calc.DestinationRect.X, -calc.DestinationRect.Y); - result.Matrix = matrix; - } - - PlatformBrush = result; - } - } - } -} - diff --git a/src/Gtk/Avalonia.Cairo/Media/Imaging/BitmapImpl.cs b/src/Gtk/Avalonia.Cairo/Media/Imaging/BitmapImpl.cs deleted file mode 100644 index 5c1e5e7d96..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/Imaging/BitmapImpl.cs +++ /dev/null @@ -1,35 +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 Avalonia.Platform; - -namespace Avalonia.Cairo.Media.Imaging -{ - using System.IO; - using Cairo = global::Cairo; - - public class BitmapImpl : Gdk.Pixbuf, IBitmapImpl - { - public BitmapImpl(Gdk.Pixbuf pixbuf) - :base(pixbuf.SaveToBuffer("png")) - { - } - - public int PixelWidth => Width; - - public int PixelHeight => Height; - - public void Save(string fileName) - { - // TODO: Test - Save(fileName, "png"); - } - - public void Save(Stream stream) - { - var buffer = SaveToBuffer("png"); - stream.Write(buffer, 0, buffer.Length); - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs b/src/Gtk/Avalonia.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs deleted file mode 100644 index fa8a3132d5..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/Imaging/RenderTargetBitmapImpl.cs +++ /dev/null @@ -1,58 +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 Avalonia.Media; -using Avalonia.Platform; -using Avalonia.Rendering; - -namespace Avalonia.Cairo.Media.Imaging -{ - using System.IO; - using Cairo = global::Cairo; - - public class RenderTargetBitmapImpl : IRenderTargetBitmapImpl - { - - private readonly RenderTarget _renderTarget; - public RenderTargetBitmapImpl(Cairo.ImageSurface surface) - { - Surface = surface; - _renderTarget = new RenderTarget(Surface); - } - - public int PixelWidth => Surface.Width; - - public int PixelHeight => Surface.Height; - - public void Dispose() - { - _renderTarget.Dispose(); - } - - public Cairo.ImageSurface Surface - { - get; - } - - public void Save(string fileName) - { - Surface.WriteToPng(fileName); - } - - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) - { - return _renderTarget.CreateDrawingContext(visualBrushRenderer); - } - - public void Save(Stream stream) - { - var tempFileName = Path.GetTempFileName(); - Surface.WriteToPng(tempFileName); - using (var tempFile = new FileStream(tempFileName, FileMode.Create)) - { - tempFile.CopyTo(stream); - } - } - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Cairo/Media/LinearGradientBrushImpl.cs b/src/Gtk/Avalonia.Cairo/Media/LinearGradientBrushImpl.cs deleted file mode 100644 index 1e82da4059..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/LinearGradientBrushImpl.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using Avalonia.Media; -using global::Cairo; - -namespace Avalonia.Cairo -{ - public class LinearGradientBrushImpl : BrushImpl - { - public LinearGradientBrushImpl(ILinearGradientBrush brush, Size destinationSize) - { - var start = brush.StartPoint.ToPixels(destinationSize); - var end = brush.EndPoint.ToPixels(destinationSize); - - this.PlatformBrush = new LinearGradient(start.X, start.Y, end.X, end.Y); - - foreach (var stop in brush.GradientStops) - ((LinearGradient)this.PlatformBrush).AddColorStop(stop.Offset, stop.Color.ToCairo()); - - ((LinearGradient)this.PlatformBrush).Extend = Extend.Pad; - } - } -} - diff --git a/src/Gtk/Avalonia.Cairo/Media/RadialGradientBrushImpl.cs b/src/Gtk/Avalonia.Cairo/Media/RadialGradientBrushImpl.cs deleted file mode 100644 index 03385f8d86..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/RadialGradientBrushImpl.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using Avalonia.Media; -using global::Cairo; - -namespace Avalonia.Cairo -{ - public class RadialGradientBrushImpl : BrushImpl - { - public RadialGradientBrushImpl(IRadialGradientBrush brush, Size destinationSize) - { - var center = brush.Center.ToPixels(destinationSize); - var gradientOrigin = brush.GradientOrigin.ToPixels(destinationSize); - var radius = brush.Radius * Math.Min(destinationSize.Width, destinationSize.Height); - - this.PlatformBrush = new RadialGradient(center.X, center.Y, 1, gradientOrigin.X, gradientOrigin.Y, radius); - this.PlatformBrush.Matrix = Matrix.Identity.ToCairo(); - - foreach (var stop in brush.GradientStops) - { - ((RadialGradient)this.PlatformBrush).AddColorStop(stop.Offset, stop.Color.ToCairo()); - } - - ((RadialGradient)this.PlatformBrush).Extend = Extend.Pad; - } - } -} - diff --git a/src/Gtk/Avalonia.Cairo/Media/SolidColorBrushImpl.cs b/src/Gtk/Avalonia.Cairo/Media/SolidColorBrushImpl.cs deleted file mode 100644 index 86f8aa7f25..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/SolidColorBrushImpl.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using global::Cairo; - -namespace Avalonia.Cairo -{ - public class SolidColorBrushImpl : BrushImpl - { - public SolidColorBrushImpl(Avalonia.Media.ISolidColorBrush brush, double opacityOverride = 1.0f) - { - var color = brush?.Color.ToCairo() ?? new Color(); - - if (brush != null) - color.A = Math.Min(brush.Opacity, color.A); - - if (opacityOverride < 1.0f) - color.A = Math.Min(opacityOverride, color.A); - - this.PlatformBrush = new SolidPattern(color); - } - } -} - diff --git a/src/Gtk/Avalonia.Cairo/Media/StreamGeometryContextImpl.cs b/src/Gtk/Avalonia.Cairo/Media/StreamGeometryContextImpl.cs deleted file mode 100644 index ca16ab5630..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/StreamGeometryContextImpl.cs +++ /dev/null @@ -1,124 +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 Avalonia.Media; -using Avalonia.Platform; -using Avalonia.RenderHelpers; - -namespace Avalonia.Cairo.Media -{ - using Cairo = global::Cairo; - - public class StreamGeometryContextImpl : IStreamGeometryContextImpl - { - private readonly StreamGeometryImpl _target; - private Point _currentPoint; - public StreamGeometryContextImpl(StreamGeometryImpl target, Cairo.Path path) - { - _target = target; - - _surf = new Cairo.ImageSurface (Cairo.Format.Argb32, 0, 0); - _context = new Cairo.Context (_surf); - this.Path = path; - - if (this.Path != null) - { - _context.AppendPath(this.Path); - } - } - - public void ArcTo(Point point, Size size, double rotationAngle, bool isLargeArc, SweepDirection sweepDirection) - { - ArcToHelper.ArcTo(this, _currentPoint, point, size, rotationAngle, isLargeArc, sweepDirection); - _currentPoint = point; - } - - public void BeginFigure(Point startPoint, bool isFilled) - { - if (this.Path == null) - { - _context.MoveTo(startPoint.ToCairo()); - _currentPoint = startPoint; - } - } - - public void CubicBezierTo(Point point1, Point point2, Point point3) - { - if (this.Path == null) - { - _context.CurveTo(point1.ToCairo(), point2.ToCairo(), point3.ToCairo()); - _currentPoint = point3; - } - } - - public void QuadraticBezierTo(Point control, Point endPoint) - { - if (this.Path == null) - { - QuadBezierHelper.QuadraticBezierTo(this, _currentPoint, control, endPoint); - _currentPoint = endPoint; - } - } - - internal bool FillContains(Point point) - { - using (var context = new Cairo.Context(new Cairo.ImageSurface(Cairo.Format.Argb32, 0, 0))) - { - context.AppendPath(Path); - return context.InFill(point.X, point.Y); - } - } - - internal bool StrokeContains(Pen pen, Point point) - { - using (var context = new Cairo.Context(new Cairo.ImageSurface(Cairo.Format.Argb32, 0, 0))) - { - context.AppendPath(Path); - return context.InStroke(point.X, point.Y); - } - } - - public void LineTo(Point point) - { - if (this.Path == null) - { - _context.LineTo(point.ToCairo()); - _currentPoint = point; - } - } - - private readonly Cairo.Context _context; - private readonly Cairo.ImageSurface _surf; - public Cairo.Path Path { get; private set; } - public Rect Bounds { get; private set; } - - public void EndFigure(bool isClosed) - { - if (this.Path == null) - { - if (isClosed) - _context.ClosePath (); - } - } - - public void SetFillRule(FillRule fillRule) - { - _target.FillRule = fillRule; - } - - - public void Dispose() - { - if (this.Path == null) - { - Path = _context.CopyPath(); - Bounds = _context.FillExtents().ToAvalonia(); - } - - _context.Dispose (); - _surf.Dispose (); - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Media/StreamGeometryImpl.cs b/src/Gtk/Avalonia.Cairo/Media/StreamGeometryImpl.cs deleted file mode 100644 index b0a8cd4fb0..0000000000 --- a/src/Gtk/Avalonia.Cairo/Media/StreamGeometryImpl.cs +++ /dev/null @@ -1,86 +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 Avalonia.Media; -using Avalonia.Platform; -using System.Collections.Generic; - -namespace Avalonia.Cairo.Media -{ - using Cairo = global::Cairo; - - public class StreamGeometryImpl : IStreamGeometryImpl - { - public StreamGeometryImpl() - { - _impl = new StreamGeometryContextImpl(this, null); - } - - public StreamGeometryImpl(StreamGeometryContextImpl impl) - { - _impl = impl; - } - - public Rect Bounds - { - get { return _impl.Bounds; } - } - - public Cairo.Path Path - { - get { return _impl.Path; } - } - - private readonly StreamGeometryContextImpl _impl; - - private Matrix _transform = Matrix.Identity; - - public Matrix Transform - { - get { return _transform; } - private set { _transform = value; } - } - - public FillRule FillRule { get; set; } - - public IStreamGeometryImpl Clone() - { - return new StreamGeometryImpl(_impl); - } - - public Rect GetRenderBounds(double strokeThickness) - { - // TODO: Calculate properly. - return Bounds.TransformToAABB(Transform).Inflate(strokeThickness); - } - - public IStreamGeometryContextImpl Open() - { - return _impl; - } - - public bool FillContains(Point point) - { - return _impl.FillContains(point); - } - - public IGeometryImpl Intersect(IGeometryImpl geometry) - { - throw new NotImplementedException(); - } - - public bool StrokeContains(Pen pen, Point point) - { - return _impl.StrokeContains(pen, point); - } - - /// - public IGeometryImpl WithTransform(Matrix transform) - { - var result = (StreamGeometryImpl)Clone(); - result.Transform = transform; - return result; - } - } -} diff --git a/src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs b/src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs deleted file mode 100644 index 709f1eb22a..0000000000 --- a/src/Gtk/Avalonia.Cairo/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,25 +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 Avalonia.Cairo; -using Avalonia.Platform; -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("Avalonia.Cairo")] - -// 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("f999ba8b-64e7-40cc-98a4-003f1852d2a3")] - -[assembly: ExportRenderingSubsystem(OperatingSystemType.WinNT, 3, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] -[assembly: ExportRenderingSubsystem(OperatingSystemType.Linux, 2, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] -[assembly: ExportRenderingSubsystem(OperatingSystemType.OSX, 3, "Cairo", typeof(CairoPlatform), nameof(CairoPlatform.Initialize), RequiresWindowingSubsystem = "GTK")] diff --git a/src/Gtk/Avalonia.Cairo/RenderTarget.cs b/src/Gtk/Avalonia.Cairo/RenderTarget.cs deleted file mode 100644 index b18c07377b..0000000000 --- a/src/Gtk/Avalonia.Cairo/RenderTarget.cs +++ /dev/null @@ -1,58 +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.Runtime.InteropServices; -using Avalonia.Cairo.Media; -using Avalonia.Media; -using Avalonia.Platform; -using Avalonia.Rendering; -using Gtk; -using DrawingContext = Avalonia.Media.DrawingContext; - -namespace Avalonia.Cairo -{ - using global::Cairo; - - /// - /// A cairo render target. - /// - public class RenderTarget : IRenderTarget - { - private readonly Surface _surface; - private readonly Func _drawableAccessor; - - - /// - /// Initializes a new instance of the class. - /// - /// The window. - /// The width of the window. - /// The height of the window. - public RenderTarget(Func drawable) - { - _drawableAccessor = drawable; - } - - public RenderTarget(ImageSurface surface) - { - _surface = surface; - } - - /// - /// Creates a cairo surface that targets a platform-specific resource. - /// - /// The visual brush renderer to use. - /// A surface wrapped in an . - public IDrawingContextImpl CreateDrawingContext(IVisualBrushRenderer visualBrushRenderer) - { - if (_drawableAccessor != null) - return new Media.DrawingContext(_drawableAccessor(), visualBrushRenderer); - if (_surface != null) - return new Media.DrawingContext(_surface, visualBrushRenderer); - throw new InvalidOperationException("Unspecified render target"); - } - - public void Dispose() => _surface?.Dispose(); - } -} diff --git a/src/Gtk/Avalonia.Cairo/app.config b/src/Gtk/Avalonia.Cairo/app.config deleted file mode 100644 index 754c958222..0000000000 --- a/src/Gtk/Avalonia.Cairo/app.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/Avalonia.Gtk.csproj b/src/Gtk/Avalonia.Gtk/Avalonia.Gtk.csproj deleted file mode 100644 index 1142b32dbf..0000000000 --- a/src/Gtk/Avalonia.Gtk/Avalonia.Gtk.csproj +++ /dev/null @@ -1,105 +0,0 @@ - - - - Debug - AnyCPU - {54F237D5-A70A-4752-9656-0C70B1A7B047} - Library - Avalonia.Gtk - Avalonia.Gtk - v4.6.1 - - - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - - - full - true - bin\Release - prompt - 4 - false - - - - - - - - - - - - - Properties\SharedAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - {D211E587-D8BC-45B9-95A4-F297C8FA5200} - Avalonia.Animation - - - {B09B78D8-9B26-48B0-9149-D64A2F120F3F} - Avalonia.Base - - - {7062ae20-5dcc-4442-9645-8195bdece63e} - Avalonia.Diagnostics - - - {62024B2D-53EB-4638-B26B-85EEAA54866E} - Avalonia.Input - - - {EB582467-6ABB-43A1-B052-E981BA910E3A} - Avalonia.Visuals - - - {42472427-4774-4C81-8AFF-9F27B8E31721} - Avalonia.Layout - - - {D2221C82-4A25-4583-9B43-D791E3F6820C} - Avalonia.Controls - - - {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} - Avalonia.Styling - - - {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} - Avalonia.Interactivity - - - - \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/ClipboardImpl.cs b/src/Gtk/Avalonia.Gtk/ClipboardImpl.cs deleted file mode 100644 index db59789bc9..0000000000 --- a/src/Gtk/Avalonia.Gtk/ClipboardImpl.cs +++ /dev/null @@ -1,42 +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.Threading.Tasks; -using Gdk; -using Avalonia.Input.Platform; - -namespace Avalonia.Gtk -{ - using Gtk = global::Gtk; - - internal class ClipboardImpl : IClipboard - { - private static Gtk.Clipboard GetClipboard() => Gtk.Clipboard.GetForDisplay(Display.Default, new Atom(IntPtr.Zero)); - - public Task GetTextAsync() - { - var clip = GetClipboard(); - var tcs = new TaskCompletionSource(); - clip.RequestText((_, text) => - { - tcs.TrySetResult(text); - }); - return tcs.Task; - } - - public Task SetTextAsync(string text) - { - using (var cl = GetClipboard()) - cl.Text = text; - return Task.FromResult(0); - } - - public Task ClearAsync() - { - using (var cl = GetClipboard()) - cl.Clear(); - return Task.FromResult(0); - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/CursorFactory.cs b/src/Gtk/Avalonia.Gtk/CursorFactory.cs deleted file mode 100644 index bd8166c59e..0000000000 --- a/src/Gtk/Avalonia.Gtk/CursorFactory.cs +++ /dev/null @@ -1,85 +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.Collections.Generic; -using Gdk; -using Avalonia.Input; -using Avalonia.Platform; - -namespace Avalonia.Gtk -{ - using Gtk = global::Gtk; - - internal class CursorFactory : IStandardCursorFactory - { - public static CursorFactory Instance { get; } = new CursorFactory(); - - private CursorFactory() - { - } - - private static readonly Dictionary CursorTypeMapping = new Dictionary - - { - {StandardCursorType.AppStarting, CursorType.Watch}, - {StandardCursorType.Arrow, CursorType.LeftPtr}, - {StandardCursorType.Cross, CursorType.Cross}, - {StandardCursorType.Hand, CursorType.Hand1}, - {StandardCursorType.Ibeam, CursorType.Xterm}, - {StandardCursorType.No, Gtk.Stock.Cancel}, - {StandardCursorType.SizeAll, CursorType.Sizing}, - //{ StandardCursorType.SizeNorthEastSouthWest, 32643 }, - {StandardCursorType.SizeNorthSouth, CursorType.SbVDoubleArrow}, - //{ StandardCursorType.SizeNorthWestSouthEast, 32642 }, - {StandardCursorType.SizeWestEast, CursorType.SbHDoubleArrow}, - {StandardCursorType.UpArrow, CursorType.BasedArrowUp}, - {StandardCursorType.Wait, CursorType.Watch}, - {StandardCursorType.Help, Gtk.Stock.Help}, - {StandardCursorType.TopSide, CursorType.TopSide}, - {StandardCursorType.BottomSize, CursorType.BottomSide}, - {StandardCursorType.LeftSide, CursorType.LeftSide}, - {StandardCursorType.RightSide, CursorType.RightSide}, - {StandardCursorType.TopLeftCorner, CursorType.TopLeftCorner}, - {StandardCursorType.TopRightCorner, CursorType.TopRightCorner}, - {StandardCursorType.BottomLeftCorner, CursorType.BottomLeftCorner}, - {StandardCursorType.BottomRightCorner, CursorType.BottomRightCorner} - }; - - private static readonly Dictionary Cache = - new Dictionary(); - - private Gdk.Cursor GetCursor(object desc) - { - Gdk.Cursor rv; - var name = desc as string; - if (name != null) - { - var theme = Gtk.IconTheme.Default; - var icon = theme.LoadIcon(name, 32, default(Gtk.IconLookupFlags)); - rv = icon == null ? new Gdk.Cursor(CursorType.XCursor) : new Gdk.Cursor(Display.Default, icon, 0, 0); - } - else - { - rv = new Gdk.Cursor((CursorType)desc); - } - - rv.Owned = false; - return rv; - } - - public IPlatformHandle GetCursor(StandardCursorType cursorType) - { - IPlatformHandle rv; - if (!Cache.TryGetValue(cursorType, out rv)) - { - Cache[cursorType] = - rv = - new PlatformHandle( - GetCursor(CursorTypeMapping[cursorType]).Handle, - "GTKCURSOR"); - } - - return rv; - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/EmbeddableImpl.cs b/src/Gtk/Avalonia.Gtk/EmbeddableImpl.cs deleted file mode 100644 index 4e8085a057..0000000000 --- a/src/Gtk/Avalonia.Gtk/EmbeddableImpl.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reactive.Disposables; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Platform; -using Gdk; -using Gtk; -using Action = System.Action; -using WindowEdge = Avalonia.Controls.WindowEdge; - -namespace Avalonia.Gtk -{ - class EmbeddableImpl : TopLevelImpl, IEmbeddableWindowImpl - { -#pragma warning disable CS0067 // Method not used - public event Action LostFocus; -#pragma warning restore CS0067 - - public EmbeddableImpl(DrawingArea area) : base(area) - { - area.Events = EventMask.AllEventsMask; - area.SizeAllocated += Plug_SizeAllocated; - } - - public EmbeddableImpl() : this(new PlatformHandleAwareDrawingArea()) - { - } - - private void Plug_SizeAllocated(object o, SizeAllocatedArgs args) - { - Resized?.Invoke(new Size(args.Allocation.Width, args.Allocation.Height)); - } - - public override Size ClientSize - { - get { return new Size(Widget.Allocation.Width, Widget.Allocation.Height); } - } - - } -} diff --git a/src/Gtk/Avalonia.Gtk/Embedding/GtkAvaloniaControlHost.cs b/src/Gtk/Avalonia.Gtk/Embedding/GtkAvaloniaControlHost.cs deleted file mode 100644 index 5594a3c13f..0000000000 --- a/src/Gtk/Avalonia.Gtk/Embedding/GtkAvaloniaControlHost.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Controls; -using Avalonia.Controls.Embedding; -using Avalonia.Diagnostics; -using Avalonia.Input; -using Avalonia.Interactivity; -using Avalonia.Layout; -using Avalonia.Platform; -using Avalonia.VisualTree; -using Gdk; -using Gtk; - -namespace Avalonia.Gtk.Embedding -{ - public class GtkAvaloniaControlHost : DrawingArea, IPlatformHandle - { - private EmbeddableControlRoot _root; - - public GtkAvaloniaControlHost() - { - _root = new EmbeddableControlRoot(new EmbeddableImpl(this)); - _root.Prepare(); - if (_root.IsFocused) - Unfocus(); - _root.GotFocus += RootGotFocus; - CanFocus = true; - } - - void Unfocus() - { - var focused = (IVisual)FocusManager.Instance.Current; - if (focused == null) - return; - while (focused.VisualParent != null) - focused = focused.VisualParent; - - if (focused == _root) - KeyboardDevice.Instance.SetFocusedElement(null, NavigationMethod.Unspecified, InputModifiers.None); - } - - protected override bool OnFocusOutEvent(EventFocus evnt) - { - Unfocus(); - return false; - } - - private void RootGotFocus(object sender, RoutedEventArgs e) - { - this.HasFocus = true; - GdkWindow.Focus(0); - } - - private Control _content; - - public Control Content - { - get { return _content; } - set - { - _content = value; - if (_root != null) - { - _root.Content = value; - _root.Prepare(); - } - } - } - - IntPtr IPlatformHandle.Handle => PlatformHandleAwareWindow.GetNativeWindow(GdkWindow); - - string IPlatformHandle.HandleDescriptor => "HWND"; - } -} diff --git a/src/Gtk/Avalonia.Gtk/FramebufferManager.cs b/src/Gtk/Avalonia.Gtk/FramebufferManager.cs deleted file mode 100644 index 5ec49fb91f..0000000000 --- a/src/Gtk/Avalonia.Gtk/FramebufferManager.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using Avalonia.Controls.Platform.Surfaces; -using Avalonia.Platform; - -namespace Avalonia.Gtk -{ - class FramebufferManager : IFramebufferPlatformSurface, IDisposable - { - private readonly TopLevelImpl _window; - private SurfaceFramebuffer _fb; - - public FramebufferManager(TopLevelImpl window) - { - _window = window; - } - - public void Dispose() - { - _fb?.Deallocate(); - } - - public ILockedFramebuffer Lock() - { - if(_window.CurrentDrawable == null) - throw new InvalidOperationException("Window is not in drawing state"); - - var drawable = _window.CurrentDrawable; - var width = (int) _window.ClientSize.Width; - var height = (int) _window.ClientSize.Height; - if (_fb == null || _fb.Width != width || - _fb.Height != height) - { - _fb?.Deallocate(); - _fb = new SurfaceFramebuffer(width, height); - } - _fb.SetDrawable(drawable); - return _fb; - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/GtkExtensions.cs b/src/Gtk/Avalonia.Gtk/GtkExtensions.cs deleted file mode 100644 index b9bb9a778a..0000000000 --- a/src/Gtk/Avalonia.Gtk/GtkExtensions.cs +++ /dev/null @@ -1,15 +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.Gtk -{ - using Gtk = global::Gtk; - - public static class GtkExtensions - { - public static Rect ToAvalonia(this Gdk.Rectangle rect) - { - return new Rect(rect.Left, rect.Top, rect.Right, rect.Bottom); - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/GtkPlatform.cs b/src/Gtk/Avalonia.Gtk/GtkPlatform.cs deleted file mode 100644 index f449229c53..0000000000 --- a/src/Gtk/Avalonia.Gtk/GtkPlatform.cs +++ /dev/null @@ -1,140 +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.Reactive.Disposables; -using System.Threading; -using Avalonia.Controls.Platform; -using Avalonia.Input.Platform; -using Avalonia.Input; -using Avalonia.Platform; -using Avalonia.Controls; - -namespace Avalonia -{ - public static class GtkApplicationExtensions - { - public static T UseGtk(this T builder) where T : AppBuilderBase, new() - { - builder.UseWindowingSubsystem(Gtk.GtkPlatform.Initialize, "Gtk"); - return builder; - } - } -} - -namespace Avalonia.Gtk -{ - using System.IO; - using Rendering; - using Gtk = global::Gtk; - - public class GtkPlatform : IPlatformThreadingInterface, IPlatformSettings, IWindowingPlatform, IPlatformIconLoader - { - private static readonly GtkPlatform s_instance = new GtkPlatform(); - private static Thread _uiThread; - - public GtkPlatform() - { - Gtk.Application.Init(); - } - - public Size DoubleClickSize => new Size(4, 4); - - public TimeSpan DoubleClickTime => TimeSpan.FromMilliseconds(Gtk.Settings.Default.DoubleClickTime); - public double RenderScalingFactor { get; } = 1; - public double LayoutScalingFactor { get; } = 1; - - public static void Initialize() - { - AvaloniaLocator.CurrentMutable - .Bind().ToConstant(s_instance) - .Bind().ToSingleton() - .Bind().ToConstant(CursorFactory.Instance) - .Bind().ToConstant(GtkKeyboardDevice.Instance) - .Bind().ToConstant(s_instance) - .Bind().ToConstant(s_instance) - .Bind().ToConstant(new DefaultRenderLoop(60)) - .Bind().ToSingleton() - .Bind().ToConstant(s_instance); - _uiThread = Thread.CurrentThread; - } - - public bool HasMessages() - { - return Gtk.Application.EventsPending(); - } - - public void ProcessMessage() - { - Gtk.Application.RunIteration(); - } - - public void RunLoop(CancellationToken cancellationToken) - { - while (!cancellationToken.IsCancellationRequested) - Gtk.Application.RunIteration(); - } - - public IDisposable StartTimer(TimeSpan interval, Action tick) - { - var result = true; - var handle = GLib.Timeout.Add( - (uint)interval.TotalMilliseconds, - () => - { - tick(); - return result; - }); - - return Disposable.Create(() => result = false); - } - - - - public void Signal() - { - Gtk.Application.Invoke(delegate { Signaled?.Invoke(); }); - } - - public bool CurrentThreadIsLoopThread => Thread.CurrentThread == _uiThread; - - public event Action Signaled; - public IWindowImpl CreateWindow() - { - return new WindowImpl(); - } - - public IEmbeddableWindowImpl CreateEmbeddableWindow() => new EmbeddableImpl(); - - public IPopupImpl CreatePopup() - { - return new PopupImpl(); - } - - public IWindowIconImpl LoadIcon(string fileName) - { - return new IconImpl(new Gdk.Pixbuf(fileName)); - } - - public IWindowIconImpl LoadIcon(Stream stream) - { - return new IconImpl(new Gdk.Pixbuf(stream)); - } - - public IWindowIconImpl LoadIcon(IBitmapImpl bitmap) - { - if (bitmap is Gdk.Pixbuf) - { - return new IconImpl((Gdk.Pixbuf)bitmap); - } - else - { - using (var memoryStream = new MemoryStream()) - { - bitmap.Save(memoryStream); - return new IconImpl(new Gdk.Pixbuf(memoryStream)); - } - } - } - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/IconImpl.cs b/src/Gtk/Avalonia.Gtk/IconImpl.cs deleted file mode 100644 index 3203e59f21..0000000000 --- a/src/Gtk/Avalonia.Gtk/IconImpl.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Avalonia.Platform; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Gdk; -using System.IO; - -namespace Avalonia.Gtk -{ - class IconImpl : IWindowIconImpl - { - public IconImpl(Pixbuf pixbuf) - { - Pixbuf = pixbuf; - } - - public Pixbuf Pixbuf { get; } - - public void Save(Stream stream) - { - var buffer = Pixbuf.SaveToBuffer("png"); - stream.Write(buffer, 0, buffer.Length); - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/Input/GtkKeyboardDevice.cs b/src/Gtk/Avalonia.Gtk/Input/GtkKeyboardDevice.cs deleted file mode 100644 index a97a6190f1..0000000000 --- a/src/Gtk/Avalonia.Gtk/Input/GtkKeyboardDevice.cs +++ /dev/null @@ -1,18 +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 System.Reflection; -using System.Text; -using Avalonia.Input; - - -namespace Avalonia.Gtk -{ - public class GtkKeyboardDevice : KeyboardDevice - { - public new static GtkKeyboardDevice Instance { get; } = new GtkKeyboardDevice(); - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/Input/GtkMouseDevice.cs b/src/Gtk/Avalonia.Gtk/Input/GtkMouseDevice.cs deleted file mode 100644 index c5de869647..0000000000 --- a/src/Gtk/Avalonia.Gtk/Input/GtkMouseDevice.cs +++ /dev/null @@ -1,29 +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 Avalonia.Input; -namespace Avalonia.Gtk -{ - public class GtkMouseDevice : MouseDevice - { - private static readonly GtkMouseDevice s_instance; - - private Point _clientPosition; - - static GtkMouseDevice() - { - s_instance = new GtkMouseDevice(); - } - - private GtkMouseDevice() - { - } - - public static new GtkMouseDevice Instance => s_instance; - - internal void SetClientPosition(Point p) - { - _clientPosition = p; - } - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/MyClass.cs b/src/Gtk/Avalonia.Gtk/MyClass.cs deleted file mode 100644 index 589431fcb1..0000000000 --- a/src/Gtk/Avalonia.Gtk/MyClass.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace Avalonia.Gtk -{ - public class MyClass - { - public MyClass () - { - } - } -} - diff --git a/src/Gtk/Avalonia.Gtk/PopupImpl.cs b/src/Gtk/Avalonia.Gtk/PopupImpl.cs deleted file mode 100644 index 41ee4354fe..0000000000 --- a/src/Gtk/Avalonia.Gtk/PopupImpl.cs +++ /dev/null @@ -1,16 +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 Gtk; -using Avalonia.Platform; - -namespace Avalonia.Gtk -{ - public class PopupImpl : WindowImpl, IPopupImpl - { - public PopupImpl() - : base(WindowType.Popup) - { - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs b/src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs deleted file mode 100644 index 67e5f6dc17..0000000000 --- a/src/Gtk/Avalonia.Gtk/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,15 +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 Avalonia.Gtk; -using Avalonia.Platform; -using System.Reflection; - -// Information about this assembly is defined by the following attributes. -// Change them to the values specific to your project. -[assembly: AssemblyTitle("Avalonia.Gtk")] - -[assembly: ExportWindowingSubsystem(OperatingSystemType.WinNT, 3, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] -[assembly: ExportWindowingSubsystem(OperatingSystemType.Linux, 2, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] -[assembly: ExportWindowingSubsystem(OperatingSystemType.OSX, 3, "GTK", typeof(GtkPlatform), nameof(GtkPlatform.Initialize))] - diff --git a/src/Gtk/Avalonia.Gtk/ScreenImpl.cs b/src/Gtk/Avalonia.Gtk/ScreenImpl.cs deleted file mode 100644 index a5082ca59a..0000000000 --- a/src/Gtk/Avalonia.Gtk/ScreenImpl.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using Avalonia.Controls; -using Avalonia.Platform; -using Avalonia.Utilities; -using Gdk; -using Screen = Avalonia.Platform.Screen; -using Window = Gtk.Window; - -namespace Avalonia.Gtk -{ - internal class ScreenImpl : IScreenImpl - { - private Window window; - - public int ScreenCount - { - get => window.Display.DefaultScreen.NMonitors; - } - public Screen[] AllScreens { - get - { - Screen[] screens = new Screen[ScreenCount]; - var screen = window.Display.DefaultScreen; - - for (short i = 0; i < screens.Length; i++) - { - Rectangle geometry = screen.GetMonitorGeometry(i); - Rect geometryRect = new Rect(geometry.X, geometry.Y, geometry.Width, geometry.Height); - Screen s = new Screen(geometryRect, geometryRect, false); - screens[i] = s; - } - - return screens; - } - } - - public ScreenImpl(Window window) - { - this.window = window; - } - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/SurfaceFramebuffer.cs b/src/Gtk/Avalonia.Gtk/SurfaceFramebuffer.cs deleted file mode 100644 index 29f4ce1d15..0000000000 --- a/src/Gtk/Avalonia.Gtk/SurfaceFramebuffer.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Controls.Platform.Surfaces; -using Avalonia.Platform; -using Cairo; -using Gdk; - -namespace Avalonia.Gtk -{ - class SurfaceFramebuffer : ILockedFramebuffer - { - private Drawable _drawable; - private ImageSurface _surface; - - public SurfaceFramebuffer(int width, int height) - { - _surface = new ImageSurface(Cairo.Format.RGB24, width, height); - } - - public void SetDrawable(Drawable drawable) - { - _drawable = drawable; - _surface.Flush(); - } - - public void Deallocate() - { - _surface.Dispose(); - _surface = null; - } - - public void Dispose() - { - using (var ctx = CairoHelper.Create(_drawable)) - { - _surface.MarkDirty(); - ctx.SetSourceSurface(_surface, 0, 0); - ctx.Paint(); - } - _drawable = null; - } - - public IntPtr Address => _surface.DataPtr; - public int Width => _surface.Width; - public int Height => _surface.Height; - public int RowBytes => _surface.Stride; - //TODO: Proper DPI detect - public Vector Dpi => new Vector(96, 96); - public PixelFormat Format => PixelFormat.Bgra8888; - } -} - diff --git a/src/Gtk/Avalonia.Gtk/SystemDialogImpl.cs b/src/Gtk/Avalonia.Gtk/SystemDialogImpl.cs deleted file mode 100644 index 05dc1bf02d..0000000000 --- a/src/Gtk/Avalonia.Gtk/SystemDialogImpl.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Controls; -using Avalonia.Controls.Platform; -using Avalonia.Platform; - -namespace Avalonia.Gtk -{ - using global::Gtk; - class SystemDialogImpl : ISystemDialogImpl - { - public Task ShowFileDialogAsync(FileDialog dialog, IWindowImpl parent) - { - var tcs = new TaskCompletionSource(); - var dlg = new global::Gtk.FileChooserDialog(dialog.Title, ((TopLevelImpl)parent)?.Widget.Toplevel as Window, - dialog is OpenFileDialog - ? FileChooserAction.Open - : FileChooserAction.Save, - "Cancel", ResponseType.Cancel, - "Open", ResponseType.Accept) - { - SelectMultiple = (dialog as OpenFileDialog)?.AllowMultiple ?? false, - }; - foreach (var filter in dialog.Filters) - { - var ffilter = new FileFilter() - { - Name = filter.Name + " (" + string.Join(";", filter.Extensions.Select(e => "*." + e)) + ")" - }; - foreach (var ext in filter.Extensions) - ffilter.AddPattern("*." + ext); - dlg.AddFilter(ffilter); - } - dlg.SetFilename(dialog.InitialFileName); - dlg.Modal = true; - - dlg.Response += (_, args) => - { - if (args.ResponseId == ResponseType.Accept) - tcs.TrySetResult(dlg.Filenames); - dlg.Hide(); - dlg.Dispose(); - }; - - dlg.Close += delegate - { - tcs.TrySetResult(null); - dlg.Dispose(); - }; - dlg.Show(); - return tcs.Task; - } - - public Task ShowFolderDialogAsync(OpenFolderDialog dialog, IWindowImpl parent) - { - var tcs = new TaskCompletionSource(); - var dlg = new global::Gtk.FileChooserDialog(dialog.Title, ((TopLevelImpl)parent)?.Widget.Toplevel as Window, - FileChooserAction.SelectFolder, - "Cancel", ResponseType.Cancel, - "Select Folder", ResponseType.Accept) - { - - }; - - dlg.Modal = true; - - dlg.Response += (_, args) => - { - if (args.ResponseId == ResponseType.Accept) - tcs.TrySetResult(dlg.Filename); - - dlg.Hide(); - dlg.Dispose(); - }; - - dlg.Close += delegate - { - tcs.TrySetResult(null); - dlg.Dispose(); - }; - dlg.Show(); - return tcs.Task; - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/TopLevelImpl.cs b/src/Gtk/Avalonia.Gtk/TopLevelImpl.cs deleted file mode 100644 index 5c18d015d4..0000000000 --- a/src/Gtk/Avalonia.Gtk/TopLevelImpl.cs +++ /dev/null @@ -1,320 +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 Avalonia.Input; -using Avalonia.Input.Raw; -using Avalonia.Platform; -using Gdk; -using Action = System.Action; -using WindowEdge = Avalonia.Controls.WindowEdge; -using GLib; -using Avalonia.Rendering; - -namespace Avalonia.Gtk -{ - using Gtk = global::Gtk; - - public abstract class TopLevelImpl : ITopLevelImpl - { - private IInputRoot _inputRoot; - private Gtk.Widget _widget; - private FramebufferManager _framebuffer; - - private Gtk.IMContext _imContext; - - private uint _lastKeyEventTimestamp; - - private static readonly Gdk.Cursor DefaultCursor = new Gdk.Cursor(CursorType.LeftPtr); - - protected TopLevelImpl(Gtk.Widget window) - { - _widget = window; - _framebuffer = new FramebufferManager(this); - Init(); - } - - void Init() - { - Handle = _widget as IPlatformHandle; - _widget.Events = EventMask.AllEventsMask; - _imContext = new Gtk.IMMulticontext(); - _imContext.Commit += ImContext_Commit; - _widget.Realized += OnRealized; - _widget.Realize(); - _widget.ButtonPressEvent += OnButtonPressEvent; - _widget.ButtonReleaseEvent += OnButtonReleaseEvent; - _widget.ScrollEvent += OnScrollEvent; - _widget.Destroyed += OnDestroyed; - _widget.KeyPressEvent += OnKeyPressEvent; - _widget.KeyReleaseEvent += OnKeyReleaseEvent; - _widget.ExposeEvent += OnExposeEvent; - _widget.MotionNotifyEvent += OnMotionNotifyEvent; - - - } - - public IPlatformHandle Handle { get; private set; } - public Gtk.Widget Widget => _widget; - public Gdk.Drawable CurrentDrawable { get; private set; } - - void OnRealized (object sender, EventArgs eventArgs) - { - _imContext.ClientWindow = _widget.GdkWindow; - } - - public abstract Size ClientSize { get; } - - public Size MaxClientSize - { - get - { - // TODO: This should take into account things such as taskbar and window border - // thickness etc. - return new Size(_widget.Screen.Width, _widget.Screen.Height); - } - } - - public IMouseDevice MouseDevice => GtkMouseDevice.Instance; - - public Avalonia.Controls.WindowState WindowState - { - get - { - switch (_widget.GdkWindow.State) - { - case Gdk.WindowState.Iconified: - return Controls.WindowState.Minimized; - case Gdk.WindowState.Maximized: - return Controls.WindowState.Maximized; - default: - return Controls.WindowState.Normal; - } - } - - set - { - switch (value) - { - case Controls.WindowState.Minimized: - _widget.GdkWindow.Iconify(); - break; - case Controls.WindowState.Maximized: - _widget.GdkWindow.Maximize(); - break; - case Controls.WindowState.Normal: - _widget.GdkWindow.Deiconify(); - _widget.GdkWindow.Unmaximize(); - break; - } - } - } - - public double Scaling => 1; - - public Action Activated { get; set; } - - public Action Closed { get; set; } - - - public Action Deactivated { get; set; } - - public Action Input { get; set; } - - public Action Paint { get; set; } - - public Action Resized { get; set; } - - public Action PositionChanged { get; set; } - - public Action ScalingChanged { get; set; } - - public IEnumerable Surfaces => new object[] - { - Handle, - new Func(() => CurrentDrawable), - _framebuffer - }; - - public IPopupImpl CreatePopup() - { - return new PopupImpl(); - } - - public IRenderer CreateRenderer(IRenderRoot root) - { - return new ImmediateRenderer(root); - } - - public void Invalidate(Rect rect) - { - if (_widget?.GdkWindow != null) - _widget.GdkWindow.InvalidateRect( - new Rectangle((int) rect.X, (int) rect.Y, (int) rect.Width, (int) rect.Height), true); - } - - public Point PointToClient(Point point) - { - int x, y; - _widget.GdkWindow.GetDeskrelativeOrigin(out x, out y); - - return new Point(point.X - x, point.Y - y); - } - - public Point PointToScreen(Point point) - { - int x, y; - _widget.GdkWindow.GetDeskrelativeOrigin(out x, out y); - return new Point(point.X + x, point.Y + y); - } - - public void SetInputRoot(IInputRoot inputRoot) - { - _inputRoot = inputRoot; - } - - - public void SetCursor(IPlatformHandle cursor) - { - _widget.GdkWindow.Cursor = cursor != null ? new Gdk.Cursor(cursor.Handle) : DefaultCursor; - } - - public void Show() => _widget.Show(); - - public void Hide() => _widget.Hide(); - - private static InputModifiers GetModifierKeys(ModifierType state) - { - var rv = InputModifiers.None; - if (state.HasFlag(ModifierType.ControlMask)) - rv |= InputModifiers.Control; - if (state.HasFlag(ModifierType.ShiftMask)) - rv |= InputModifiers.Shift; - if (state.HasFlag(ModifierType.Mod1Mask)) - rv |= InputModifiers.Control; - if(state.HasFlag(ModifierType.Button1Mask)) - rv |= InputModifiers.LeftMouseButton; - if (state.HasFlag(ModifierType.Button2Mask)) - rv |= InputModifiers.RightMouseButton; - if (state.HasFlag(ModifierType.Button3Mask)) - rv |= InputModifiers.MiddleMouseButton; - return rv; - } - - void OnButtonPressEvent(object o, Gtk.ButtonPressEventArgs args) - { - var evnt = args.Event; - var e = new RawMouseEventArgs( - GtkMouseDevice.Instance, - evnt.Time, - _inputRoot, - evnt.Button == 1 - ? RawMouseEventType.LeftButtonDown - : evnt.Button == 3 ? RawMouseEventType.RightButtonDown : RawMouseEventType.MiddleButtonDown, - new Point(evnt.X, evnt.Y), GetModifierKeys(evnt.State)); - Input(e); - } - - void OnScrollEvent(object o, Gtk.ScrollEventArgs args) - { - var evnt = args.Event; - double step = 1; - var delta = new Vector(); - if (evnt.Direction == ScrollDirection.Down) - delta = new Vector(0, -step); - else if (evnt.Direction == ScrollDirection.Up) - delta = new Vector(0, step); - else if (evnt.Direction == ScrollDirection.Right) - delta = new Vector(-step, 0); - if (evnt.Direction == ScrollDirection.Left) - delta = new Vector(step, 0); - var e = new RawMouseWheelEventArgs(GtkMouseDevice.Instance, evnt.Time, _inputRoot, new Point(evnt.X, evnt.Y), delta, GetModifierKeys(evnt.State)); - Input(e); - } - - protected void OnButtonReleaseEvent(object o, Gtk.ButtonReleaseEventArgs args) - { - var evnt = args.Event; - var e = new RawMouseEventArgs( - GtkMouseDevice.Instance, - evnt.Time, - _inputRoot, - evnt.Button == 1 - ? RawMouseEventType.LeftButtonUp - : evnt.Button == 3 ? RawMouseEventType.RightButtonUp : RawMouseEventType.MiddleButtonUp, - new Point(evnt.X, evnt.Y), GetModifierKeys(evnt.State)); - Input(e); - } - - void OnDestroyed(object sender, EventArgs eventArgs) - { - Closed(); - } - - private void ProcessKeyEvent(EventKey evnt) - { - - _lastKeyEventTimestamp = evnt.Time; - if (_imContext.FilterKeypress(evnt)) - return; - var e = new RawKeyEventArgs( - GtkKeyboardDevice.Instance, - evnt.Time, - evnt.Type == EventType.KeyPress ? RawKeyEventType.KeyDown : RawKeyEventType.KeyUp, - Common.KeyTransform.ConvertKey(evnt.Key), GetModifierKeys(evnt.State)); - Input(e); - } - - [ConnectBefore] - void OnKeyPressEvent(object o, Gtk.KeyPressEventArgs args) - { - args.RetVal = true; - ProcessKeyEvent(args.Event); - } - - void OnKeyReleaseEvent(object o, Gtk.KeyReleaseEventArgs args) - { - args.RetVal = true; - ProcessKeyEvent(args.Event); - } - - private void ImContext_Commit(object o, Gtk.CommitArgs args) - { - Input(new RawTextInputEventArgs(GtkKeyboardDevice.Instance, _lastKeyEventTimestamp, args.Str)); - } - - void OnExposeEvent(object o, Gtk.ExposeEventArgs args) - { - CurrentDrawable = args.Event.Window; - Paint(args.Event.Area.ToAvalonia()); - CurrentDrawable = null; - args.RetVal = true; - } - - void OnMotionNotifyEvent(object o, Gtk.MotionNotifyEventArgs args) - { - var evnt = args.Event; - var position = new Point(evnt.X, evnt.Y); - - GtkMouseDevice.Instance.SetClientPosition(position); - - var e = new RawMouseEventArgs( - GtkMouseDevice.Instance, - evnt.Time, - _inputRoot, - RawMouseEventType.Move, - position, GetModifierKeys(evnt.State)); - Input(e); - args.RetVal = true; - } - - public void Dispose() - { - _framebuffer.Dispose(); - _widget.Hide(); - _widget.Dispose(); - _widget = null; - } - } -} diff --git a/src/Gtk/Avalonia.Gtk/WindowImpl.cs b/src/Gtk/Avalonia.Gtk/WindowImpl.cs deleted file mode 100644 index ef8f5f95cb..0000000000 --- a/src/Gtk/Avalonia.Gtk/WindowImpl.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.Reactive.Disposables; -using Avalonia.Controls; -using Avalonia.Platform; -using Gdk; - -namespace Avalonia.Gtk -{ - using Gtk = global::Gtk; - - public class WindowImpl : TopLevelImpl, IWindowImpl - { - private Gtk.Window _window; - private Gtk.Window Window => _window ?? (_window = (Gtk.Window)Widget); - - public WindowImpl(Gtk.WindowType type) : base(new PlatformHandleAwareWindow(type)) - { - Init(); - } - - public WindowImpl() - : base(new PlatformHandleAwareWindow(Gtk.WindowType.Toplevel) {DefaultSize = new Gdk.Size(900, 480)}) - { - Init(); - } - - void Init() - { - Window.FocusActivated += OnFocusActivated; - Window.ConfigureEvent += OnConfigureEvent; - _lastClientSize = ClientSize; - _lastPosition = Position; - } - - private Size _lastClientSize; - private Point _lastPosition; - - void OnConfigureEvent(object o, Gtk.ConfigureEventArgs args) - { - var evnt = args.Event; - args.RetVal = true; - var newSize = new Size(evnt.Width, evnt.Height); - - if (newSize != _lastClientSize) - { - Resized(newSize); - _lastClientSize = newSize; - } - - var newPosition = new Point(evnt.X, evnt.Y); - - if (newPosition != _lastPosition) - { - PositionChanged(newPosition); - _lastPosition = newPosition; - } - } - - public override Size ClientSize - { - get - { - int width; - int height; - Window.GetSize(out width, out height); - return new Size(width, height); - } - } - - public IScreenImpl Screen => new ScreenImpl(Window); - - public void Resize(Size value) - { - Window.Resize((int)value.Width, (int)value.Height); - } - - public void SetTitle(string title) - { - Window.Title = title; - } - - void IWindowBaseImpl.Activate() - { - _window.Activate(); - } - - void OnFocusActivated(object sender, EventArgs eventArgs) - { - Activated(); - } - - public void BeginMoveDrag() - { - int x, y; - ModifierType mod; - Window.Screen.RootWindow.GetPointer(out x, out y, out mod); - Window.BeginMoveDrag(1, x, y, 0); - } - - public void BeginResizeDrag(Controls.WindowEdge edge) - { - int x, y; - ModifierType mod; - Window.Screen.RootWindow.GetPointer(out x, out y, out mod); - Window.BeginResizeDrag((Gdk.WindowEdge)(int)edge, 1, x, y, 0); - } - - public Point Position - { - get - { - int x, y; - Window.GetPosition(out x, out y); - return new Point(x, y); - } - set { Window.Move((int)value.X, (int)value.Y); } - } - - public IDisposable ShowDialog() - { - Window.Modal = true; - Window.Show(); - - return Disposable.Empty; - } - - public void SetSystemDecorations(bool enabled) => Window.Decorated = enabled; - - public void SetIcon(IWindowIconImpl icon) - { - Window.Icon = ((IconImpl)icon).Pixbuf; - } - - public void ShowTaskbarIcon(bool value) => Window.SkipTaskbarHint = !value; - } -} \ No newline at end of file diff --git a/src/Gtk/Avalonia.Gtk/Windows.cs b/src/Gtk/Avalonia.Gtk/Windows.cs deleted file mode 100644 index fe325f4114..0000000000 --- a/src/Gtk/Avalonia.Gtk/Windows.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Platform; -using Gdk; -using Gtk; -using Window = Gtk.Window; -using WindowType = Gtk.WindowType; - -namespace Avalonia.Gtk -{ - class PlatformHandleAwareWindow : Window, IPlatformHandle - { - public PlatformHandleAwareWindow(WindowType type) : base(type) - { - Events = EventMask.AllEventsMask; - } - - IntPtr IPlatformHandle.Handle => GetNativeWindow(); - public string HandleDescriptor => "HWND"; - - - [DllImport("libgdk-win32-2.0-0.dll", CallingConvention = CallingConvention.Cdecl)] - static extern IntPtr gdk_win32_drawable_get_handle(IntPtr gdkWindow); - - [DllImport("libgtk-x11-2.0.so.0", CallingConvention = CallingConvention.Cdecl)] - static extern IntPtr gdk_x11_drawable_get_xid(IntPtr gdkWindow); - - [DllImport("libgdk-quartz-2.0-0.dylib", CallingConvention = CallingConvention.Cdecl)] - static extern IntPtr gdk_quartz_window_get_nswindow(IntPtr gdkWindow); - - IntPtr _nativeWindow; - - IntPtr GetNativeWindow() - { - if (_nativeWindow != IntPtr.Zero) - return _nativeWindow; - return _nativeWindow = GetNativeWindow(GdkWindow); - } - - public static IntPtr GetNativeWindow(Gdk.Window window) - { - IntPtr h = window.Handle; - - //Try whatever backend that works - try - { - return gdk_quartz_window_get_nswindow(h); - } - catch - { - } - try - { - return gdk_x11_drawable_get_xid(h); - } - catch - { - } - return gdk_win32_drawable_get_handle(h); - } - - protected override bool OnConfigureEvent(EventConfigure evnt) - { - base.OnConfigureEvent(evnt); - return false; - } - } - - class PlatformHandleAwareDrawingArea : DrawingArea, IPlatformHandle - { - - - - IntPtr IPlatformHandle.Handle => GetNativeWindow(); - public string HandleDescriptor => "HWND"; - IntPtr _nativeWindow; - - IntPtr GetNativeWindow() - { - - if (_nativeWindow != IntPtr.Zero) - return _nativeWindow; - Realize(); - return _nativeWindow = PlatformHandleAwareWindow.GetNativeWindow(GdkWindow); - } - } -} diff --git a/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj b/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj index 59bd58916b..bff41a65eb 100644 --- a/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj +++ b/src/Gtk/Avalonia.Gtk3/Avalonia.Gtk3.csproj @@ -25,9 +25,7 @@ - - KeyTransform.cs - + 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/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/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/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/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 80168c1237..e733f59059 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; -#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/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