diff --git a/VERSIONS.txt b/VERSIONS.txt index 10a4659e0..1a6b54c9b 100644 --- a/VERSIONS.txt +++ b/VERSIONS.txt @@ -1,5 +1,5 @@ # dependencies -mdoc release 5.8.2 +mdoc release 5.8.3 harfbuzz release 2.6.1 skia release m88 xunit release 2.4.1 @@ -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 1569e8420..4a8ec3adc 100644 --- a/build.cake +++ b/build.cake @@ -6,7 +6,7 @@ #addin nuget:?package=Mono.ApiTools.NuGetDiff&version=1.3.2&loaddependencies=true #addin nuget:?package=Xamarin.Nuget.Validator&version=1.1.1 -#tool nuget:?package=mdoc&version=5.8.2 +#tool nuget:?package=mdoc&version=5.8.3 #tool nuget:?package=xunit.runner.console&version=2.4.1 #tool nuget:?package=vswhere&version=2.7.1 @@ -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/cake/UpdateDocs.cake b/cake/UpdateDocs.cake index b44fe1d16..4ff50557d 100644 --- a/cake/UpdateDocs.cake +++ b/cake/UpdateDocs.cake @@ -299,6 +299,16 @@ Task ("docs-format-docs") } } + // remove any assembly attributes for now: https://github.com/mono/api-doc-tools/issues/560 + if (xdoc.Root.Name == "Overview") { + xdoc.Root + .Elements ("Assemblies") + .Elements ("Assembly") + .Elements ("Attributes") + .Elements ("Attribute") + .Remove (); + } + // remove any duplicate AssemblyVersions if (xdoc.Root.Name == "Type") { foreach (var info in xdoc.Root.Descendants ("AssemblyInfo")) { diff --git a/docs b/docs index 344d2be82..4eaaabdfb 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 344d2be82b193e435bcf140b6e9771998ae7552f +Subproject commit 4eaaabdfba22d042856d59c8ce4f3eabe87a972c diff --git a/native/windows/build.cake b/native/windows/build.cake index 0ceccc704..4cc3eed89 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 164271034..7896e6c80 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 7c824975e..e4db594b8 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 d0d3e35fc..f3ececd99 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 8d093566c..46b66c35b 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 cc5454888..9bdb28503 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 da0f5664e..46efe99bf 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 9ae3f3cfb..a004e720a 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 @@ namespace SkiaSharpSample { 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 @@ namespace SkiaSharpSample 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 be20f3efd..d7e1dd3dc 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 000000000..fedc86ff3 Binary files /dev/null and b/samples/Gallery/Uno/SkiaSharpSample.Gtk/Assets/Fonts/uno-fluentui-assets.ttf differ diff --git a/samples/Gallery/Uno/SkiaSharpSample.Gtk/Program.cs b/samples/Gallery/Uno/SkiaSharpSample.Gtk/Program.cs new file mode 100644 index 000000000..7741f740d --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.Gtk/Program.cs @@ -0,0 +1,24 @@ +using System; +using GLib; +using Uno.UI.Runtime.Skia; + +namespace SkiaSharpSample.Gtk +{ + class Program + { + static void Main(string[] args) + { + SkiaSharp.Views.UWP.SKSwapChainPanel.RaiseOnUnsupported = false; + + ExceptionManager.UnhandledException += delegate (UnhandledExceptionArgs expArgs) + { + Console.WriteLine("GLIB UNHANDLED EXCEPTION" + expArgs.ExceptionObject.ToString()); + expArgs.ExitApplication = true; + }; + + var host = new GtkHost(() => 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 000000000..45e5ea566 --- /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 da2d24725..b5f9ceb7a 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 4df7e10f9..229cd3759 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 000000000..20939707c --- /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 000000000..12c2ebb2b --- /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 000000000..ac5c92bf4 --- /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 000000000..fedc86ff3 Binary files /dev/null and b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/Assets/Fonts/uno-fluentui-assets.ttf differ diff --git a/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/MainWindow.xaml b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/MainWindow.xaml new file mode 100644 index 000000000..7de40ce8e --- /dev/null +++ b/samples/Gallery/Uno/SkiaSharpSample.WPF.Host/MainWindow.xaml @@ -0,0 +1,10 @@ + + + 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 000000000..0a323a93d --- /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 000000000..a58ef709d --- /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 000000000..58585ce81 --- /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 000000000..af7dbebba --- /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 000000000..d67486c91 --- /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 000000000..9010101f8 --- /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 000000000..6ba2ed750 --- /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 000000000..0e7f7b9b8 --- /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 cf17b6305..94ad47c28 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 29509326c..d6c7233ef 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 54d04fe0d..87b57cb0b 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 d60bc93eb..9e80ff140 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 e0cec81a2..3fc1aad81 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 6e46f25c6..563867fbd 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 f030fbac9..ee62ddea3 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 69bd5c98a..13f9e520b 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.Build.targets b/source/SkiaSharp.Build.targets index e2fc8306a..802299f44 100644 --- a/source/SkiaSharp.Build.targets +++ b/source/SkiaSharp.Build.targets @@ -51,7 +51,7 @@ - + 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 a175a8657..c2719d77d 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 @@ using Windows.UI.Xaml; 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 462a6027c..286bc44a4 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 65e316ee4..19a31a54c 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 @@ using Windows.UI.Xaml; 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 17ec55f06..562d27168 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 408ccf585..9c0ecdf83 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 @@ using Windows.UI.Xaml; 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 5ecd84588..73f58c3d6 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 000000000..690898f2b --- /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 000000000..0a5711d5e --- /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 000000000..179cec064 --- /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 38469abbe..01c8968c2 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 @@ using Windows.UI.Xaml; 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 2be5f4982..17ce45451 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 e7860e8a3..0f33de110 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 @@ using Windows.UI.Xaml; 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 bbbb6c0b3..347c6013c 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 38db166ca..ff319e2b6 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 149460f88..f7ecedd18 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.ApplicationModel; 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 @@ namespace SkiaSharp.Views.UWP 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 81475caca..00f2d9ab2 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 485be2761..ff10de983 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 ae4b82ce4..478a2a3bb 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 f6247ca81..61c248c9f 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