From 80860aacf39a4ce9c403a36bd87ee414af1ba005 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Fri, 11 Jun 2021 13:23:50 +0200 Subject: [PATCH] Add support for SKXamlCanvas on Uno Platform SkiaSharp backends v2.0 (#1634) (#1704) * fix: [Uno] SKXamlCanvas is now a Canvas * feat: Add support for SKXamlCanvas when running on SkiaSharp based backends This enables SKXamlCanvas for Uno Platform's support for for GTK (Linux, Windows, macOS), WPF and Tizen, for Uno 3.6 and later. * feat: Add Uno Skia samples * bump uno samples to latest uno.ui for VS 16.10 pre3 changes * Update Uno all packages * ci: adjust for wasm net5 * fix: Update WPF sample * Remove unsupported tizen sample * chore: Update to Uno.UI 3.7.6 to fix invalid SkiaSharp.Views dependency * Update llvm to v11.1 Co-authored-by: Jerome Laban --- VERSIONS.txt | 2 +- build.cake | 2 +- native/windows/build.cake | 6 + nuget/SkiaSharp.Views.Uno.nuspec | 12 +- nuget/SkiaSharp.Views.nuspec | 3 - .../SkiaSharpSample.Android.csproj | 4 +- .../SkiaSharpSample.Wasm.csproj | 4 +- .../SkiaSharpSample.iOS.csproj | 4 +- .../SkiaSharpSample.macOS.csproj | 4 +- .../PlatformShared/SamplesInitializer.cs | 6 +- .../SkiaSharpSample.Android.csproj | 4 +- .../Assets/Fonts/uno-fluentui-assets.ttf | Bin 0 -> 138616 bytes .../Uno/SkiaSharpSample.Gtk/Program.cs | 24 +++ .../SkiaSharpSample.Gtk.csproj | 39 ++++ samples/Gallery/Uno/SkiaSharpSample.Linux.sln | 18 ++ samples/Gallery/Uno/SkiaSharpSample.Mac.sln | 84 +++++++++ .../Uno/SkiaSharpSample.WPF.Host/App.config | 6 + .../Uno/SkiaSharpSample.WPF.Host/App.xaml | 9 + .../Uno/SkiaSharpSample.WPF.Host/App.xaml.cs | 17 ++ .../Assets/Fonts/uno-fluentui-assets.ttf | Bin 0 -> 138616 bytes .../SkiaSharpSample.WPF.Host/MainWindow.xaml | 10 + .../MainWindow.xaml.cs | 32 ++++ .../Properties/AssemblyInfo.cs | 29 +++ .../Properties/Resources.Designer.cs | 71 +++++++ .../Properties/Resources.resx | 117 ++++++++++++ .../Properties/Settings.Designer.cs | 30 +++ .../Properties/Settings.settings | 7 + .../SkiaSharpSample.WPF.Host.csproj | 18 ++ .../SkiaSharpSample.WPF.csproj | 31 +++ .../Uno/SkiaSharpSample.Wasm/LinkerConfig.xml | 2 +- .../SkiaSharpSample.Wasm.csproj | 4 +- .../Gallery/Uno/SkiaSharpSample.Windows.sln | 178 ++++++++++++++++++ .../SkiaSharpSample.iOS.csproj | 4 +- .../SkiaSharpSample.macOS.csproj | 4 +- samples/Gallery/Uno/SkiaSharpSample.sln | 122 ++++++++++++ scripts/azure-templates-bootstrapper.yml | 2 + scripts/install-llvm.ps1 | 10 +- .../SKXamlCanvas.Android.cs | 2 +- .../SkiaSharp.Views.Uno.Android.csproj | 2 +- .../SKXamlCanvas.macOS.cs | 2 +- .../SkiaSharp.Views.Uno.Mac.csproj | 2 +- .../SKXamlCanvas.Reference.cs | 2 +- .../SkiaSharp.Views.Uno.Reference.csproj | 2 +- .../SKSwapChainPanel.Skia.cs | 40 ++++ .../SKXamlCanvas.Skia.cs | 137 ++++++++++++++ .../SkiaSharp.Views.Uno.Skia.csproj | 22 +++ .../SKXamlCanvas.Wasm.cs | 2 +- .../SkiaSharp.Views.Uno.Wasm.csproj | 4 +- .../SKXamlCanvas.iOS.cs | 2 +- .../SkiaSharp.Views.Uno.iOS.csproj | 2 +- .../SkiaSharp.Views.Uno/SKSwapChainPanel.cs | 2 + .../SkiaSharp.Views.Uno/SKXamlCanvas.cs | 7 +- source/SkiaSharpSource.Linux.sln | 15 +- source/SkiaSharpSource.Mac.sln | 7 + source/SkiaSharpSource.Windows.sln | 7 + source/SkiaSharpSource.sln | 7 + 56 files changed, 1134 insertions(+), 51 deletions(-) create mode 100644 samples/Gallery/Uno/SkiaSharpSample.Gtk/Assets/Fonts/uno-fluentui-assets.ttf create mode 100644 samples/Gallery/Uno/SkiaSharpSample.Gtk/Program.cs create mode 100644 samples/Gallery/Uno/SkiaSharpSample.Gtk/SkiaSharpSample.Gtk.csproj create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.config create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.xaml create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.xaml.cs create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Assets/Fonts/uno-fluentui-assets.ttf create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/MainWindow.xaml create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/MainWindow.xaml.cs create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/AssemblyInfo.cs create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Resources.Designer.cs create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Resources.resx create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Settings.Designer.cs create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Settings.settings create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF.Host/SkiaSharpSample.WPF.Host.csproj create mode 100644 samples/Gallery/Uno/SkiaSharpSample.WPF/SkiaSharpSample.WPF.csproj create mode 100644 source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SKSwapChainPanel.Skia.cs create mode 100644 source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SKXamlCanvas.Skia.cs create mode 100644 source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SkiaSharp.Views.Uno.Skia.csproj diff --git a/VERSIONS.txt b/VERSIONS.txt index 729052d189..6ef24e251a 100644 --- a/VERSIONS.txt +++ b/VERSIONS.txt @@ -21,7 +21,7 @@ System.Memory release 4.5.3 System.IO.UnmanagedMemoryStream release 4.3.0 System.Drawing.Common release 4.5.1 SharpVk release 0.4.2 -Uno.UI release 3.7.4 +Uno.UI release 3.7.6 Microsoft.ProjectReunion release 0.5.0 Microsoft.ProjectReunion.Foundation release 0.5.0 Microsoft.ProjectReunion.WinUI release 0.5.0 diff --git a/build.cake b/build.cake index a741ce5f97..4a8ec3adc1 100644 --- a/build.cake +++ b/build.cake @@ -50,7 +50,7 @@ DirectoryPath DOCS_PATH = MakeAbsolute(ROOT_PATH.Combine("docs/SkiaSharpAPI")); var PREVIEW_LABEL = Argument ("previewLabel", EnvironmentVariable ("PREVIEW_LABEL") ?? "preview"); var FEATURE_NAME = EnvironmentVariable ("FEATURE_NAME") ?? ""; -var BUILD_NUMBER = EnvironmentVariable ("BUILD_NUMBER") ?? "0"; +var BUILD_NUMBER = Argument ("buildNumber", EnvironmentVariable ("BUILD_NUMBER") ?? "0"); var GIT_SHA = Argument ("gitSha", EnvironmentVariable ("GIT_SHA") ?? ""); var GIT_BRANCH_NAME = Argument ("gitBranch", EnvironmentVariable ("GIT_BRANCH_NAME") ?? ""); diff --git a/native/windows/build.cake b/native/windows/build.cake index 0ceccc7041..4cc3eed893 100644 --- a/native/windows/build.cake +++ b/native/windows/build.cake @@ -11,6 +11,12 @@ bool SUPPORT_VULKAN = SUPPORT_VULKAN_VAR == "1" || SUPPORT_VULKAN_VAR.ToLower () string VARIANT = BUILD_VARIANT ?? "windows"; +Information("Native Arguments:"); +Information($" {"LLVM_HOME".PadRight(30)} {{0}}", LLVM_HOME); +Information($" {"SUPPORT_VULKAN".PadRight(30)} {{0}}", SUPPORT_VULKAN); +Information($" {"VARIANT".PadRight(30)} {{0}}", VARIANT); +Information($" {"CONFIGURATION".PadRight(30)} {{0}}", CONFIGURATION); + Task("libSkiaSharp") .IsDependentOn("git-sync-deps") .WithCriteria(IsRunningOnWindows()) diff --git a/nuget/SkiaSharp.Views.Uno.nuspec b/nuget/SkiaSharp.Views.Uno.nuspec index 1642710349..7896e6c809 100644 --- a/nuget/SkiaSharp.Views.Uno.nuspec +++ b/nuget/SkiaSharp.Views.Uno.nuspec @@ -28,24 +28,24 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release - + - + - + - + - + @@ -59,6 +59,8 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release + + diff --git a/nuget/SkiaSharp.Views.nuspec b/nuget/SkiaSharp.Views.nuspec index 7c824975ec..e4db594b84 100644 --- a/nuget/SkiaSharp.Views.nuspec +++ b/nuget/SkiaSharp.Views.nuspec @@ -27,9 +27,6 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release © Microsoft Corporation. All rights reserved. - - - diff --git a/samples/Basic/Uno/SkiaSharpSample.Android/SkiaSharpSample.Android.csproj b/samples/Basic/Uno/SkiaSharpSample.Android/SkiaSharpSample.Android.csproj index d0d3e35fcc..f3ececd991 100644 --- a/samples/Basic/Uno/SkiaSharpSample.Android/SkiaSharpSample.Android.csproj +++ b/samples/Basic/Uno/SkiaSharpSample.Android/SkiaSharpSample.Android.csproj @@ -56,8 +56,8 @@ - - + + diff --git a/samples/Basic/Uno/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj b/samples/Basic/Uno/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj index 8d093566c1..46b66c35b9 100644 --- a/samples/Basic/Uno/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj +++ b/samples/Basic/Uno/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj @@ -22,8 +22,8 @@ - - + + diff --git a/samples/Basic/Uno/SkiaSharpSample.iOS/SkiaSharpSample.iOS.csproj b/samples/Basic/Uno/SkiaSharpSample.iOS/SkiaSharpSample.iOS.csproj index cc5454888a..9bdb285039 100644 --- a/samples/Basic/Uno/SkiaSharpSample.iOS/SkiaSharpSample.iOS.csproj +++ b/samples/Basic/Uno/SkiaSharpSample.iOS/SkiaSharpSample.iOS.csproj @@ -95,8 +95,8 @@ - - + + diff --git a/samples/Basic/Uno/SkiaSharpSample.macOS/SkiaSharpSample.macOS.csproj b/samples/Basic/Uno/SkiaSharpSample.macOS/SkiaSharpSample.macOS.csproj index da0f5664e9..46efe99bfe 100644 --- a/samples/Basic/Uno/SkiaSharpSample.macOS/SkiaSharpSample.macOS.csproj +++ b/samples/Basic/Uno/SkiaSharpSample.macOS/SkiaSharpSample.macOS.csproj @@ -41,8 +41,8 @@ - - + + diff --git a/samples/Gallery/PlatformShared/SamplesInitializer.cs b/samples/Gallery/PlatformShared/SamplesInitializer.cs index 9ae3f3cfbd..a004e720a2 100644 --- a/samples/Gallery/PlatformShared/SamplesInitializer.cs +++ b/samples/Gallery/PlatformShared/SamplesInitializer.cs @@ -2,7 +2,7 @@ using System.IO; using System.Linq; using Xamarin.Essentials; -#if __WASM__ +#if __WASM__ || HAS_UNO_SKIA using System.Runtime.InteropServices; using Windows.ApplicationModel; using Windows.Storage; @@ -47,7 +47,7 @@ public static void Init() { var fontName = "content-font.ttf"; -#if WINDOWS_UWP +#if WINDOWS_UWP || HAS_UNO_SKIA var pkg = Package.Current.InstalledLocation.Path; var path = Path.Combine(pkg, "Assets", "Media", fontName); #elif __IOS__ || __TVOS__ || __MACOS__ @@ -86,7 +86,7 @@ public static void Init() var localStorage = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments); #elif __DESKTOP__ var localStorage = System.Windows.Forms.Application.LocalUserAppDataPath; -#elif __WASM__ +#elif __WASM__ || HAS_UNO_SKIA var localStorage = ApplicationData.Current.LocalFolder.Path; #endif diff --git a/samples/Gallery/Uno/SkiaSharpSample.Android/SkiaSharpSample.Android.csproj b/samples/Gallery/Uno/SkiaSharpSample.Android/SkiaSharpSample.Android.csproj index be20f3efd0..d7e1dd3dc1 100644 --- a/samples/Gallery/Uno/SkiaSharpSample.Android/SkiaSharpSample.Android.csproj +++ b/samples/Gallery/Uno/SkiaSharpSample.Android/SkiaSharpSample.Android.csproj @@ -57,8 +57,8 @@ - - + + diff --git a/samples/Gallery/Uno/SkiaSharpSample.Gtk/Assets/Fonts/uno-fluentui-assets.ttf b/samples/Gallery/Uno/SkiaSharpSample.Gtk/Assets/Fonts/uno-fluentui-assets.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fedc86ff3b6e5ff59f36fbcbd208d6cb65d5e85e GIT binary patch literal 138616 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�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 new App(), args); + + host.Run(); + } + } +} diff --git a/samples/Gallery/Uno/SkiaSharpSample.Gtk/SkiaSharpSample.Gtk.csproj b/samples/Gallery/Uno/SkiaSharpSample.Gtk/SkiaSharpSample.Gtk.csproj new file mode 100644 index 0000000000..45e5ea5666 --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.Gtk/SkiaSharpSample.Gtk.csproj @@ -0,0 +1,39 @@ + + + WinExe + Exe + net5.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Assets\Media\content-font.ttf + PreserveNewest + + + + \ No newline at end of file diff --git a/samples/Gallery/Uno/SkiaSharpSample.Linux.sln b/samples/Gallery/Uno/SkiaSharpSample.Linux.sln index da2d247255..b5f9ceb7a8 100644 --- a/samples/Gallery/Uno/SkiaSharpSample.Linux.sln +++ b/samples/Gallery/Uno/SkiaSharpSample.Linux.sln @@ -11,6 +11,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp", "..\..\..\binding\SkiaSharp\SkiaSharp.csproj", "{409AF271-D8B7-4F79-B293-02F562A51955}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{E9507AEE-7C7C-4495-9698-D95DEBAA2AD0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.HarfBuzz", "..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj", "{D0580308-2C5A-4B6D-8884-25CA3A5AD304}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp", "..\..\..\binding\HarfBuzzSharp\HarfBuzzSharp.csproj", "{42F0E7DE-941E-4348-ACDE-7DCF61D05E6B}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13 @@ -33,6 +39,18 @@ Global {409AF271-D8B7-4F79-B293-02F562A51955}.Debug|Any CPU.Build.0 = Debug|Any CPU {409AF271-D8B7-4F79-B293-02F562A51955}.Release|Any CPU.ActiveCfg = Release|Any CPU {409AF271-D8B7-4F79-B293-02F562A51955}.Release|Any CPU.Build.0 = Release|Any CPU + {E9507AEE-7C7C-4495-9698-D95DEBAA2AD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9507AEE-7C7C-4495-9698-D95DEBAA2AD0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9507AEE-7C7C-4495-9698-D95DEBAA2AD0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9507AEE-7C7C-4495-9698-D95DEBAA2AD0}.Release|Any CPU.Build.0 = Release|Any CPU + {D0580308-2C5A-4B6D-8884-25CA3A5AD304}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0580308-2C5A-4B6D-8884-25CA3A5AD304}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0580308-2C5A-4B6D-8884-25CA3A5AD304}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0580308-2C5A-4B6D-8884-25CA3A5AD304}.Release|Any CPU.Build.0 = Release|Any CPU + {42F0E7DE-941E-4348-ACDE-7DCF61D05E6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42F0E7DE-941E-4348-ACDE-7DCF61D05E6B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42F0E7DE-941E-4348-ACDE-7DCF61D05E6B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42F0E7DE-941E-4348-ACDE-7DCF61D05E6B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/samples/Gallery/Uno/SkiaSharpSample.Mac.sln b/samples/Gallery/Uno/SkiaSharpSample.Mac.sln index 4df7e10f9b..229cd37599 100644 --- a/samples/Gallery/Uno/SkiaSharpSample.Mac.sln +++ b/samples/Gallery/Uno/SkiaSharpSample.Mac.sln @@ -25,6 +25,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.OSX", "..\..\..\b EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp", "..\..\..\binding\SkiaSharp\SkiaSharp.csproj", "{409AF271-D8B7-4F79-B293-02F562A51955}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.Android", "..\..\..\binding\HarfBuzzSharp.Android\HarfBuzzSharp.Android.csproj", "{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp", "..\..\..\binding\HarfBuzzSharp\HarfBuzzSharp.csproj", "{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.iOS", "..\..\..\binding\HarfBuzzSharp.iOS\HarfBuzzSharp.iOS.csproj", "{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.OSX", "..\..\..\binding\HarfBuzzSharp.OSX\HarfBuzzSharp.OSX.csproj", "{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.HarfBuzz", "..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj", "{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{2a19c71c-d1ab-4c70-b821-6a7c7c4abe66}*SharedItemsImports = 4 @@ -167,6 +179,78 @@ Global {409AF271-D8B7-4F79-B293-02F562A51955}.Release|iPhone.Build.0 = Release|Any CPU {409AF271-D8B7-4F79-B293-02F562A51955}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU {409AF271-D8B7-4F79-B293-02F562A51955}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|iPhone.Build.0 = Debug|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|Any CPU.Build.0 = Release|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|iPhone.ActiveCfg = Release|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|iPhone.Build.0 = Release|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|iPhone.Build.0 = Debug|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|Any CPU.Build.0 = Release|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|iPhone.ActiveCfg = Release|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|iPhone.Build.0 = Release|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|iPhone.Build.0 = Debug|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|Any CPU.Build.0 = Release|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|iPhone.ActiveCfg = Release|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|iPhone.Build.0 = Release|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|iPhone.Build.0 = Debug|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|Any CPU.Build.0 = Release|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|iPhone.ActiveCfg = Release|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|iPhone.Build.0 = Release|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|iPhone.Build.0 = Debug|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|Any CPU.Build.0 = Release|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|iPhone.ActiveCfg = Release|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|iPhone.Build.0 = Release|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|iPhone.Build.0 = Debug|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|Any CPU.Build.0 = Release|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|iPhone.ActiveCfg = Release|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|iPhone.Build.0 = Release|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.config b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.config new file mode 100644 index 0000000000..20939707c8 --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.xaml b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.xaml new file mode 100644 index 0000000000..12c2ebb2be --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.xaml.cs b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.xaml.cs new file mode 100644 index 0000000000..ac5c92bf40 --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/App.xaml.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; + +namespace SkiaSharpSample.WPF.Host +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Assets/Fonts/uno-fluentui-assets.ttf b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Assets/Fonts/uno-fluentui-assets.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fedc86ff3b6e5ff59f36fbcbd208d6cb65d5e85e GIT binary patch literal 138616 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�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 + + diff --git a/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/MainWindow.xaml.cs b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/MainWindow.xaml.cs new file mode 100644 index 0000000000..0a323a93d3 --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/MainWindow.xaml.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace SkiaSharpSample.WPF.Host +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + + SkiaSharp.Views.UWP.SKSwapChainPanel.RaiseOnUnsupported = false; + + root.Content = new global::Uno.UI.Skia.Platform.WpfHost(Dispatcher, () => new SkiaSharpSample.App()); + } + } +} diff --git a/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/AssemblyInfo.cs b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..a58ef709d6 --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// 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)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Resources.Designer.cs b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Resources.Designer.cs new file mode 100644 index 0000000000..58585ce813 --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// 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 SkiaSharpSample.WPF.Host.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("SkiaSharpSample.WPF.Host.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/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Resources.resx b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Resources.resx new file mode 100644 index 0000000000..af7dbebbac --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Settings.Designer.cs b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Settings.Designer.cs new file mode 100644 index 0000000000..d67486c910 --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// 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 SkiaSharpSample.WPF.Host.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/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Settings.settings b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Settings.settings new file mode 100644 index 0000000000..9010101f83 --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/SkiaSharpSample.WPF.Host.csproj b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/SkiaSharpSample.WPF.Host.csproj new file mode 100644 index 0000000000..6ba2ed7507 --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/SkiaSharpSample.WPF.Host.csproj @@ -0,0 +1,18 @@ + + + WinExe + Exe + netcoreapp3.1 + true + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/Gallery/Uno/SkiaSharpSample.WPF/SkiaSharpSample.WPF.csproj b/samples/Gallery/Uno/SkiaSharpSample.WPF/SkiaSharpSample.WPF.csproj new file mode 100644 index 0000000000..0e7f7b9b84 --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF/SkiaSharpSample.WPF.csproj @@ -0,0 +1,31 @@ + + + netstandard2.0 + 8.0 + + + + + + + + + + + + + + + + + + + + + + Assets\Media\content-font.ttf + PreserveNewest + + + + \ No newline at end of file diff --git a/samples/Gallery/Uno/SkiaSharpSample.Wasm/LinkerConfig.xml b/samples/Gallery/Uno/SkiaSharpSample.Wasm/LinkerConfig.xml index cf17b63053..94ad47c28b 100644 --- a/samples/Gallery/Uno/SkiaSharpSample.Wasm/LinkerConfig.xml +++ b/samples/Gallery/Uno/SkiaSharpSample.Wasm/LinkerConfig.xml @@ -5,5 +5,5 @@ - + diff --git a/samples/Gallery/Uno/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj b/samples/Gallery/Uno/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj index 29509326c6..d6c7233efb 100644 --- a/samples/Gallery/Uno/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj +++ b/samples/Gallery/Uno/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj @@ -23,8 +23,8 @@ - - + + diff --git a/samples/Gallery/Uno/SkiaSharpSample.Windows.sln b/samples/Gallery/Uno/SkiaSharpSample.Windows.sln index 54d04fe0d5..87b57cb0bc 100644 --- a/samples/Gallery/Uno/SkiaSharpSample.Windows.sln +++ b/samples/Gallery/Uno/SkiaSharpSample.Windows.sln @@ -23,12 +23,30 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp", "..\..\..\binding\SkiaSharp\SkiaSharp.csproj", "{409AF271-D8B7-4F79-B293-02F562A51955}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp", "..\..\..\binding\HarfBuzzSharp\HarfBuzzSharp.csproj", "{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.Android", "..\..\..\binding\HarfBuzzSharp.Android\HarfBuzzSharp.Android.csproj", "{CDB278FF-2188-4B0B-9EE9-9D310363E733}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.UWP", "..\..\..\binding\HarfBuzzSharp.UWP\HarfBuzzSharp.UWP.csproj", "{7B18043D-8B3C-4A90-A0E6-A586785F0742}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.HarfBuzz", "..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj", "{99DC411D-8FC3-4D60-B217-47EAAE54E21F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Gtk", "SkiaSharpSample.Gtk\SkiaSharpSample.Gtk.csproj", "{76800B1B-AC93-4451-AA67-9B5F867DAD35}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.WPF", "SkiaSharpSample.WPF\SkiaSharpSample.WPF.csproj", "{D4E1BD04-F37B-432E-89D7-98595FBA6D11}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.WPF.Host", "SkiaSharpSample.WPF.Host\SkiaSharpSample.WPF.Host.csproj", "{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13 + SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{76800b1b-ac93-4451-aa67-9b5f867dad35}*SharedItemsImports = 5 SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{8b8db39e-c0ff-4edc-83a6-0b6a4ab763ee}*SharedItemsImports = 4 SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{9726301d-8a93-4a06-88df-92ba01cf80ad}*SharedItemsImports = 5 SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{ae39aa1d-32c8-482b-9395-ad5493c98f7e}*SharedItemsImports = 4 + SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{d4e1bd04-f37b-432e-89d7-98595fba6d11}*SharedItemsImports = 5 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -243,6 +261,166 @@ Global {409AF271-D8B7-4F79-B293-02F562A51955}.Release|x64.Build.0 = Release|Any CPU {409AF271-D8B7-4F79-B293-02F562A51955}.Release|x86.ActiveCfg = Release|Any CPU {409AF271-D8B7-4F79-B293-02F562A51955}.Release|x86.Build.0 = Release|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|ARM.ActiveCfg = Debug|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|ARM.Build.0 = Debug|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|ARM64.Build.0 = Debug|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|x64.ActiveCfg = Debug|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|x64.Build.0 = Debug|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|x86.ActiveCfg = Debug|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|x86.Build.0 = Debug|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|Any CPU.Build.0 = Release|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|ARM.ActiveCfg = Release|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|ARM.Build.0 = Release|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|ARM64.ActiveCfg = Release|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|ARM64.Build.0 = Release|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|x64.ActiveCfg = Release|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|x64.Build.0 = Release|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|x86.ActiveCfg = Release|Any CPU + {B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|x86.Build.0 = Release|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|ARM.Build.0 = Debug|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|ARM64.Build.0 = Debug|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|x64.ActiveCfg = Debug|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|x64.Build.0 = Debug|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|x86.ActiveCfg = Debug|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|x86.Build.0 = Debug|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|Any CPU.Build.0 = Release|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|ARM.ActiveCfg = Release|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|ARM.Build.0 = Release|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|ARM64.ActiveCfg = Release|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|ARM64.Build.0 = Release|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|x64.ActiveCfg = Release|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|x64.Build.0 = Release|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|x86.ActiveCfg = Release|Any CPU + {CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|x86.Build.0 = Release|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|ARM.ActiveCfg = Debug|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|ARM.Build.0 = Debug|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|ARM64.Build.0 = Debug|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|x64.ActiveCfg = Debug|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|x64.Build.0 = Debug|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|x86.ActiveCfg = Debug|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|x86.Build.0 = Debug|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|Any CPU.Build.0 = Release|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|ARM.ActiveCfg = Release|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|ARM.Build.0 = Release|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|ARM64.ActiveCfg = Release|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|ARM64.Build.0 = Release|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|x64.ActiveCfg = Release|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|x64.Build.0 = Release|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|x86.ActiveCfg = Release|Any CPU + {7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|x86.Build.0 = Release|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|ARM.ActiveCfg = Debug|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|ARM.Build.0 = Debug|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|ARM64.Build.0 = Debug|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|x64.ActiveCfg = Debug|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|x64.Build.0 = Debug|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|x86.ActiveCfg = Debug|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|x86.Build.0 = Debug|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|Any CPU.Build.0 = Release|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|ARM.ActiveCfg = Release|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|ARM.Build.0 = Release|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|ARM64.ActiveCfg = Release|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|ARM64.Build.0 = Release|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|x64.ActiveCfg = Release|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|x64.Build.0 = Release|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|x86.ActiveCfg = Release|Any CPU + {99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|x86.Build.0 = Release|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|ARM.ActiveCfg = Debug|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|ARM.Build.0 = Debug|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|ARM64.Build.0 = Debug|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|x64.ActiveCfg = Debug|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|x64.Build.0 = Debug|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|x86.ActiveCfg = Debug|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|x86.Build.0 = Debug|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|Any CPU.Build.0 = Release|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|ARM.ActiveCfg = Release|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|ARM.Build.0 = Release|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|ARM64.ActiveCfg = Release|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|ARM64.Build.0 = Release|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|x64.ActiveCfg = Release|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|x64.Build.0 = Release|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|x86.ActiveCfg = Release|Any CPU + {EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|x86.Build.0 = Release|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|ARM.ActiveCfg = Debug|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|ARM.Build.0 = Debug|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|ARM64.Build.0 = Debug|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|x64.ActiveCfg = Debug|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|x64.Build.0 = Debug|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|x86.ActiveCfg = Debug|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|x86.Build.0 = Debug|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|Any CPU.Build.0 = Release|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|ARM.ActiveCfg = Release|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|ARM.Build.0 = Release|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|ARM64.ActiveCfg = Release|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|ARM64.Build.0 = Release|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|x64.ActiveCfg = Release|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|x64.Build.0 = Release|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|x86.ActiveCfg = Release|Any CPU + {76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|x86.Build.0 = Release|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|ARM.Build.0 = Debug|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|ARM64.Build.0 = Debug|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|x64.ActiveCfg = Debug|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|x64.Build.0 = Debug|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|x86.ActiveCfg = Debug|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|x86.Build.0 = Debug|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|Any CPU.Build.0 = Release|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|ARM.ActiveCfg = Release|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|ARM.Build.0 = Release|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|ARM64.ActiveCfg = Release|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|ARM64.Build.0 = Release|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|x64.ActiveCfg = Release|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|x64.Build.0 = Release|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|x86.ActiveCfg = Release|Any CPU + {D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|x86.Build.0 = Release|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|Any CPU.Build.0 = Debug|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|ARM.ActiveCfg = Debug|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|ARM.Build.0 = Debug|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|ARM64.Build.0 = Debug|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|x64.ActiveCfg = Debug|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|x64.Build.0 = Debug|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|x86.ActiveCfg = Debug|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|x86.Build.0 = Debug|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|Any CPU.ActiveCfg = Release|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|Any CPU.Build.0 = Release|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|ARM.ActiveCfg = Release|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|ARM.Build.0 = Release|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|ARM64.ActiveCfg = Release|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|ARM64.Build.0 = Release|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|x64.ActiveCfg = Release|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|x64.Build.0 = Release|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|x86.ActiveCfg = Release|Any CPU + {524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/samples/Gallery/Uno/SkiaSharpSample.iOS/SkiaSharpSample.iOS.csproj b/samples/Gallery/Uno/SkiaSharpSample.iOS/SkiaSharpSample.iOS.csproj index d60bc93eb0..9e80ff1409 100644 --- a/samples/Gallery/Uno/SkiaSharpSample.iOS/SkiaSharpSample.iOS.csproj +++ b/samples/Gallery/Uno/SkiaSharpSample.iOS/SkiaSharpSample.iOS.csproj @@ -101,8 +101,8 @@ - - + + diff --git a/samples/Gallery/Uno/SkiaSharpSample.macOS/SkiaSharpSample.macOS.csproj b/samples/Gallery/Uno/SkiaSharpSample.macOS/SkiaSharpSample.macOS.csproj index e0cec81a24..3fc1aad818 100644 --- a/samples/Gallery/Uno/SkiaSharpSample.macOS/SkiaSharpSample.macOS.csproj +++ b/samples/Gallery/Uno/SkiaSharpSample.macOS/SkiaSharpSample.macOS.csproj @@ -42,8 +42,8 @@ - - + + diff --git a/samples/Gallery/Uno/SkiaSharpSample.sln b/samples/Gallery/Uno/SkiaSharpSample.sln index 6e46f25c69..563867fbd1 100644 --- a/samples/Gallery/Uno/SkiaSharpSample.sln +++ b/samples/Gallery/Uno/SkiaSharpSample.sln @@ -49,14 +49,24 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.UWP", "..\..\ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.HarfBuzz", "..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj", "{731BCCC9-4E61-4410-AAF2-897D7E1E88AD}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Gtk", "SkiaSharpSample.Gtk\SkiaSharpSample.Gtk.csproj", "{FF61F844-F706-4503-8074-DCD0BFA57125}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.WPF", "SkiaSharpSample.WPF\SkiaSharpSample.WPF.csproj", "{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.WPF.Host", "SkiaSharpSample.WPF.Host\SkiaSharpSample.WPF.Host.csproj", "{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{F5700942-5F78-4D24-828E-07C46A0F2C8A}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{2a19c71c-d1ab-4c70-b821-6a7c7c4abe66}*SharedItemsImports = 4 + SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{3ca0ee89-76c2-4a8e-96d6-9c5f2b05905e}*SharedItemsImports = 5 SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13 SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{8b8db39e-c0ff-4edc-83a6-0b6a4ab763ee}*SharedItemsImports = 4 SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{9726301d-8a93-4a06-88df-92ba01cf80ad}*SharedItemsImports = 5 SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{ae39aa1d-32c8-482b-9395-ad5493c98f7e}*SharedItemsImports = 4 SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{b3a30dc3-0e2d-4f46-97c5-fdc6ab8062e6}*SharedItemsImports = 4 + SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{ff61f844-f706-4503-8074-dcd0bfa57125}*SharedItemsImports = 5 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -728,6 +738,118 @@ Global {731BCCC9-4E61-4410-AAF2-897D7E1E88AD}.Release|x64.Build.0 = Release|Any CPU {731BCCC9-4E61-4410-AAF2-897D7E1E88AD}.Release|x86.ActiveCfg = Release|Any CPU {731BCCC9-4E61-4410-AAF2-897D7E1E88AD}.Release|x86.Build.0 = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|ARM.ActiveCfg = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|ARM.Build.0 = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|ARM64.Build.0 = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|iPhone.Build.0 = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|x64.ActiveCfg = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|x64.Build.0 = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|x86.ActiveCfg = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|x86.Build.0 = Debug|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|Any CPU.Build.0 = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|ARM.ActiveCfg = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|ARM.Build.0 = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|ARM64.ActiveCfg = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|ARM64.Build.0 = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|iPhone.ActiveCfg = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|iPhone.Build.0 = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|x64.ActiveCfg = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|x64.Build.0 = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|x86.ActiveCfg = Release|Any CPU + {FF61F844-F706-4503-8074-DCD0BFA57125}.Release|x86.Build.0 = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|ARM.ActiveCfg = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|ARM.Build.0 = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|ARM64.Build.0 = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|iPhone.Build.0 = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|x64.ActiveCfg = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|x64.Build.0 = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|x86.ActiveCfg = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|x86.Build.0 = Debug|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|Any CPU.Build.0 = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|ARM.ActiveCfg = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|ARM.Build.0 = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|ARM64.ActiveCfg = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|ARM64.Build.0 = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|iPhone.ActiveCfg = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|iPhone.Build.0 = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|x64.ActiveCfg = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|x64.Build.0 = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|x86.ActiveCfg = Release|Any CPU + {3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|x86.Build.0 = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|ARM.ActiveCfg = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|ARM.Build.0 = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|ARM64.Build.0 = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|iPhone.Build.0 = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|x64.ActiveCfg = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|x64.Build.0 = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|x86.ActiveCfg = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|x86.Build.0 = Debug|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|Any CPU.Build.0 = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|ARM.ActiveCfg = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|ARM.Build.0 = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|ARM64.ActiveCfg = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|ARM64.Build.0 = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|iPhone.ActiveCfg = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|iPhone.Build.0 = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|x64.ActiveCfg = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|x64.Build.0 = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|x86.ActiveCfg = Release|Any CPU + {A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|x86.Build.0 = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|ARM.Build.0 = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|ARM64.Build.0 = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|iPhone.Build.0 = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|x64.ActiveCfg = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|x64.Build.0 = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|x86.ActiveCfg = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|x86.Build.0 = Debug|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|Any CPU.Build.0 = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|ARM.ActiveCfg = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|ARM.Build.0 = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|ARM64.ActiveCfg = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|ARM64.Build.0 = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|iPhone.ActiveCfg = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|iPhone.Build.0 = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|x64.ActiveCfg = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|x64.Build.0 = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|x86.ActiveCfg = Release|Any CPU + {F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/scripts/azure-templates-bootstrapper.yml b/scripts/azure-templates-bootstrapper.yml index f030fbac9f..ee62ddea32 100644 --- a/scripts/azure-templates-bootstrapper.yml +++ b/scripts/azure-templates-bootstrapper.yml @@ -111,6 +111,8 @@ jobs: version: $(DOTNET_VERSION) performMultiLevelLookup: true displayName: Install the correct version of .NET Core + - pwsh: dotnet --info + displayName: Display all the .NET information # install the mac tools - ${{ if endsWith(parameters.name, '_macos') }}: diff --git a/scripts/install-llvm.ps1 b/scripts/install-llvm.ps1 index 69bd5c98ae..13f9e520b5 100644 --- a/scripts/install-llvm.ps1 +++ b/scripts/install-llvm.ps1 @@ -1,5 +1,6 @@ Param( - [string] $Version = "10.0.0" + [string] $Version = "11.1.0", + [string] $InstallDestination = "C:\Program Files\LLVM" ) $ErrorActionPreference = 'Stop' @@ -18,9 +19,12 @@ New-Item -ItemType Directory -Force -Path "$llvmTemp" | Out-Null # install Write-Host "Installing LLVM..." -& $install /S +& 7z x $install -y -o"$InstallDestination" + +# echo version +& "$InstallDestination\bin\clang.exe" --version # make sure that LLVM is in LLVM_HOME -Write-Host "##vso[task.setvariable variable=LLVM_HOME;]C:\Program Files\LLVM"; +Write-Host "##vso[task.setvariable variable=LLVM_HOME;]$InstallDestination"; exit $LASTEXITCODE diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Android/SKXamlCanvas.Android.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Android/SKXamlCanvas.Android.cs index a175a86571..c2719d77d1 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Android/SKXamlCanvas.Android.cs +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Android/SKXamlCanvas.Android.cs @@ -4,7 +4,7 @@ namespace SkiaSharp.Views.UWP { - public partial class SKXamlCanvas : FrameworkElement + public partial class SKXamlCanvas { private SurfaceFactory surfaceFactory; diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Android/SkiaSharp.Views.Uno.Android.csproj b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Android/SkiaSharp.Views.Uno.Android.csproj index 462a6027ca..286bc44a48 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Android/SkiaSharp.Views.Uno.Android.csproj +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Android/SkiaSharp.Views.Uno.Android.csproj @@ -8,7 +8,7 @@ monoandroid1.0 - + diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Mac/SKXamlCanvas.macOS.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Mac/SKXamlCanvas.macOS.cs index 65e316ee4b..19a31a54c3 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Mac/SKXamlCanvas.macOS.cs +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Mac/SKXamlCanvas.macOS.cs @@ -5,7 +5,7 @@ namespace SkiaSharp.Views.UWP { - public partial class SKXamlCanvas : FrameworkElement + public partial class SKXamlCanvas { private SKCGSurfaceFactory drawable; diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Mac/SkiaSharp.Views.Uno.Mac.csproj b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Mac/SkiaSharp.Views.Uno.Mac.csproj index 17ec55f067..562d271687 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Mac/SkiaSharp.Views.Uno.Mac.csproj +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Mac/SkiaSharp.Views.Uno.Mac.csproj @@ -8,7 +8,7 @@ $(DefineConstants);__MACOS__ - + diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Reference/SKXamlCanvas.Reference.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Reference/SKXamlCanvas.Reference.cs index 408ccf5855..9c0ecdf832 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Reference/SKXamlCanvas.Reference.cs +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Reference/SKXamlCanvas.Reference.cs @@ -4,7 +4,7 @@ namespace SkiaSharp.Views.UWP { - public partial class SKXamlCanvas : FrameworkElement + public partial class SKXamlCanvas { public SKXamlCanvas() { diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Reference/SkiaSharp.Views.Uno.Reference.csproj b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Reference/SkiaSharp.Views.Uno.Reference.csproj index 5ecd845884..73f58c3d61 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Reference/SkiaSharp.Views.Uno.Reference.csproj +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Reference/SkiaSharp.Views.Uno.Reference.csproj @@ -7,7 +7,7 @@ SkiaSharp.Views.Uno - + diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SKSwapChainPanel.Skia.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SKSwapChainPanel.Skia.cs new file mode 100644 index 0000000000..690898f2b9 --- /dev/null +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SKSwapChainPanel.Skia.cs @@ -0,0 +1,40 @@ +using System; +using System.Threading; +using Uno.Foundation; +using Windows.UI.Xaml; + +namespace SkiaSharp.Views.UWP +{ + public partial class SKSwapChainPanel + { + public SKSwapChainPanel() + { + if (RaiseOnUnsupported) + { + throw new NotSupportedException($"SKSwapChainPanel is not supported for Skia based platforms"); + } + } + + private SKSize GetCanvasSize() + { + if (RaiseOnUnsupported) + { + throw new NotSupportedException($"SKSwapChainPanel is not supported for Skia based platforms"); + } + + return new SKSize(); + } + + private GRContext GetGRContext() + { + if (RaiseOnUnsupported) + { + throw new NotSupportedException($"SKSwapChainPanel is not supported for Skia based platforms"); + } + + return null; + } + + private void DoInvalidate() { } + } +} diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SKXamlCanvas.Skia.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SKXamlCanvas.Skia.cs new file mode 100644 index 0000000000..0a5711d5eb --- /dev/null +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SKXamlCanvas.Skia.cs @@ -0,0 +1,137 @@ +using System; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Media.Imaging; + +namespace SkiaSharp.Views.UWP +{ + public partial class SKXamlCanvas : Canvas + { + private byte[] pixels; + private GCHandle pixelsHandle; + private int pixelWidth; + private int pixelHeight; + private WriteableBitmap bitmap; + + public SKXamlCanvas() + { + Initialize(); + } + + partial void DoUnloaded() => + FreeBitmap(); + + private SKSize GetCanvasSize() => + new SKSize(pixelWidth, pixelHeight); + + private void DoInvalidate() + { + if (designMode) + return; + + if (!isVisible) + return; + + if (ActualWidth <= 0 || ActualHeight <= 0) + return; + + var info = CreateBitmap(); + + using (var surface = SKSurface.Create(info, pixelsHandle.AddrOfPinnedObject(), info.RowBytes)) + { + OnPaintSurface(new SKPaintSurfaceEventArgs(surface, info)); + } + + // This implementation is not fast enough, and providing the original pixel buffer + // is needed, yet the internal `IBufferByteAccess` interface is not yet available in Uno. + // Once it is, we can replace this implementation and provide the pinned array directly + // to skia. + using (var data = bitmap.PixelBuffer.AsStream()) + { + data.Write(pixels, 0, pixels.Length); + data.Flush(); + } + + bitmap.Invalidate(); + } + + private SKSizeI CreateSize() + { + var w = ActualWidth; + var h = ActualHeight; + + if (!IsPositive(w) || !IsPositive(h)) + return SKSizeI.Empty; + + if (IgnorePixelScaling) + return new SKSizeI((int)w, (int)h); + + var dpi = Dpi; + return new SKSizeI((int)(w * dpi), (int)(h * dpi)); + + static bool IsPositive(double value) + { + return !double.IsNaN(value) && !double.IsInfinity(value) && value > 0; + } + } + + private SKImageInfo CreateBitmap() + { + var size = CreateSize(); + var info = new SKImageInfo(size.Width, size.Height, SKImageInfo.PlatformColorType, SKAlphaType.Premul); + + if (bitmap?.PixelWidth != info.Width || bitmap?.PixelHeight != info.Height) + FreeBitmap(); + + if (bitmap == null && info.Width > 0 && info.Height > 0) + { + bitmap = new WriteableBitmap(info.Width, info.Height); + + var brush = new ImageBrush + { + ImageSource = bitmap, + AlignmentX = AlignmentX.Left, + AlignmentY = AlignmentY.Top, + Stretch = Stretch.None + }; + + if (!IgnorePixelScaling) + { + var scale = 1.0 / Dpi; + brush.Transform = new ScaleTransform + { + ScaleX = scale, + ScaleY = scale + }; + } + + Background = brush; + } + + if (pixels == null || pixelWidth != info.Width || pixelHeight != info.Height) + { + FreeBitmap(); + + pixels = new byte[info.BytesSize]; + pixelsHandle = GCHandle.Alloc(pixels, GCHandleType.Pinned); + + pixelWidth = info.Width; + pixelHeight = info.Height; + } + + return info; + } + + private void FreeBitmap() + { + if (pixels != null) + { + pixelsHandle.Free(); + pixels = null; + bitmap = null; + } + } + } +} diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SkiaSharp.Views.Uno.Skia.csproj b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SkiaSharp.Views.Uno.Skia.csproj new file mode 100644 index 0000000000..179cec0643 --- /dev/null +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Skia/SkiaSharp.Views.Uno.Skia.csproj @@ -0,0 +1,22 @@ + + + netstandard2.0 + SkiaSharp.Views.UWP + SkiaSharp.Views.UWP + false + SkiaSharp.Views.Uno + $(DefineConstants);HAS_UNO_SKIA + uno-runtime\skia + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SKXamlCanvas.Wasm.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SKXamlCanvas.Wasm.cs index 38469abbea..01c8968c27 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SKXamlCanvas.Wasm.cs +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SKXamlCanvas.Wasm.cs @@ -7,7 +7,7 @@ namespace SkiaSharp.Views.UWP { [HtmlElement("canvas")] - public partial class SKXamlCanvas : FrameworkElement + public partial class SKXamlCanvas { private byte[] pixels; private GCHandle pixelsHandle; diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SkiaSharp.Views.Uno.Wasm.csproj b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SkiaSharp.Views.Uno.Wasm.csproj index 2be5f49821..17ce45451d 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SkiaSharp.Views.Uno.Wasm.csproj +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SkiaSharp.Views.Uno.Wasm.csproj @@ -9,8 +9,8 @@ uno-runtime\webassembly - - + + diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.iOS/SKXamlCanvas.iOS.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.iOS/SKXamlCanvas.iOS.cs index e7860e8a35..0f33de1108 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.iOS/SKXamlCanvas.iOS.cs +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.iOS/SKXamlCanvas.iOS.cs @@ -5,7 +5,7 @@ namespace SkiaSharp.Views.UWP { - public partial class SKXamlCanvas : FrameworkElement + public partial class SKXamlCanvas { private SKCGSurfaceFactory drawable; diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.iOS/SkiaSharp.Views.Uno.iOS.csproj b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.iOS/SkiaSharp.Views.Uno.iOS.csproj index bbbb6c0b31..347c6013ce 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.iOS/SkiaSharp.Views.Uno.iOS.csproj +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.iOS/SkiaSharp.Views.Uno.iOS.csproj @@ -7,7 +7,7 @@ SkiaSharp.Views.Uno - + diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno/SKSwapChainPanel.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno/SKSwapChainPanel.cs index 38db166ca5..ff319e2b6c 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno/SKSwapChainPanel.cs +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno/SKSwapChainPanel.cs @@ -10,6 +10,8 @@ namespace SkiaSharp.Views.UWP { public partial class SKSwapChainPanel : FrameworkElement { + public static bool RaiseOnUnsupported { get; set; } = true; + private static readonly DependencyProperty ProxyVisibilityProperty = DependencyProperty.Register( "ProxyVisibility", diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno/SKXamlCanvas.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno/SKXamlCanvas.cs index 149460f88e..f7ecedd183 100644 --- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno/SKXamlCanvas.cs +++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno/SKXamlCanvas.cs @@ -3,11 +3,12 @@ using Windows.Graphics.Display; using Windows.UI.Core; using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Data; namespace SkiaSharp.Views.UWP { - public partial class SKXamlCanvas : FrameworkElement + public partial class SKXamlCanvas : Canvas { private static readonly DependencyProperty ProxyVisibilityProperty = DependencyProperty.Register( @@ -111,12 +112,12 @@ private void OnUnloaded(object sender, RoutedEventArgs e) display.DpiChanged -= OnDpiChanged; } - public void Invalidate() + public new async void Invalidate() { if (Dispatcher.HasThreadAccess) DoInvalidate(); else - Dispatcher.RunAsync(CoreDispatcherPriority.Normal, DoInvalidate); + await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, DoInvalidate); } partial void DoLoaded(); diff --git a/source/SkiaSharpSource.Linux.sln b/source/SkiaSharpSource.Linux.sln index 81475cacaa..00f2d9ab20 100644 --- a/source/SkiaSharpSource.Linux.sln +++ b/source/SkiaSharpSource.Linux.sln @@ -41,12 +41,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Vulkan", "SkiaSha EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Vulkan.SharpVk", "SkiaSharp.Vulkan\SkiaSharp.Vulkan.SharpVk\SkiaSharp.Vulkan.SharpVk.csproj", "{4606F63B-F0B1-418E-8B45-844361E17EB1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.Uno", "SkiaSharp.Views.Uno", "{00C9099A-BE4F-40D0-9401-295618368370}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Wasm\SkiaSharp.Views.Uno.Wasm.csproj", "{08599A28-FADE-43B5-95A0-BDCB22B97D3A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Reference", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Reference\SkiaSharp.Views.Uno.Reference.csproj", "{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{A84C9753-A343-4A21-8337-147E5B93B055}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.Uno", "SkiaSharp.Views.Uno", "{E13F3D9A-BC92-4F6E-8D62-1FB24CE189DA}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.DotNet.Interactive", "SkiaSharp.DotNet.Interactive", "{E0EDA875-C25F-4727-BB98-6EF7BBAFEB4B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.DotNet.Interactive", "SkiaSharp.DotNet.Interactive\SkiaSharp.DotNet.Interactive.csproj", "{03A0F2E5-345D-4FA2-B1F8-45D2D7EEA3EB}" @@ -117,6 +119,10 @@ Global {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.ActiveCfg = Release|Any CPU {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.Build.0 = Release|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.Build.0 = Release|Any CPU {03A0F2E5-345D-4FA2-B1F8-45D2D7EEA3EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {03A0F2E5-345D-4FA2-B1F8-45D2D7EEA3EB}.Debug|Any CPU.Build.0 = Debug|Any CPU {03A0F2E5-345D-4FA2-B1F8-45D2D7EEA3EB}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -139,8 +145,9 @@ Global {6FB08346-1A02-4793-B5E1-4F739C6342D5} = {4F5EBFFB-DD81-43B9-8531-156ED3639C91} {857CB6E9-BA27-4E94-A2D7-68BFF1EE193B} = {B3C4E4EC-68C7-4AFB-A6D4-1B2B0EB8C421} {4606F63B-F0B1-418E-8B45-844361E17EB1} = {66A0800A-CA70-4AC2-88B7-8E7C4CA7C914} - {08599A28-FADE-43B5-95A0-BDCB22B97D3A} = {00C9099A-BE4F-40D0-9401-295618368370} - {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB} = {00C9099A-BE4F-40D0-9401-295618368370} + {08599A28-FADE-43B5-95A0-BDCB22B97D3A} = {E13F3D9A-BC92-4F6E-8D62-1FB24CE189DA} + {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB} = {E13F3D9A-BC92-4F6E-8D62-1FB24CE189DA} + {A84C9753-A343-4A21-8337-147E5B93B055} = {E13F3D9A-BC92-4F6E-8D62-1FB24CE189DA} {03A0F2E5-345D-4FA2-B1F8-45D2D7EEA3EB} = {E0EDA875-C25F-4727-BB98-6EF7BBAFEB4B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/source/SkiaSharpSource.Mac.sln b/source/SkiaSharpSource.Mac.sln index 485be2761d..ff10de9833 100644 --- a/source/SkiaSharpSource.Mac.sln +++ b/source/SkiaSharpSource.Mac.sln @@ -85,6 +85,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Reference", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Reference\SkiaSharp.Views.Uno.Reference.csproj", "{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{A84C9753-A343-4A21-8337-147E5B93B055}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.DotNet.Interactive", "SkiaSharp.DotNet.Interactive\SkiaSharp.DotNet.Interactive.csproj", "{A23C2451-BBCE-4309-B80F-CEE482A140C7}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.DotNet.Interactive", "SkiaSharp.DotNet.Interactive", "{A54F6AE5-2921-4C68-846A-25D38F1C2E7E}" @@ -231,6 +233,10 @@ Global {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.ActiveCfg = Release|Any CPU {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.Build.0 = Release|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.Build.0 = Release|Any CPU {A23C2451-BBCE-4309-B80F-CEE482A140C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A23C2451-BBCE-4309-B80F-CEE482A140C7}.Debug|Any CPU.Build.0 = Debug|Any CPU {A23C2451-BBCE-4309-B80F-CEE482A140C7}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -274,6 +280,7 @@ Global {E0FF9BFF-2253-4486-A8E2-94312D09D056} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} {242213FA-1F0E-40BB-A9B2-6FEE82B5D216} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} + {A84C9753-A343-4A21-8337-147E5B93B055} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} {A23C2451-BBCE-4309-B80F-CEE482A140C7} = {A54F6AE5-2921-4C68-846A-25D38F1C2E7E} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/source/SkiaSharpSource.Windows.sln b/source/SkiaSharpSource.Windows.sln index ae4b82ce48..478a2a3bba 100644 --- a/source/SkiaSharpSource.Windows.sln +++ b/source/SkiaSharpSource.Windows.sln @@ -69,6 +69,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Reference", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Reference\SkiaSharp.Views.Uno.Reference.csproj", "{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{A84C9753-A343-4A21-8337-147E5B93B055}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.WinUI", "SkiaSharp.Views.WinUI\SkiaSharp.Views.WinUI\SkiaSharp.Views.WinUI.csproj", "{F50AE765-D9B9-4025-88A8-E8B080D5D624}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.WinUI", "SkiaSharp.Views.WinUI", "{32AE56A0-F3E1-4721-9BED-B1F609DEA8E8}" @@ -187,6 +189,10 @@ Global {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.ActiveCfg = Release|Any CPU {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.Build.0 = Release|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.Build.0 = Release|Any CPU {F50AE765-D9B9-4025-88A8-E8B080D5D624}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F50AE765-D9B9-4025-88A8-E8B080D5D624}.Debug|Any CPU.Build.0 = Debug|Any CPU {F50AE765-D9B9-4025-88A8-E8B080D5D624}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -226,6 +232,7 @@ Global {D35B20BC-838A-4C1E-B427-4269F6387CAB} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} {F675A841-ECDB-4571-8AA3-7D4642FD57DB} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} + {A84C9753-A343-4A21-8337-147E5B93B055} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} {F50AE765-D9B9-4025-88A8-E8B080D5D624} = {32AE56A0-F3E1-4721-9BED-B1F609DEA8E8} {73185ECB-5A38-447C-95CF-D32D6784B97D} = {B7F572BF-AD3F-4AC8-A654-3ED241E3ECA4} EndGlobalSection diff --git a/source/SkiaSharpSource.sln b/source/SkiaSharpSource.sln index f6247ca81f..61c248c9f8 100644 --- a/source/SkiaSharpSource.sln +++ b/source/SkiaSharpSource.sln @@ -105,6 +105,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Reference", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Reference\SkiaSharp.Views.Uno.Reference.csproj", "{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{A84C9753-A343-4A21-8337-147E5B93B055}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.WinUI", "SkiaSharp.Views.WinUI", "{6430EC5F-EDA1-4202-AB7B-22ED0496E016}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.WinUI", "SkiaSharp.Views.WinUI\SkiaSharp.Views.WinUI\SkiaSharp.Views.WinUI.csproj", "{02CA4107-1FC6-4676-B284-9981694A450E}" @@ -295,6 +297,10 @@ Global {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.ActiveCfg = Release|Any CPU {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.Build.0 = Release|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.Build.0 = Release|Any CPU {02CA4107-1FC6-4676-B284-9981694A450E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {02CA4107-1FC6-4676-B284-9981694A450E}.Debug|Any CPU.Build.0 = Debug|Any CPU {02CA4107-1FC6-4676-B284-9981694A450E}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -352,6 +358,7 @@ Global {E0FF9BFF-2253-4486-A8E2-94312D09D056} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} {047C460D-7470-418C-AF2C-30620A1AF61C} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} {D5C7D157-609E-4D64-8E42-C1DB0FAA86EB} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} + {A84C9753-A343-4A21-8337-147E5B93B055} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71} {02CA4107-1FC6-4676-B284-9981694A450E} = {6430EC5F-EDA1-4202-AB7B-22ED0496E016} {D213D614-2F31-450C-B6FA-294754C4DCD4} = {94767AFC-EB2B-41ED-BFEF-93EF33EEEBCF} EndGlobalSection