diff --git a/nuget/SkiaSharp.Views.Uno.WinUI.nuspec b/nuget/SkiaSharp.Views.Uno.WinUI.nuspec
index a90314e8a2..7dc36617e7 100644
--- a/nuget/SkiaSharp.Views.Uno.WinUI.nuspec
+++ b/nuget/SkiaSharp.Views.Uno.WinUI.nuspec
@@ -62,12 +62,21 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/Basic/Uno.WinUI/SkiaSharpSample.Linux.sln b/samples/Basic/Uno.WinUI/SkiaSharpSample.Linux.sln
deleted file mode 100644
index 017b36f0ac..0000000000
--- a/samples/Basic/Uno.WinUI/SkiaSharpSample.Linux.sln
+++ /dev/null
@@ -1,156 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.32126.317
-MinimumVisualStudioVersion = 15.0.26124.0
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Wasm", "SkiaSharpSample.Wasm\SkiaSharpSample.Wasm.csproj", "{40EA03F7-8A22-4143-B251-79BAC3EB13D2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.WinUI.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.WinUI.Skia\SkiaSharp.Views.Uno.WinUI.Skia.csproj", "{29D93EBF-DFB0-4ECF-93D1-2FC43149E107}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.WinUI.Wasm", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.WinUI.Wasm\SkiaSharp.Views.Uno.WinUI.Wasm.csproj", "{F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp", "..\..\..\binding\SkiaSharp\SkiaSharp.csproj", "{E64FFE5A-989F-4CDB-B2BA-C06B8635479F}"
-EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharpSample.Shared", "SkiaSharpSample.Shared\SkiaSharpSample.Shared.shproj", "{C3BC3667-BB67-4B3F-A7F0-053C19AF4D1F}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|ARM = Debug|ARM
- Debug|ARM64 = Debug|ARM64
- Debug|iPhone = Debug|iPhone
- Debug|iPhoneSimulator = Debug|iPhoneSimulator
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|ARM = Release|ARM
- Release|ARM64 = Release|ARM64
- Release|iPhone = Release|iPhone
- Release|iPhoneSimulator = Release|iPhoneSimulator
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|ARM.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|ARM64.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|iPhone.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|x64.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|x64.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|x86.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|x86.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|Any CPU.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|ARM.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|ARM.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|ARM64.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|ARM64.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|iPhone.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|iPhone.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|x64.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|x64.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|x86.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|x86.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM64.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhone.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x64.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x64.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x86.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x86.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|Any CPU.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM64.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM64.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhone.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhone.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x64.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x64.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x86.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x86.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM64.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhone.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x64.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x64.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x86.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|Any CPU.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM64.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM64.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhone.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhone.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x64.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x64.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x86.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x86.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM64.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhone.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x64.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x86.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|Any CPU.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM64.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM64.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhone.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhone.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x64.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x64.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x86.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x86.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {C7433AE2-B1A0-4C1A-887E-5CAA7AAF67A6}
- EndGlobalSection
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{40ea03f7-8a22-4143-b251-79bac3eb13d2}*SharedItemsImports = 5
- SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{c3bc3667-bb67-4b3f-a7f0-053c19af4d1f}*SharedItemsImports = 13
- EndGlobalSection
-EndGlobal
diff --git a/samples/Basic/Uno/SkiaSharpSample.Linux.sln b/samples/Basic/Uno/SkiaSharpSample.Linux.sln
deleted file mode 100644
index da2d247255..0000000000
--- a/samples/Basic/Uno/SkiaSharpSample.Linux.sln
+++ /dev/null
@@ -1,43 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.30229.9
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharpSample.Shared", "SkiaSharpSample.Shared\SkiaSharpSample.Shared.shproj", "{6279C845-92F8-4333-AB99-3D213163593C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Wasm", "SkiaSharpSample.Wasm\SkiaSharpSample.Wasm.csproj", "{9726301D-8A93-4A06-88DF-92BA01CF80AD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Wasm\SkiaSharp.Views.Uno.Wasm.csproj", "{1787D9BF-9815-4E1D-BDEB-9994859FE91E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp", "..\..\..\binding\SkiaSharp\SkiaSharp.csproj", "{409AF271-D8B7-4F79-B293-02F562A51955}"
-EndProject
-Global
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13
- SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{9726301d-8a93-4a06-88df-92ba01cf80ad}*SharedItemsImports = 5
- EndGlobalSection
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {9726301D-8A93-4A06-88DF-92BA01CF80AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9726301D-8A93-4A06-88DF-92BA01CF80AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9726301D-8A93-4A06-88DF-92BA01CF80AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9726301D-8A93-4A06-88DF-92BA01CF80AD}.Release|Any CPU.Build.0 = Release|Any CPU
- {1787D9BF-9815-4E1D-BDEB-9994859FE91E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1787D9BF-9815-4E1D-BDEB-9994859FE91E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1787D9BF-9815-4E1D-BDEB-9994859FE91E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1787D9BF-9815-4E1D-BDEB-9994859FE91E}.Release|Any CPU.Build.0 = Release|Any CPU
- {409AF271-D8B7-4F79-B293-02F562A51955}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {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
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {ADE449F3-A69B-4F43-BB03-E0C3C98E83BB}
- EndGlobalSection
-EndGlobal
diff --git a/samples/Gallery/Uno.WinUI/SkiaSharpSample.Linux.sln b/samples/Gallery/Uno.WinUI/SkiaSharpSample.Linux.sln
deleted file mode 100644
index db26fb5981..0000000000
--- a/samples/Gallery/Uno.WinUI/SkiaSharpSample.Linux.sln
+++ /dev/null
@@ -1,276 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.32126.317
-MinimumVisualStudioVersion = 15.0.26124.0
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Wasm", "SkiaSharpSample.Wasm\SkiaSharpSample.Wasm.csproj", "{40EA03F7-8A22-4143-B251-79BAC3EB13D2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.WinUI.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.WinUI.Skia\SkiaSharp.Views.Uno.WinUI.Skia.csproj", "{29D93EBF-DFB0-4ECF-93D1-2FC43149E107}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.WinUI.Wasm", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.WinUI.Wasm\SkiaSharp.Views.Uno.WinUI.Wasm.csproj", "{F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp", "..\..\..\binding\SkiaSharp\SkiaSharp.csproj", "{E64FFE5A-989F-4CDB-B2BA-C06B8635479F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.HarfBuzz", "..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj", "{FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp", "..\..\..\binding\HarfBuzzSharp\HarfBuzzSharp.csproj", "{C04D3F70-6E1D-459F-A00B-1E8E647F09C2}"
-EndProject
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharpSample.WinUI.Shared", "SkiaSharpSample.WinUI.Shared\SkiaSharpSample.WinUI.Shared.shproj", "{6279C845-92F8-4333-AB99-3D213163593C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.SceneGraph", "..\..\..\binding\SkiaSharp.SceneGraph\SkiaSharp.SceneGraph.csproj", "{8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Skottie", "..\..\..\binding\SkiaSharp.Skottie\SkiaSharp.Skottie.csproj", "{AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|ARM = Debug|ARM
- Debug|ARM64 = Debug|ARM64
- Debug|iPhone = Debug|iPhone
- Debug|iPhoneSimulator = Debug|iPhoneSimulator
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|ARM = Release|ARM
- Release|ARM64 = Release|ARM64
- Release|iPhone = Release|iPhone
- Release|iPhoneSimulator = Release|iPhoneSimulator
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|ARM.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|ARM64.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|iPhone.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|x64.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|x64.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|x86.ActiveCfg = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Debug|x86.Build.0 = Debug|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|Any CPU.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|ARM.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|ARM.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|ARM64.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|ARM64.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|iPhone.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|iPhone.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|x64.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|x64.Build.0 = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|x86.ActiveCfg = Release|Any CPU
- {40EA03F7-8A22-4143-B251-79BAC3EB13D2}.Release|x86.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM64.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhone.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x64.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x64.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x86.ActiveCfg = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x86.Build.0 = Debug|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|Any CPU.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM64.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM64.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhone.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhone.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x64.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x64.Build.0 = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x86.ActiveCfg = Release|Any CPU
- {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x86.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM64.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhone.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x64.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x64.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x86.Build.0 = Debug|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|Any CPU.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM64.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM64.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhone.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhone.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x64.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x64.Build.0 = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x86.ActiveCfg = Release|Any CPU
- {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x86.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM64.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhone.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x64.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x86.Build.0 = Debug|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|Any CPU.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM64.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM64.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhone.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhone.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x64.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x64.Build.0 = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x86.ActiveCfg = Release|Any CPU
- {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x86.Build.0 = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|ARM.Build.0 = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|ARM64.Build.0 = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|iPhone.Build.0 = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|x64.ActiveCfg = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|x64.Build.0 = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|x86.Build.0 = Debug|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|Any CPU.Build.0 = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|ARM.ActiveCfg = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|ARM.Build.0 = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|ARM64.ActiveCfg = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|ARM64.Build.0 = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|iPhone.ActiveCfg = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|iPhone.Build.0 = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|x64.ActiveCfg = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|x64.Build.0 = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|x86.ActiveCfg = Release|Any CPU
- {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|x86.Build.0 = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|ARM.Build.0 = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|ARM64.Build.0 = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|iPhone.Build.0 = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|x64.ActiveCfg = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|x64.Build.0 = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|x86.ActiveCfg = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|x86.Build.0 = Debug|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|Any CPU.Build.0 = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|ARM.ActiveCfg = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|ARM.Build.0 = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|ARM64.ActiveCfg = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|ARM64.Build.0 = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|iPhone.ActiveCfg = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|iPhone.Build.0 = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|x64.ActiveCfg = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|x64.Build.0 = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|x86.ActiveCfg = Release|Any CPU
- {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|x86.Build.0 = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|ARM.Build.0 = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|ARM64.Build.0 = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|iPhone.Build.0 = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|x64.ActiveCfg = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|x64.Build.0 = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Debug|x86.Build.0 = Debug|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|Any CPU.Build.0 = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|ARM.ActiveCfg = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|ARM.Build.0 = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|ARM64.ActiveCfg = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|ARM64.Build.0 = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|iPhone.ActiveCfg = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|iPhone.Build.0 = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|x64.ActiveCfg = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|x64.Build.0 = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|x86.ActiveCfg = Release|Any CPU
- {8E5E4DF1-81A6-4CB3-B95A-FFF3DCEC599B}.Release|x86.Build.0 = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|ARM.Build.0 = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|ARM64.ActiveCfg = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|ARM64.Build.0 = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|iPhone.Build.0 = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|x64.ActiveCfg = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|x64.Build.0 = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|x86.ActiveCfg = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Debug|x86.Build.0 = Debug|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|Any CPU.Build.0 = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|ARM.ActiveCfg = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|ARM.Build.0 = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|ARM64.ActiveCfg = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|ARM64.Build.0 = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|iPhone.ActiveCfg = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|iPhone.Build.0 = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|x64.ActiveCfg = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|x64.Build.0 = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|x86.ActiveCfg = Release|Any CPU
- {AC6D0AB2-3C4C-4308-A7B2-AF3747E6A376}.Release|x86.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {C7433AE2-B1A0-4C1A-887E-5CAA7AAF67A6}
- EndGlobalSection
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- SkiaSharpSample.WinUI.Shared\SkiaSharpSample.WinUI.Shared.projitems*{40ea03f7-8a22-4143-b251-79bac3eb13d2}*SharedItemsImports = 5
- SkiaSharpSample.WinUI.Shared\SkiaSharpSample.WinUI.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13
- EndGlobalSection
-EndGlobal
diff --git a/samples/Gallery/Uno.WinUI/SkiaSharpSample.Mobile/SkiaSharpSample.Mobile.csproj b/samples/Gallery/Uno.WinUI/SkiaSharpSample.Mobile/SkiaSharpSample.Mobile.csproj
index d732773520..de75f7d4f4 100644
--- a/samples/Gallery/Uno.WinUI/SkiaSharpSample.Mobile/SkiaSharpSample.Mobile.csproj
+++ b/samples/Gallery/Uno.WinUI/SkiaSharpSample.Mobile/SkiaSharpSample.Mobile.csproj
@@ -59,7 +59,7 @@
-
+
iOS\Resources\content-font.ttf
diff --git a/samples/Gallery/Uno.WinUI/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj b/samples/Gallery/Uno.WinUI/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj
index dbe09b7135..bf68d33ab7 100644
--- a/samples/Gallery/Uno.WinUI/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj
+++ b/samples/Gallery/Uno.WinUI/SkiaSharpSample.Wasm/SkiaSharpSample.Wasm.csproj
@@ -1,10 +1,9 @@
Exe
- netstandard2.0
+ net7.0
NU1701
$(DefineConstants);WINUI
- 9.0
true
@@ -50,8 +49,8 @@
-
-
+
+
diff --git a/samples/Gallery/Uno.WinUI/SkiaSharpSample.Windows.sln b/samples/Gallery/Uno.WinUI/SkiaSharpSample.Windows.sln
new file mode 100644
index 0000000000..0ffd2b9a05
--- /dev/null
+++ b/samples/Gallery/Uno.WinUI/SkiaSharpSample.Windows.sln
@@ -0,0 +1,424 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.32126.317
+MinimumVisualStudioVersion = 15.0.26124.0
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Mobile", "SkiaSharpSample.Mobile\SkiaSharpSample.Mobile.csproj", "{9181B6CA-BA5C-4A5C-A053-5060E2830E8C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Skia.Gtk", "SkiaSharpSample.Skia.Gtk\SkiaSharpSample.Skia.Gtk.csproj", "{A5B8155A-118F-4794-B551-C6F3CF7E5411}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Skia.WPF", "SkiaSharpSample.Skia.WPF\SkiaSharpSample.Skia.WPF.csproj", "{56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Skia.Wpf.Host", "SkiaSharpSample.Skia.WPF.Host\SkiaSharpSample.Skia.Wpf.Host.csproj", "{6CF284A4-22B1-4F05-97F4-F095C07A598E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.WinUI.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.WinUI.Skia\SkiaSharp.Views.Uno.WinUI.Skia.csproj", "{29D93EBF-DFB0-4ECF-93D1-2FC43149E107}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.WinUI.Wasm", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.WinUI.Wasm\SkiaSharp.Views.Uno.WinUI.Wasm.csproj", "{F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp", "..\..\..\binding\SkiaSharp\SkiaSharp.csproj", "{E64FFE5A-989F-4CDB-B2BA-C06B8635479F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.WinUI.Mobile", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.WinUI.Mobile\SkiaSharp.Views.Uno.WinUI.Mobile.csproj", "{482DDA70-C4FD-4CF4-84F6-641DD94426D0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.HarfBuzz", "..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj", "{FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp", "..\..\..\binding\HarfBuzzSharp\HarfBuzzSharp.csproj", "{C04D3F70-6E1D-459F-A00B-1E8E647F09C2}"
+EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharpSample.WinUI.Shared", "SkiaSharpSample.WinUI.Shared\SkiaSharpSample.WinUI.Shared.shproj", "{6279C845-92F8-4333-AB99-3D213163593C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.SceneGraph", "..\..\..\binding\SkiaSharp.SceneGraph\SkiaSharp.SceneGraph.csproj", "{ECF52E6D-7AA3-4F70-923E-7812280C979C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Skottie", "..\..\..\binding\SkiaSharp.Skottie\SkiaSharp.Skottie.csproj", "{6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|ARM64 = Debug|ARM64
+ Debug|iPhone = Debug|iPhone
+ Debug|iPhoneSimulator = Debug|iPhoneSimulator
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|ARM64 = Release|ARM64
+ Release|iPhone = Release|iPhone
+ Release|iPhoneSimulator = Release|iPhoneSimulator
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|ARM.Build.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|ARM.Deploy.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|ARM64.Deploy.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|iPhone.Deploy.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|x64.Build.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|x64.Deploy.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|x86.Build.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Debug|x86.Deploy.0 = Debug|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|ARM.ActiveCfg = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|ARM.Build.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|ARM.Deploy.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|ARM64.Build.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|ARM64.Deploy.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|iPhone.Build.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|iPhone.Deploy.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|x64.ActiveCfg = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|x64.Build.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|x64.Deploy.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|x86.ActiveCfg = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|x86.Build.0 = Release|Any CPU
+ {9181B6CA-BA5C-4A5C-A053-5060E2830E8C}.Release|x86.Deploy.0 = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|ARM.Build.0 = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|x64.Build.0 = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Debug|x86.Build.0 = Debug|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|ARM.ActiveCfg = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|ARM.Build.0 = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|ARM64.Build.0 = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|iPhone.Build.0 = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|x64.ActiveCfg = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|x64.Build.0 = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|x86.ActiveCfg = Release|Any CPU
+ {A5B8155A-118F-4794-B551-C6F3CF7E5411}.Release|x86.Build.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|ARM.Build.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|ARM.Deploy.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|ARM64.Deploy.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|iPhone.Deploy.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|x64.Build.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|x64.Deploy.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|x86.Build.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Debug|x86.Deploy.0 = Debug|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|ARM.ActiveCfg = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|ARM.Build.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|ARM.Deploy.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|ARM64.Build.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|ARM64.Deploy.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|iPhone.Build.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|x64.ActiveCfg = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|x64.Build.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|x64.Deploy.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|x86.ActiveCfg = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|x86.Build.0 = Release|Any CPU
+ {56ED3D99-AE82-4EAC-9AB0-7A527B48C0DB}.Release|x86.Deploy.0 = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|ARM.Build.0 = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|x64.Build.0 = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Debug|x86.Build.0 = Debug|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|ARM.ActiveCfg = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|ARM.Build.0 = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|ARM64.Build.0 = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|iPhone.Build.0 = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|x64.ActiveCfg = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|x64.Build.0 = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|x86.ActiveCfg = Release|Any CPU
+ {6CF284A4-22B1-4F05-97F4-F095C07A598E}.Release|x86.Build.0 = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM.Build.0 = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x64.Build.0 = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Debug|x86.Build.0 = Debug|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|Any CPU.Build.0 = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM.ActiveCfg = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM.Build.0 = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|ARM64.Build.0 = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhone.Build.0 = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x64.ActiveCfg = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x64.Build.0 = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x86.ActiveCfg = Release|Any CPU
+ {29D93EBF-DFB0-4ECF-93D1-2FC43149E107}.Release|x86.Build.0 = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM.Build.0 = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x64.Build.0 = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Debug|x86.Build.0 = Debug|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM.ActiveCfg = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM.Build.0 = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|ARM64.Build.0 = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhone.Build.0 = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x64.ActiveCfg = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x64.Build.0 = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x86.ActiveCfg = Release|Any CPU
+ {F7DA6F83-85C5-4FE2-B26A-4D86F95252B8}.Release|x86.Build.0 = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM.Build.0 = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x64.Build.0 = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Debug|x86.Build.0 = Debug|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM.ActiveCfg = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM.Build.0 = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|ARM64.Build.0 = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhone.Build.0 = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x64.ActiveCfg = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x64.Build.0 = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x86.ActiveCfg = Release|Any CPU
+ {E64FFE5A-989F-4CDB-B2BA-C06B8635479F}.Release|x86.Build.0 = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|ARM.Build.0 = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|x64.Build.0 = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Debug|x86.Build.0 = Debug|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|ARM.ActiveCfg = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|ARM.Build.0 = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|ARM64.Build.0 = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|iPhone.Build.0 = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|x64.ActiveCfg = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|x64.Build.0 = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|x86.ActiveCfg = Release|Any CPU
+ {482DDA70-C4FD-4CF4-84F6-641DD94426D0}.Release|x86.Build.0 = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|ARM.Build.0 = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|x64.Build.0 = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Debug|x86.Build.0 = Debug|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|ARM.ActiveCfg = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|ARM.Build.0 = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|ARM64.Build.0 = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|iPhone.Build.0 = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|x64.ActiveCfg = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|x64.Build.0 = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|x86.ActiveCfg = Release|Any CPU
+ {FC9D5D9B-9AF6-4D15-AFE4-638B80738FE5}.Release|x86.Build.0 = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|ARM.Build.0 = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|x64.Build.0 = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Debug|x86.Build.0 = Debug|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|ARM.ActiveCfg = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|ARM.Build.0 = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|ARM64.Build.0 = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|iPhone.Build.0 = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|x64.ActiveCfg = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|x64.Build.0 = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|x86.ActiveCfg = Release|Any CPU
+ {C04D3F70-6E1D-459F-A00B-1E8E647F09C2}.Release|x86.Build.0 = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|ARM.Build.0 = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|x64.Build.0 = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Debug|x86.Build.0 = Debug|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|ARM.ActiveCfg = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|ARM.Build.0 = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|ARM64.Build.0 = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|iPhone.Build.0 = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|x64.ActiveCfg = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|x64.Build.0 = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|x86.ActiveCfg = Release|Any CPU
+ {ECF52E6D-7AA3-4F70-923E-7812280C979C}.Release|x86.Build.0 = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|ARM.Build.0 = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|x64.Build.0 = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Debug|x86.Build.0 = Debug|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|ARM.ActiveCfg = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|ARM.Build.0 = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|ARM64.Build.0 = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|iPhone.Build.0 = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|x64.ActiveCfg = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|x64.Build.0 = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|x86.ActiveCfg = Release|Any CPU
+ {6BFFCE29-9688-4BF7-A0C2-B63FF6E4EB3F}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C7433AE2-B1A0-4C1A-887E-5CAA7AAF67A6}
+ EndGlobalSection
+ GlobalSection(SharedMSBuildProjectFiles) = preSolution
+ SkiaSharpSample.WinUI.Shared\SkiaSharpSample.WinUI.Shared.projitems*{56ed3d99-ae82-4eac-9ab0-7a527b48c0db}*SharedItemsImports = 5
+ SkiaSharpSample.WinUI.Shared\SkiaSharpSample.WinUI.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13
+ SkiaSharpSample.WinUI.Shared\SkiaSharpSample.WinUI.Shared.projitems*{9181b6ca-ba5c-4a5c-a053-5060e2830e8c}*SharedItemsImports = 5
+ SkiaSharpSample.WinUI.Shared\SkiaSharpSample.WinUI.Shared.projitems*{a5b8155a-118f-4794-b551-c6f3cf7e5411}*SharedItemsImports = 5
+ EndGlobalSection
+EndGlobal
diff --git a/samples/Gallery/Uno/SkiaSharpSample.Linux.sln b/samples/Gallery/Uno/SkiaSharpSample.Linux.sln
deleted file mode 100644
index b89e45c318..0000000000
--- a/samples/Gallery/Uno/SkiaSharpSample.Linux.sln
+++ /dev/null
@@ -1,73 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.3.32515.10
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharpSample.Shared", "SkiaSharpSample.Shared\SkiaSharpSample.Shared.shproj", "{6279C845-92F8-4333-AB99-3D213163593C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Wasm", "SkiaSharpSample.Wasm\SkiaSharpSample.Wasm.csproj", "{9726301D-8A93-4A06-88DF-92BA01CF80AD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Wasm\SkiaSharp.Views.Uno.Wasm.csproj", "{1787D9BF-9815-4E1D-BDEB-9994859FE91E}"
-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
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.SceneGraph", "..\..\..\binding\SkiaSharp.SceneGraph\SkiaSharp.SceneGraph.csproj", "{DA475B74-72B7-4CA3-8F5B-CBBB68489ACB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Skottie", "..\..\..\binding\SkiaSharp.Skottie\SkiaSharp.Skottie.csproj", "{6FBC2164-3AAE-4978-88B6-A0779C62A22D}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {9726301D-8A93-4A06-88DF-92BA01CF80AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9726301D-8A93-4A06-88DF-92BA01CF80AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9726301D-8A93-4A06-88DF-92BA01CF80AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9726301D-8A93-4A06-88DF-92BA01CF80AD}.Release|Any CPU.Build.0 = Release|Any CPU
- {1787D9BF-9815-4E1D-BDEB-9994859FE91E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1787D9BF-9815-4E1D-BDEB-9994859FE91E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1787D9BF-9815-4E1D-BDEB-9994859FE91E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1787D9BF-9815-4E1D-BDEB-9994859FE91E}.Release|Any CPU.Build.0 = Release|Any CPU
- {409AF271-D8B7-4F79-B293-02F562A51955}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {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
- {DA475B74-72B7-4CA3-8F5B-CBBB68489ACB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DA475B74-72B7-4CA3-8F5B-CBBB68489ACB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DA475B74-72B7-4CA3-8F5B-CBBB68489ACB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DA475B74-72B7-4CA3-8F5B-CBBB68489ACB}.Release|Any CPU.Build.0 = Release|Any CPU
- {6FBC2164-3AAE-4978-88B6-A0779C62A22D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6FBC2164-3AAE-4978-88B6-A0779C62A22D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6FBC2164-3AAE-4978-88B6-A0779C62A22D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6FBC2164-3AAE-4978-88B6-A0779C62A22D}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {ADE449F3-A69B-4F43-BB03-E0C3C98E83BB}
- EndGlobalSection
- GlobalSection(SharedMSBuildProjectFiles) = preSolution
- SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13
- SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{9726301d-8a93-4a06-88df-92ba01cf80ad}*SharedItemsImports = 5
- EndGlobalSection
-EndGlobal
diff --git a/scripts/azure-templates-bootstrapper.yml b/scripts/azure-templates-bootstrapper.yml
index d7fabb8e10..fdafa5bfec 100644
--- a/scripts/azure-templates-bootstrapper.yml
+++ b/scripts/azure-templates-bootstrapper.yml
@@ -180,7 +180,7 @@ jobs:
packageType: 'sdk'
version: 7.0.x
retryCountOnTaskFailure: 3
- displayName: Install .NET Core 7.0.x
+ displayName: Install .NET 7.0.x
- pwsh: .\scripts\install-dotnet.ps1 -Version $env:DOTNET_VERSION_PREVIEW -InstallDir "$env:AGENT_TOOLSDIRECTORY/dotnet"
displayName: Install the preview version of .NET Core
retryCountOnTaskFailure: 3
diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SKSwapChainPanel.Wasm.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SKSwapChainPanel.Wasm.cs
index ea5fda39ca..b7bc19cf0a 100644
--- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SKSwapChainPanel.Wasm.cs
+++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/SKSwapChainPanel.Wasm.cs
@@ -1,8 +1,9 @@
using System;
using System.Threading;
using Uno.Foundation;
-using Uno.Foundation.Interop;
using Uno.UI.Runtime.WebAssembly;
+using System.Runtime.InteropServices;
+
#if WINUI
using Microsoft.UI.Xaml;
#else
@@ -15,6 +16,13 @@ namespace SkiaSharp.Views.Windows
namespace SkiaSharp.Views.UWP
#endif
{
+#if NET7_0_OR_GREATER
+ using System.Runtime.InteropServices.JavaScript;
+ using NativeSwapChainPanel = System.Runtime.InteropServices.JavaScript.JSObject;
+#else
+ using NativeSwapChainPanel = SKSwapChainPanel.NativeMethods.SKSwapChainPanelJsInterop;
+#endif
+
[HtmlElement("canvas")]
public partial class SKSwapChainPanel : FrameworkElement
{
@@ -28,7 +36,7 @@ public partial class SKSwapChainPanel : FrameworkElement
private const SKColorType colorType = SKColorType.Rgba8888;
private const GRSurfaceOrigin surfaceOrigin = GRSurfaceOrigin.BottomLeft;
- private readonly SKSwapChainPanelJsInterop jsInterop;
+ private readonly NativeSwapChainPanel nativeSwapChainPanel;
private GRGlInterface glInterface;
private GRContext context;
@@ -42,7 +50,7 @@ public partial class SKSwapChainPanel : FrameworkElement
public SKSwapChainPanel()
{
- jsInterop = new SKSwapChainPanelJsInterop(this);
+ nativeSwapChainPanel = NativeMethods.CreateInstance(this);
Initialize();
}
@@ -52,13 +60,13 @@ public SKSwapChainPanel()
partial void DoLoaded()
{
- jsInfo = jsInterop.CreateContext();
+ jsInfo = NativeMethods.CreateContext(this, nativeSwapChainPanel);
Invalidate();
}
partial void DoEnableRenderLoop(bool enable) =>
- jsInterop.SetEnableRenderLoop(enable);
+ NativeMethods.SetEnableRenderLoop(nativeSwapChainPanel, enable);
//partial void DoUpdateBounds() =>
// jsInterop.ResizeCanvas();
@@ -74,9 +82,20 @@ private void DoInvalidate()
if ((int)ActualWidth <= 0 || (int)ActualHeight <= 0)
return;
- jsInterop.RequestAnimationFrame(EnableRenderLoop);
+ NativeMethods.SetEnableRenderLoop(nativeSwapChainPanel, true);
}
+#if NET7_0_OR_GREATER
+ [JSExport()]
+ internal static void RenderFrame([JSMarshalAs] object instance)
+ {
+ if(instance is SKSwapChainPanel panel)
+ {
+ panel.RenderFrame();
+ }
+ }
+#endif
+
internal void RenderFrame()
{
if (!jsInfo.IsValid)
@@ -131,9 +150,13 @@ internal void RenderFrame()
// update the control
canvas.Flush();
context.Flush();
+
+ // stop the render loop if it has been disabled
+ if (!EnableRenderLoop)
+ DoEnableRenderLoop(false);
}
- private struct JsInfo
+ internal struct JsInfo
{
public bool IsValid { get; set; }
@@ -148,80 +171,132 @@ private struct JsInfo
public int Depth { get; set; }
}
- private class SKSwapChainPanelJsInterop : IJSObject, IJSObjectMetadata
+ internal static partial class NativeMethods
{
- private static long handleCounter = 0L;
+ public static NativeSwapChainPanel CreateInstance(SKSwapChainPanel owner)
+ {
+#if NET7_0_OR_GREATER
+ return CreateInstanceInternal(owner);
+#else
+ return new SKSwapChainPanelJsInterop(owner);
+#endif
+ }
- private readonly long jsHandle;
+#if NET7_0_OR_GREATER
+ [JSImport("globalThis.SkiaSharp.Views.Windows.SKSwapChainPanel.createInstance")]
+ public static partial NativeSwapChainPanel CreateInstanceInternal([JSMarshalAs] object owner);
+#endif
- public SKSwapChainPanelJsInterop(SKSwapChainPanel panel)
+ public static JsInfo CreateContext(SKSwapChainPanel owner, NativeSwapChainPanel nativeSwapChainPanel)
{
- Panel = panel ?? throw new ArgumentNullException(nameof(panel));
+#if NET7_0_OR_GREATER
+ var jsInfo = new JsInfo();
+ var jsObject = CreateContextInternal(nativeSwapChainPanel, owner.GetHtmlId());
+
+ jsInfo.IsValid = true;
+ jsInfo.ContextId = jsObject.GetPropertyAsInt32("contextId");
+ jsInfo.FboId = (uint)jsObject.GetPropertyAsInt32("fboId");
+ jsInfo.Stencil = jsObject.GetPropertyAsInt32("stencil");
+ jsInfo.Samples = jsObject.GetPropertyAsInt32("samples");
+ jsInfo.Depth = jsObject.GetPropertyAsInt32("depth");
+ return jsInfo;
+#else
+ return nativeSwapChainPanel.CreateContext();
+#endif
+ }
+
+#if NET7_0_OR_GREATER
+ [JSImport("globalThis.SkiaSharp.Views.Windows.SKSwapChainPanel.createContextStatic")]
+ private static partial NativeSwapChainPanel CreateContextInternal(NativeSwapChainPanel nativeSwapChainPanel, string canvasId);
+#endif
- jsHandle = Interlocked.Increment(ref handleCounter);
- Handle = JSObjectHandle.Create(this, this);
+#if NET7_0_OR_GREATER
+ [JSImport("globalThis.SkiaSharp.Views.Windows.SKSwapChainPanel.setEnableRenderLoop")]
+ internal static partial void SetEnableRenderLoop(NativeSwapChainPanel nativeSwapChainPanel, bool enable);
+#else
+ internal static void SetEnableRenderLoop(NativeSwapChainPanel nativeSwapChainPanel, bool enable)
+ {
+ nativeSwapChainPanel.SetEnableRenderLoop(enable);
}
+#endif
+
+#if NETSTANDARD2_0 || !WINUI
+ internal class SKSwapChainPanelJsInterop : Uno.Foundation.Interop.IJSObject, Uno.Foundation.Interop.IJSObjectMetadata
+ {
+ private static long handleCounter = 0L;
- public SKSwapChainPanel Panel { get; }
+ private readonly long jsHandle;
- public JSObjectHandle Handle { get; }
+ public SKSwapChainPanelJsInterop(SKSwapChainPanel panel)
+ {
+ Panel = panel ?? throw new ArgumentNullException(nameof(panel));
- public void RenderFrame() =>
- Panel.RenderFrame();
+ jsHandle = Interlocked.Increment(ref handleCounter);
+ Handle = Uno.Foundation.Interop.JSObjectHandle.Create(this, this);
+ }
- public void RequestAnimationFrame(bool renderLoop) =>
- WebAssemblyRuntime.InvokeJSWithInterop($"{this}.requestAnimationFrame({(renderLoop ? "true" : "false")});");
+ public SKSwapChainPanel Panel { get; }
- public void SetEnableRenderLoop(bool enable) =>
- WebAssemblyRuntime.InvokeJSWithInterop($"{this}.setEnableRenderLoop({(enable ? "true" : "false")});");
+ public Uno.Foundation.Interop.JSObjectHandle Handle { get; }
- public void ResizeCanvas() =>
- WebAssemblyRuntime.InvokeJSWithInterop($"{this}.resizeCanvas();");
+ public void RenderFrame() =>
+ Panel.RenderFrame();
- public JsInfo CreateContext()
- {
- var resultString = WebAssemblyRuntime.InvokeJSWithInterop($"return {this}.createContext('{Panel.GetHtmlId()}');");
- var result = resultString?.Split(',');
- if (result?.Length != 5)
- return default;
+ public void RequestAnimationFrame(bool renderLoop) =>
+ WebAssemblyRuntime.InvokeJSWithInterop($"{this}.requestAnimationFrame({(renderLoop ? "true" : "false")});");
+
+ public void SetEnableRenderLoop(bool enable) =>
+ WebAssemblyRuntime.InvokeJSWithInterop($"{this}.setEnableRenderLoop({(enable ? "true" : "false")});");
+
+ public void ResizeCanvas() =>
+ WebAssemblyRuntime.InvokeJSWithInterop($"{this}.resizeCanvas();");
- return new JsInfo
+ public JsInfo CreateContext()
{
- IsValid = true,
- ContextId = int.Parse(result[0]),
- FboId = uint.Parse(result[1]),
- Stencil = int.Parse(result[2]),
- Samples = int.Parse(result[3]),
- Depth = int.Parse(result[4]),
- };
- }
+ var resultString = WebAssemblyRuntime.InvokeJSWithInterop($"return {this}.createContextLegacy('{Panel.GetHtmlId()}');");
+ var result = resultString?.Split(',');
+ if (result?.Length != 5)
+ return default;
+
+ return new JsInfo
+ {
+ IsValid = true,
+ ContextId = int.Parse(result[0]),
+ FboId = uint.Parse(result[1]),
+ Stencil = int.Parse(result[2]),
+ Samples = int.Parse(result[3]),
+ Depth = int.Parse(result[4]),
+ };
+ }
- long IJSObjectMetadata.CreateNativeInstance(IntPtr managedHandle)
- {
- WebAssemblyRuntime.InvokeJS(SKSwapChainPanelTypeFullName + $".createInstance('{managedHandle}', '{jsHandle}')");
- return jsHandle;
- }
+ long Uno.Foundation.Interop.IJSObjectMetadata.CreateNativeInstance(IntPtr managedHandle)
+ {
+ WebAssemblyRuntime.InvokeJS(SKSwapChainPanelTypeFullName + $".createInstanceLegacy('{managedHandle}', '{jsHandle}')");
+ return jsHandle;
+ }
- string IJSObjectMetadata.GetNativeInstance(IntPtr managedHandle, long jsHandle) =>
- SKSwapChainPanelTypeFullName + $".getInstance('{jsHandle}')";
+ string Uno.Foundation.Interop.IJSObjectMetadata.GetNativeInstance(IntPtr managedHandle, long jsHandle) =>
+ SKSwapChainPanelTypeFullName + $".getInstanceLegacy('{jsHandle}')";
- void IJSObjectMetadata.DestroyNativeInstance(IntPtr managedHandle, long jsHandle) =>
- WebAssemblyRuntime.InvokeJS(SKSwapChainPanelTypeFullName + $".destroyInstance('{jsHandle}')");
+ void Uno.Foundation.Interop.IJSObjectMetadata.DestroyNativeInstance(IntPtr managedHandle, long jsHandle) =>
+ WebAssemblyRuntime.InvokeJS(SKSwapChainPanelTypeFullName + $".destroyInstanceLegacy('{jsHandle}')");
- object IJSObjectMetadata.InvokeManaged(object instance, string method, string parameters)
- {
- switch (method)
+ object Uno.Foundation.Interop.IJSObjectMetadata.InvokeManaged(object instance, string method, string parameters)
{
- case nameof(RenderFrame):
- RenderFrame();
- break;
+ switch (method)
+ {
+ case nameof(RenderFrame):
+ RenderFrame();
+ break;
- default:
- throw new ArgumentException($"Unable to execute method: {method}", nameof(method));
- }
+ default:
+ throw new ArgumentException($"Unable to execute method: {method}", nameof(method));
+ }
- return null;
+ return null;
+ }
}
+#endif
}
}
}
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 581f126b23..75e0257cf1 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
@@ -67,7 +67,7 @@ private void DoInvalidate()
OnPaintSurface(new SKPaintSurfaceEventArgs(surface, info.WithSize(userVisibleSize), info));
}
- WebAssemblyRuntime.InvokeJS(SKXamlCanvasFullTypeName + $".invalidateCanvas({pixelsHandle.AddrOfPinnedObject()}, \"{this.GetHtmlId()}\", {info.Width}, {pixelHeight});");
+ NativeMethods.InvalidateCanvas(pixelsHandle.AddrOfPinnedObject(), this.GetHtmlId(), info.Width, pixelHeight);
}
private SKImageInfo CreateBitmap(out SKSizeI unscaledSize, out float dpi)
@@ -90,7 +90,7 @@ private SKImageInfo CreateBitmap(out SKSizeI unscaledSize, out float dpi)
private void FreeBitmap()
{
- WebAssemblyRuntime.InvokeJS(SKXamlCanvasFullTypeName + $".clearCanvas(\"{this.GetHtmlId()}\");");
+ NativeMethods.ClearCanvas(this.GetHtmlId());
if (pixels != null)
{
@@ -98,5 +98,28 @@ private void FreeBitmap()
pixels = null;
}
}
+
+ private static partial class NativeMethods
+ {
+#if NET7_0_OR_GREATER
+ [System.Runtime.InteropServices.JavaScript.JSImport("globalThis." + SKXamlCanvasFullTypeName + ".invalidateCanvas")]
+ public static partial void InvalidateCanvas(IntPtr intPtr, string htmlId, int width, int height);
+#else
+ public static void InvalidateCanvas(IntPtr intPtr, string htmlId, int width, int height)
+ {
+ WebAssemblyRuntime.InvokeJS(SKXamlCanvasFullTypeName + $".invalidateCanvas({intPtr}, \"{htmlId}\", {width}, {height});");
+ }
+#endif
+
+#if NET7_0_OR_GREATER
+ [System.Runtime.InteropServices.JavaScript.JSImport("globalThis." + SKXamlCanvasFullTypeName + ".clearCanvas")]
+ public static partial void ClearCanvas(string htmlId);
+#else
+ public static void ClearCanvas(string htmlId)
+ {
+ WebAssemblyRuntime.InvokeJS(SKXamlCanvasFullTypeName + $".clearCanvas(\"{htmlId}\");");
+ }
+#endif
+ }
}
}
diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/WasmScripts/SkiaSharp.Views.Uno.Wasm.js b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/WasmScripts/SkiaSharp.Views.Uno.Wasm.js
index cdf2c016a9..ada38e2f4a 100644
--- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/WasmScripts/SkiaSharp.Views.Uno.Wasm.js
+++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.Wasm/WasmScripts/SkiaSharp.Views.Uno.Wasm.js
@@ -62,13 +62,13 @@
}
// JSObject
- static createInstance(managedHandle, jsHandle) {
+ static createInstanceLegacy(managedHandle, jsHandle) {
SKSwapChainPanel.activeInstances[jsHandle] = new SKSwapChainPanel(managedHandle);
}
- static getInstance(jsHandle) {
+ static getInstanceLegacy(jsHandle) {
return SKSwapChainPanel.activeInstances[jsHandle];
}
- static destroyInstance(jsHandle) {
+ static destroyInstanceLegacy(jsHandle) {
delete SKSwapChainPanel.activeInstances[jsHandle];
}
diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Mobile/SKSwapChainPanel.maccatalyst.cs b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Mobile/SKSwapChainPanel.maccatalyst.cs
new file mode 100644
index 0000000000..6f26972575
--- /dev/null
+++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Mobile/SKSwapChainPanel.maccatalyst.cs
@@ -0,0 +1,46 @@
+#if __MACCATALYST__
+using System;
+using System.Threading;
+using Uno.Foundation;
+#if WINUI
+using Microsoft.UI.Xaml;
+#else
+using Windows.UI.Xaml;
+#endif
+
+namespace SkiaSharp.Views.Windows
+{
+ 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() { }
+ }
+}
+#endif
diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Reference/SkiaSharp.Views.Uno.WinUI.Reference.csproj b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Reference/SkiaSharp.Views.Uno.WinUI.Reference.csproj
index bfa4c23612..48a9af04d8 100644
--- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Reference/SkiaSharp.Views.Uno.WinUI.Reference.csproj
+++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Reference/SkiaSharp.Views.Uno.WinUI.Reference.csproj
@@ -1,6 +1,6 @@
- netstandard2.0
+ netstandard2.0;net7.0
SkiaSharp.Views.Windows
SkiaSharp.Views.Windows
false
@@ -16,8 +16,7 @@
-
-
diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Reference/nuget/build/net7.0/SkiaSharp.Views.Uno.WinUI.targets b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Reference/nuget/build/net7.0/SkiaSharp.Views.Uno.WinUI.targets
new file mode 100644
index 0000000000..5fa18e9dd5
--- /dev/null
+++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Reference/nuget/build/net7.0/SkiaSharp.Views.Uno.WinUI.targets
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Skia/SkiaSharp.Views.Uno.WinUI.Skia.csproj b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Skia/SkiaSharp.Views.Uno.WinUI.Skia.csproj
index cdcaf17918..4c7f2cc840 100644
--- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Skia/SkiaSharp.Views.Uno.WinUI.Skia.csproj
+++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Skia/SkiaSharp.Views.Uno.WinUI.Skia.csproj
@@ -1,11 +1,11 @@
- netstandard2.0
+ netstandard2.0;net7.0
SkiaSharp.Views.Windows
SkiaSharp.Views.Windows
false
SkiaSharp.Views.Uno.WinUI
- uno-runtime\skia
+ uno-runtime\$(TargetFramework)\skia
$(DefineConstants);HAS_UNO_SKIA;WINUI
diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Wasm/SkiaSharp.Views.Uno.WinUI.Wasm.csproj b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Wasm/SkiaSharp.Views.Uno.WinUI.Wasm.csproj
index 396f2c1c08..702dbcbd15 100644
--- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Wasm/SkiaSharp.Views.Uno.WinUI.Wasm.csproj
+++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Wasm/SkiaSharp.Views.Uno.WinUI.Wasm.csproj
@@ -1,11 +1,13 @@
- netstandard2.0
+ netstandard2.0;net7.0
SkiaSharp.Views.Windows
SkiaSharp.Views.Windows
false
SkiaSharp.Views.Uno.WinUI
- uno-runtime\webassembly
+ uno-runtime\$(TargetFramework)\webassembly
+ 11.0
+ $(NoWarn);CA1416
$(DefineConstants);__WASM__;WINUI
@@ -18,9 +20,9 @@
-
-
+
diff --git a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Wasm/WasmScripts/SkiaSharp.Views.Uno.Wasm.js b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Wasm/WasmScripts/SkiaSharp.Views.Uno.Wasm.js
index d3cd5704ba..31627e273c 100644
--- a/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Wasm/WasmScripts/SkiaSharp.Views.Uno.Wasm.js
+++ b/source/SkiaSharp.Views.Uno/SkiaSharp.Views.Uno.WinUI.Wasm/WasmScripts/SkiaSharp.Views.Uno.Wasm.js
@@ -6,6 +6,8 @@
(function (Windows) {
class SKXamlCanvas {
+ static buffers = [];
+
static invalidateCanvas(pData, canvasId, width, height) {
var htmlCanvas = document.getElementById(canvasId);
htmlCanvas.width = width;
@@ -15,12 +17,37 @@
if (!ctx)
return false;
- var buffer = new Uint8ClampedArray(Module.HEAPU8.buffer, pData, width * height * 4);
- var imageData = new ImageData(buffer, width, height);
- ctx.putImageData(imageData, 0, 0);
+ var byteLength = width * height * 4;
+
+ if (isSecureContext) {
+ // In a secure context (e.g. with threading enabled), creating a view
+ // from Module.HEAPU8.buffer is not supported, so we're making an
+ // explicit copy of the wasm memory.
+ var buffer = SKXamlCanvas.buffers[canvasId];
+
+ if (!buffer || buffer.length != byteLength) {
+ SKXamlCanvas.buffers[canvasId] = buffer = new Uint8ClampedArray(new ArrayBuffer(byteLength));
+ }
+
+ var slice = Module.HEAPU8.buffer.slice(pData, pData + byteLength);
+ buffer.set(new Uint8ClampedArray(slice), 0);
+ var imageData = new ImageData(buffer, width, height);
+ ctx.putImageData(imageData, 0, 0);
+ }
+ else {
+ var buffer = new Uint8ClampedArray(Module.HEAPU8.buffer, byteLength);
+ var imageData = new ImageData(buffer, width, height);
+ ctx.putImageData(imageData, 0, 0);
+ }
return true;
}
+
+ static clearCanvas(canvasId) {
+ if (isSecureContext) {
+ delete SKXamlCanvas.buffers[canvasId];
+ }
+ }
}
class SKSwapChainPanel {
@@ -29,22 +56,40 @@
constructor(managedHandle) {
this.managedHandle = managedHandle;
this.canvas = undefined;
- this.jsInfo = undefined;
this.renderLoop = false;
this.currentRequest = 0;
+ this.requestRender = undefined;
+
+ this.buildImports();
+ }
+
+ async buildImports() {
+ if (Module.getAssemblyExports !== undefined) {
+ const skiaSharpExports = await Module.getAssemblyExports("SkiaSharp.Views.Windows");
+
+ this.requestRender = () => skiaSharpExports.SkiaSharp.Views.Windows.SKSwapChainPanel.RenderFrame(this.managedHandle);
+ }
+ else {
+ this.requestRender =
+ () => Uno.Foundation.Interop.ManagedObject.dispatch(this.managedHandle, 'RenderFrame', null);
+ }
}
// JSObject
- static createInstance(managedHandle, jsHandle) {
+ static createInstanceLegacy(managedHandle, jsHandle) {
SKSwapChainPanel.activeInstances[jsHandle] = new SKSwapChainPanel(managedHandle);
}
- static getInstance(jsHandle) {
+ static getInstanceLegacy(jsHandle) {
return SKSwapChainPanel.activeInstances[jsHandle];
}
- static destroyInstance(jsHandle) {
+ static destroyInstanceLegacy(jsHandle) {
delete SKSwapChainPanel.activeInstances[jsHandle];
}
+ static createInstance(managedHandle) {
+ return new SKSwapChainPanel(managedHandle);
+ }
+
requestAnimationFrame(renderLoop) {
// optionally update the render loop
if (renderLoop !== undefined && this.renderLoop !== renderLoop)
@@ -59,7 +104,10 @@
// add the draw to the next frame
this.currentRequest = window.requestAnimationFrame(() => {
- Uno.Foundation.Interop.ManagedObject.dispatch(this.managedHandle, 'RenderFrame', null);
+
+ if (this.requestRender) {
+ this.requestRender();
+ }
this.currentRequest = 0;
@@ -83,7 +131,11 @@
this.canvas.height = h;
}
- setEnableRenderLoop(enable) {
+ static setEnableRenderLoop(instance, enable) {
+ instance.setEnableRenderLoopInternal(enable);
+ }
+
+ setEnableRenderLoopInternal(enable) {
this.renderLoop = enable;
// either start the new frame or cancel the existing one
@@ -95,6 +147,26 @@
}
}
+ createContextLegacy(canvasOrCanvasId) {
+
+ var jsInfo = this.createContext(canvasOrCanvasId);
+
+ // format as array for nicer parsing
+ jsInfo = [
+ info.ctx,
+ info.fbo ? info.fbo.id : 0,
+ info.stencil,
+ info.sample,
+ info.depth,
+ ];
+
+ return jsInfo;
+ }
+
+ static createContextStatic(instance, canvasOrCanvasId) {
+ return instance.createContext(canvasOrCanvasId);
+ }
+
createContext(canvasOrCanvasId) {
if (!canvasOrCanvasId)
throw 'No