Add support for SKXamlCanvas on Uno Platform SkiaSharp backends v2.0 (#1634) (#1704)

* fix: [Uno] SKXamlCanvas is now a Canvas
* feat: Add support for SKXamlCanvas when running on SkiaSharp based backends
   This enables SKXamlCanvas for Uno Platform's support for for GTK (Linux, Windows, macOS), WPF and Tizen, for Uno 3.6 and later.
* feat: Add Uno Skia samples
* bump uno samples to latest uno.ui for VS 16.10 pre3 changes
* Update Uno all packages
* ci: adjust for wasm net5
* fix: Update WPF sample
* Remove unsupported tizen sample
* chore: Update to Uno.UI 3.7.6 to fix invalid SkiaSharp.Views dependency
* Update llvm to v11.1


Co-authored-by: Jerome Laban <jerome.laban@nventive.com>
This commit is contained in:
Matthew Leibowitz 2021-06-11 13:23:50 +02:00 коммит произвёл GitHub
Родитель 9fbd2acdfc
Коммит 80860aacf3
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
56 изменённых файлов: 1134 добавлений и 51 удалений

Просмотреть файл

@ -21,7 +21,7 @@ System.Memory release 4.5.3
System.IO.UnmanagedMemoryStream release 4.3.0
System.Drawing.Common release 4.5.1
SharpVk release 0.4.2
Uno.UI release 3.7.4
Uno.UI release 3.7.6
Microsoft.ProjectReunion release 0.5.0
Microsoft.ProjectReunion.Foundation release 0.5.0
Microsoft.ProjectReunion.WinUI release 0.5.0

Просмотреть файл

@ -50,7 +50,7 @@ DirectoryPath DOCS_PATH = MakeAbsolute(ROOT_PATH.Combine("docs/SkiaSharpAPI"));
var PREVIEW_LABEL = Argument ("previewLabel", EnvironmentVariable ("PREVIEW_LABEL") ?? "preview");
var FEATURE_NAME = EnvironmentVariable ("FEATURE_NAME") ?? "";
var BUILD_NUMBER = EnvironmentVariable ("BUILD_NUMBER") ?? "0";
var BUILD_NUMBER = Argument ("buildNumber", EnvironmentVariable ("BUILD_NUMBER") ?? "0");
var GIT_SHA = Argument ("gitSha", EnvironmentVariable ("GIT_SHA") ?? "");
var GIT_BRANCH_NAME = Argument ("gitBranch", EnvironmentVariable ("GIT_BRANCH_NAME") ?? "");

Просмотреть файл

@ -11,6 +11,12 @@ bool SUPPORT_VULKAN = SUPPORT_VULKAN_VAR == "1" || SUPPORT_VULKAN_VAR.ToLower ()
string VARIANT = BUILD_VARIANT ?? "windows";
Information("Native Arguments:");
Information($" {"LLVM_HOME".PadRight(30)} {{0}}", LLVM_HOME);
Information($" {"SUPPORT_VULKAN".PadRight(30)} {{0}}", SUPPORT_VULKAN);
Information($" {"VARIANT".PadRight(30)} {{0}}", VARIANT);
Information($" {"CONFIGURATION".PadRight(30)} {{0}}", CONFIGURATION);
Task("libSkiaSharp")
.IsDependentOn("git-sync-deps")
.WithCriteria(IsRunningOnWindows())

Просмотреть файл

@ -28,24 +28,24 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release
<dependencies>
<group targetFramework="netstandard2.0">
<dependency id="Uno.UI" version="3.7.4" />
<dependency id="Uno.UI" version="3.7.6" />
<dependency id="SkiaSharp" version="1.0.0" />
<dependency id="SkiaSharp.NativeAssets.WebAssembly" version="1.0.0" />
</group>
<group targetFramework="monoandroid1.0">
<dependency id="Uno.UI" version="3.7.4" />
<dependency id="Uno.UI" version="3.7.6" />
<dependency id="SkiaSharp" version="1.0.0" />
</group>
<group targetFramework="xamarinios1.0">
<dependency id="Uno.UI" version="3.7.4" />
<dependency id="Uno.UI" version="3.7.6" />
<dependency id="SkiaSharp" version="1.0.0" />
</group>
<group targetFramework="xamarinmac2.0">
<dependency id="Uno.UI" version="3.7.4" />
<dependency id="Uno.UI" version="3.7.6" />
<dependency id="SkiaSharp" version="1.0.0" />
</group>
<group targetFramework="uap10.0">
<dependency id="Uno.UI" version="3.7.4" />
<dependency id="Uno.UI" version="3.7.6" />
<dependency id="SkiaSharp" version="1.0.0" />
<dependency id="SkiaSharp.Views" version="1.0.0" />
</group>
@ -59,6 +59,8 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release
<file src="lib/netstandard2.0/SkiaSharp.Views.UWP.xml" />
<file src="uno-runtime/webassembly/SkiaSharp.Views.UWP.dll" />
<file src="uno-runtime/webassembly/SkiaSharp.Views.UWP.xml" />
<file src="uno-runtime/skia/SkiaSharp.Views.UWP.dll" />
<file src="uno-runtime/skia/SkiaSharp.Views.UWP.xml" />
<file platform="macos,windows" src="lib/monoandroid1.0/SkiaSharp.Views.UWP.dll" />
<file platform="macos,windows" src="lib/monoandroid1.0/SkiaSharp.Views.UWP.xml" />
<file platform="macos" src="lib/xamarinios1.0/SkiaSharp.Views.UWP.dll" />

Просмотреть файл

@ -27,9 +27,6 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<dependencies>
<group>
<dependency id="SkiaSharp" version="1.0.0" />
</group>
<group targetFramework="net462">
<dependency id="SkiaSharp" version="1.0.0" />
<dependency id="SkiaSharp.Views.Desktop.Common" version="1.0.0" />

Просмотреть файл

@ -56,8 +56,8 @@
<Reference Include="Mono.Android.Export" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.4" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UniversalImageLoader" Version="1.9.33" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />

Просмотреть файл

@ -22,8 +22,8 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />
<PackageReference Include="Uno.UI.WebAssembly" Version="3.7.4" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.4" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UI.WebAssembly" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.Wasm.Bootstrap" Version="2.1.0" />
<PackageReference Include="Uno.Wasm.Bootstrap.DevServer" Version="2.1.0" />
</ItemGroup>

Просмотреть файл

@ -95,8 +95,8 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.4" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />
</ItemGroup>

Просмотреть файл

@ -41,8 +41,8 @@
<Reference Include="System.Memory" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.4" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />
</ItemGroup>

Просмотреть файл

@ -2,7 +2,7 @@
using System.IO;
using System.Linq;
using Xamarin.Essentials;
#if __WASM__
#if __WASM__ || HAS_UNO_SKIA
using System.Runtime.InteropServices;
using Windows.ApplicationModel;
using Windows.Storage;
@ -47,7 +47,7 @@ namespace SkiaSharpSample
{
var fontName = "content-font.ttf";
#if WINDOWS_UWP
#if WINDOWS_UWP || HAS_UNO_SKIA
var pkg = Package.Current.InstalledLocation.Path;
var path = Path.Combine(pkg, "Assets", "Media", fontName);
#elif __IOS__ || __TVOS__ || __MACOS__
@ -86,7 +86,7 @@ namespace SkiaSharpSample
var localStorage = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
#elif __DESKTOP__
var localStorage = System.Windows.Forms.Application.LocalUserAppDataPath;
#elif __WASM__
#elif __WASM__ || HAS_UNO_SKIA
var localStorage = ApplicationData.Current.LocalFolder.Path;
#endif

Просмотреть файл

@ -57,8 +57,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Essentials" Version="1.5.1" />
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.4" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UniversalImageLoader" Version="1.9.33" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,24 @@
using System;
using GLib;
using Uno.UI.Runtime.Skia;
namespace SkiaSharpSample.Gtk
{
class Program
{
static void Main(string[] args)
{
SkiaSharp.Views.UWP.SKSwapChainPanel.RaiseOnUnsupported = false;
ExceptionManager.UnhandledException += delegate (UnhandledExceptionArgs expArgs)
{
Console.WriteLine("GLIB UNHANDLED EXCEPTION" + expArgs.ExceptionObject.ToString());
expArgs.ExitApplication = true;
};
var host = new GtkHost(() => new App(), args);
host.Run();
}
}
}

Просмотреть файл

@ -0,0 +1,39 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType Condition="'$(Configuration)'=='Release'">WinExe</OutputType>
<OutputType Condition="'$(Configuration)'=='Debug'">Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup Condition="exists('..\SkiaSharpSample.UWP')">
<EmbeddedResource Include="..\SkiaSharpSample.UWP\Package.appxmanifest" LogicalName="Package.appxmanifest" />
<Content Include="..\SkiaSharpSample.UWP\Assets\StoreLogo.scale-400.png" Link="Assets\StoreLogo.png" />
<Content Include="Assets\Fonts\uno-fluentui-assets.ttf" />
</ItemGroup>
<ItemGroup>
<UpToDateCheckInput Include="..\SkiaSharpSample.Shared\**\*.xaml" />
</ItemGroup>
<ItemGroup>
<!-- Note that for WebAssembly version 1.1.1 of the console logger required -->
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />
<PackageReference Include="Uno.UI.Skia.Gtk" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
</ItemGroup>
<Import Project="..\SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems" Label="Shared" />
<ItemGroup>
<ProjectReference Include="..\..\..\..\binding\SkiaSharp\SkiaSharp.csproj" />
<ProjectReference Include="..\..\..\..\binding\HarfBuzzSharp\HarfBuzzSharp.csproj" />
<ProjectReference Include="..\..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj" />
<ProjectReference Include="..\..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj" />
</ItemGroup>
<ItemGroup>
<Content Include="..\..\..\..\output\native\windows\x64\*.dll" Visible="False" />
<Content Include="..\..\..\..\output\native\linux\x64\*.so" Visible="False" />
<Content Include="..\..\..\..\output\native\osx\*.dylib" Visible="False" />
<Content Include="..\..\Shared\Media\content-font.ttf">
<Link>Assets\Media\content-font.ttf</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<Import Project="..\..\..\..\output\SkiaSharp.Views.Uno\nuget\build\netstandard2.0\SkiaSharp.Views.Uno.targets" Condition="Exists('..\..\..\..\output\SkiaSharp.Views.Uno\nuget\build\netstandard2.0\SkiaSharp.Views.Uno.targets')" />
</Project>

Просмотреть файл

@ -11,6 +11,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp", "..\..\..\binding\SkiaSharp\SkiaSharp.csproj", "{409AF271-D8B7-4F79-B293-02F562A51955}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{E9507AEE-7C7C-4495-9698-D95DEBAA2AD0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.HarfBuzz", "..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj", "{D0580308-2C5A-4B6D-8884-25CA3A5AD304}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp", "..\..\..\binding\HarfBuzzSharp\HarfBuzzSharp.csproj", "{42F0E7DE-941E-4348-ACDE-7DCF61D05E6B}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13
@ -33,6 +39,18 @@ Global
{409AF271-D8B7-4F79-B293-02F562A51955}.Debug|Any CPU.Build.0 = Debug|Any CPU
{409AF271-D8B7-4F79-B293-02F562A51955}.Release|Any CPU.ActiveCfg = Release|Any CPU
{409AF271-D8B7-4F79-B293-02F562A51955}.Release|Any CPU.Build.0 = Release|Any CPU
{E9507AEE-7C7C-4495-9698-D95DEBAA2AD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E9507AEE-7C7C-4495-9698-D95DEBAA2AD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E9507AEE-7C7C-4495-9698-D95DEBAA2AD0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E9507AEE-7C7C-4495-9698-D95DEBAA2AD0}.Release|Any CPU.Build.0 = Release|Any CPU
{D0580308-2C5A-4B6D-8884-25CA3A5AD304}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0580308-2C5A-4B6D-8884-25CA3A5AD304}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D0580308-2C5A-4B6D-8884-25CA3A5AD304}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0580308-2C5A-4B6D-8884-25CA3A5AD304}.Release|Any CPU.Build.0 = Release|Any CPU
{42F0E7DE-941E-4348-ACDE-7DCF61D05E6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{42F0E7DE-941E-4348-ACDE-7DCF61D05E6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{42F0E7DE-941E-4348-ACDE-7DCF61D05E6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{42F0E7DE-941E-4348-ACDE-7DCF61D05E6B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Просмотреть файл

@ -25,6 +25,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.OSX", "..\..\..\b
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp", "..\..\..\binding\SkiaSharp\SkiaSharp.csproj", "{409AF271-D8B7-4F79-B293-02F562A51955}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.Android", "..\..\..\binding\HarfBuzzSharp.Android\HarfBuzzSharp.Android.csproj", "{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp", "..\..\..\binding\HarfBuzzSharp\HarfBuzzSharp.csproj", "{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.iOS", "..\..\..\binding\HarfBuzzSharp.iOS\HarfBuzzSharp.iOS.csproj", "{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.OSX", "..\..\..\binding\HarfBuzzSharp.OSX\HarfBuzzSharp.OSX.csproj", "{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.HarfBuzz", "..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj", "{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{2a19c71c-d1ab-4c70-b821-6a7c7c4abe66}*SharedItemsImports = 4
@ -167,6 +179,78 @@ Global
{409AF271-D8B7-4F79-B293-02F562A51955}.Release|iPhone.Build.0 = Release|Any CPU
{409AF271-D8B7-4F79-B293-02F562A51955}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{409AF271-D8B7-4F79-B293-02F562A51955}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|iPhone.Build.0 = Debug|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|Any CPU.Build.0 = Release|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|iPhone.ActiveCfg = Release|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|iPhone.Build.0 = Release|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5397E13D-6FCE-4F91-B5CE-FEDBE45E0A28}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|iPhone.Build.0 = Debug|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|Any CPU.Build.0 = Release|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|iPhone.ActiveCfg = Release|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|iPhone.Build.0 = Release|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7FD1A613-2B03-4B32-9A9E-6D4FD2E44A92}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|iPhone.Build.0 = Debug|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|Any CPU.Build.0 = Release|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|iPhone.ActiveCfg = Release|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|iPhone.Build.0 = Release|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{288C869A-1EAD-4FD2-A8FE-0213EB4B5B0A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|iPhone.Build.0 = Debug|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|Any CPU.Build.0 = Release|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|iPhone.ActiveCfg = Release|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|iPhone.Build.0 = Release|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B5F9CA08-26C1-40FF-92C5-AAA4B04A1D17}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|iPhone.Build.0 = Debug|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|Any CPU.Build.0 = Release|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|iPhone.ActiveCfg = Release|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|iPhone.Build.0 = Release|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{E2FD0BFD-D17E-4E8A-8E83-D5FCDE1F6FAE}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|iPhone.Build.0 = Debug|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|Any CPU.Build.0 = Release|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|iPhone.ActiveCfg = Release|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|iPhone.Build.0 = Release|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{48DE405A-9432-40D1-AE6E-86CE2E0CE89A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Просмотреть файл

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>

Просмотреть файл

@ -0,0 +1,9 @@
<Application x:Class="SkiaSharpSample.WPF.Host.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SkiaSharpSample.WPF.Host"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>

Просмотреть файл

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace SkiaSharpSample.WPF.Host
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
}
}

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,10 @@
<Window x:Class="SkiaSharpSample.WPF.Host.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:SkiaSharpSample.WPF.Host"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<ContentControl x:Name="root"/>
</Window>

Просмотреть файл

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace SkiaSharpSample.WPF.Host
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
SkiaSharp.Views.UWP.SKSwapChainPanel.RaiseOnUnsupported = false;
root.Content = new global::Uno.UI.Skia.Platform.WpfHost(Dispatcher, () => new SkiaSharpSample.App());
}
}
}

Просмотреть файл

@ -0,0 +1,29 @@
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
//In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]

Просмотреть файл

@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace SkiaSharpSample.WPF.Host.Properties
{
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SkiaSharpSample.WPF.Host.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

Просмотреть файл

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

Просмотреть файл

@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace SkiaSharpSample.WPF.Host.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}

Просмотреть файл

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

Просмотреть файл

@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType Condition="'$(Configuration)'=='Release'">WinExe</OutputType>
<OutputType Condition="'$(Configuration)'=='Debug'">Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWPF>true</UseWPF>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Uno.UI.Skia.Wpf" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
</ItemGroup>
<ItemGroup>
<Content Include="Assets\Fonts\uno-fluentui-assets.ttf" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SkiaSharpSample.WPF\SkiaSharpSample.WPF.csproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<ItemGroup>
<!-- Note that for WebAssembly version 1.1.1 of the console logger required -->
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />
<PackageReference Include="Uno.UI.Skia.Wpf" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
</ItemGroup>
<ItemGroup>
<UpToDateCheckInput Include="..\SkiaSharpSample.Shared\**\*.xaml" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\binding\SkiaSharp\SkiaSharp.csproj" />
<ProjectReference Include="..\..\..\..\binding\HarfBuzzSharp\HarfBuzzSharp.csproj" />
<ProjectReference Include="..\..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj" />
<ProjectReference Include="..\..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj" />
</ItemGroup>
<Import Project="..\SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems" Label="Shared" />
<ItemGroup>
<Content Include="..\..\..\..\output\native\windows\x64\*.dll" Visible="False" />
<Content Include="..\..\Shared\Media\content-font.ttf">
<Link>Assets\Media\content-font.ttf</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<Import Project="..\..\..\..\output\SkiaSharp.Views.Uno\nuget\build\netstandard2.0\SkiaSharp.Views.Uno.targets" Condition="Exists('..\..\..\..\output\SkiaSharp.Views.Uno\nuget\build\netstandard2.0\SkiaSharp.Views.Uno.targets')" />
</Project>

Просмотреть файл

@ -5,5 +5,5 @@
<!-- This is required by Json.NET and any expression.Compile caller -->
<type fullname="System.Linq.Expressions*" />
</assembly>
<assembly fullname="HarfBuzzSharp" />
<!--<assembly fullname="HarfBuzzSharp" />-->
</linker>

Просмотреть файл

@ -23,8 +23,8 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />
<PackageReference Include="Uno.UI.WebAssembly" Version="3.7.4" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.4" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UI.WebAssembly" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.Wasm.Bootstrap" Version="2.1.0" />
<PackageReference Include="Uno.Wasm.Bootstrap.DevServer" Version="2.1.0" />
</ItemGroup>

Просмотреть файл

@ -23,12 +23,30 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp", "..\..\..\binding\SkiaSharp\SkiaSharp.csproj", "{409AF271-D8B7-4F79-B293-02F562A51955}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp", "..\..\..\binding\HarfBuzzSharp\HarfBuzzSharp.csproj", "{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.Android", "..\..\..\binding\HarfBuzzSharp.Android\HarfBuzzSharp.Android.csproj", "{CDB278FF-2188-4B0B-9EE9-9D310363E733}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.UWP", "..\..\..\binding\HarfBuzzSharp.UWP\HarfBuzzSharp.UWP.csproj", "{7B18043D-8B3C-4A90-A0E6-A586785F0742}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.HarfBuzz", "..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj", "{99DC411D-8FC3-4D60-B217-47EAAE54E21F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Gtk", "SkiaSharpSample.Gtk\SkiaSharpSample.Gtk.csproj", "{76800B1B-AC93-4451-AA67-9B5F867DAD35}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.WPF", "SkiaSharpSample.WPF\SkiaSharpSample.WPF.csproj", "{D4E1BD04-F37B-432E-89D7-98595FBA6D11}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.WPF.Host", "SkiaSharpSample.WPF.Host\SkiaSharpSample.WPF.Host.csproj", "{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{76800b1b-ac93-4451-aa67-9b5f867dad35}*SharedItemsImports = 5
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{8b8db39e-c0ff-4edc-83a6-0b6a4ab763ee}*SharedItemsImports = 4
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{9726301d-8a93-4a06-88df-92ba01cf80ad}*SharedItemsImports = 5
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{ae39aa1d-32c8-482b-9395-ad5493c98f7e}*SharedItemsImports = 4
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{d4e1bd04-f37b-432e-89d7-98595fba6d11}*SharedItemsImports = 5
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -243,6 +261,166 @@ Global
{409AF271-D8B7-4F79-B293-02F562A51955}.Release|x64.Build.0 = Release|Any CPU
{409AF271-D8B7-4F79-B293-02F562A51955}.Release|x86.ActiveCfg = Release|Any CPU
{409AF271-D8B7-4F79-B293-02F562A51955}.Release|x86.Build.0 = Release|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|ARM.ActiveCfg = Debug|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|ARM.Build.0 = Debug|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|ARM64.Build.0 = Debug|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|x64.ActiveCfg = Debug|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|x64.Build.0 = Debug|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|x86.ActiveCfg = Debug|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Debug|x86.Build.0 = Debug|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|Any CPU.Build.0 = Release|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|ARM.ActiveCfg = Release|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|ARM.Build.0 = Release|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|ARM64.ActiveCfg = Release|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|ARM64.Build.0 = Release|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|x64.ActiveCfg = Release|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|x64.Build.0 = Release|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|x86.ActiveCfg = Release|Any CPU
{B4F8D378-9DD2-4D4A-AEFC-04705DF2F240}.Release|x86.Build.0 = Release|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|ARM.ActiveCfg = Debug|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|ARM.Build.0 = Debug|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|ARM64.Build.0 = Debug|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|x64.ActiveCfg = Debug|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|x64.Build.0 = Debug|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|x86.ActiveCfg = Debug|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Debug|x86.Build.0 = Debug|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|Any CPU.Build.0 = Release|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|ARM.ActiveCfg = Release|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|ARM.Build.0 = Release|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|ARM64.ActiveCfg = Release|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|ARM64.Build.0 = Release|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|x64.ActiveCfg = Release|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|x64.Build.0 = Release|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|x86.ActiveCfg = Release|Any CPU
{CDB278FF-2188-4B0B-9EE9-9D310363E733}.Release|x86.Build.0 = Release|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|ARM.ActiveCfg = Debug|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|ARM.Build.0 = Debug|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|ARM64.Build.0 = Debug|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|x64.ActiveCfg = Debug|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|x64.Build.0 = Debug|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|x86.ActiveCfg = Debug|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Debug|x86.Build.0 = Debug|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|Any CPU.Build.0 = Release|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|ARM.ActiveCfg = Release|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|ARM.Build.0 = Release|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|ARM64.ActiveCfg = Release|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|ARM64.Build.0 = Release|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|x64.ActiveCfg = Release|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|x64.Build.0 = Release|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|x86.ActiveCfg = Release|Any CPU
{7B18043D-8B3C-4A90-A0E6-A586785F0742}.Release|x86.Build.0 = Release|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|ARM.ActiveCfg = Debug|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|ARM.Build.0 = Debug|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|ARM64.Build.0 = Debug|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|x64.ActiveCfg = Debug|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|x64.Build.0 = Debug|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|x86.ActiveCfg = Debug|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Debug|x86.Build.0 = Debug|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|Any CPU.Build.0 = Release|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|ARM.ActiveCfg = Release|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|ARM.Build.0 = Release|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|ARM64.ActiveCfg = Release|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|ARM64.Build.0 = Release|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|x64.ActiveCfg = Release|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|x64.Build.0 = Release|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|x86.ActiveCfg = Release|Any CPU
{99DC411D-8FC3-4D60-B217-47EAAE54E21F}.Release|x86.Build.0 = Release|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|ARM.ActiveCfg = Debug|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|ARM.Build.0 = Debug|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|ARM64.Build.0 = Debug|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|x64.ActiveCfg = Debug|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|x64.Build.0 = Debug|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|x86.ActiveCfg = Debug|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Debug|x86.Build.0 = Debug|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|Any CPU.Build.0 = Release|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|ARM.ActiveCfg = Release|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|ARM.Build.0 = Release|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|ARM64.ActiveCfg = Release|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|ARM64.Build.0 = Release|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|x64.ActiveCfg = Release|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|x64.Build.0 = Release|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|x86.ActiveCfg = Release|Any CPU
{EA6C6B98-E18D-47EF-A9D5-80462FADCBCA}.Release|x86.Build.0 = Release|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|Any CPU.Build.0 = Debug|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|ARM.ActiveCfg = Debug|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|ARM.Build.0 = Debug|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|ARM64.Build.0 = Debug|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|x64.ActiveCfg = Debug|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|x64.Build.0 = Debug|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|x86.ActiveCfg = Debug|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Debug|x86.Build.0 = Debug|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|Any CPU.ActiveCfg = Release|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|Any CPU.Build.0 = Release|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|ARM.ActiveCfg = Release|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|ARM.Build.0 = Release|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|ARM64.ActiveCfg = Release|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|ARM64.Build.0 = Release|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|x64.ActiveCfg = Release|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|x64.Build.0 = Release|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|x86.ActiveCfg = Release|Any CPU
{76800B1B-AC93-4451-AA67-9B5F867DAD35}.Release|x86.Build.0 = Release|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|ARM.ActiveCfg = Debug|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|ARM.Build.0 = Debug|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|ARM64.Build.0 = Debug|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|x64.ActiveCfg = Debug|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|x64.Build.0 = Debug|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|x86.ActiveCfg = Debug|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Debug|x86.Build.0 = Debug|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|Any CPU.Build.0 = Release|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|ARM.ActiveCfg = Release|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|ARM.Build.0 = Release|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|ARM64.ActiveCfg = Release|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|ARM64.Build.0 = Release|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|x64.ActiveCfg = Release|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|x64.Build.0 = Release|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|x86.ActiveCfg = Release|Any CPU
{D4E1BD04-F37B-432E-89D7-98595FBA6D11}.Release|x86.Build.0 = Release|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|Any CPU.Build.0 = Debug|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|ARM.ActiveCfg = Debug|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|ARM.Build.0 = Debug|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|ARM64.Build.0 = Debug|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|x64.ActiveCfg = Debug|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|x64.Build.0 = Debug|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|x86.ActiveCfg = Debug|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Debug|x86.Build.0 = Debug|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|Any CPU.ActiveCfg = Release|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|Any CPU.Build.0 = Release|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|ARM.ActiveCfg = Release|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|ARM.Build.0 = Release|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|ARM64.ActiveCfg = Release|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|ARM64.Build.0 = Release|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|x64.ActiveCfg = Release|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|x64.Build.0 = Release|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|x86.ActiveCfg = Release|Any CPU
{524B2E63-2C4A-4723-B5C0-1E9DA2768A85}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Просмотреть файл

@ -101,8 +101,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Essentials" Version="1.5.1" />
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.4" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />
</ItemGroup>

Просмотреть файл

@ -42,8 +42,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xamarin.Essentials" Version="1.5.1" />
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.4" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
<PackageReference Include="Uno.UI.RemoteControl" Version="3.7.6" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.1" />
</ItemGroup>

Просмотреть файл

@ -49,14 +49,24 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HarfBuzzSharp.UWP", "..\..\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.HarfBuzz", "..\..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.csproj", "{731BCCC9-4E61-4410-AAF2-897D7E1E88AD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.Gtk", "SkiaSharpSample.Gtk\SkiaSharpSample.Gtk.csproj", "{FF61F844-F706-4503-8074-DCD0BFA57125}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.WPF", "SkiaSharpSample.WPF\SkiaSharpSample.WPF.csproj", "{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharpSample.WPF.Host", "SkiaSharpSample.WPF.Host\SkiaSharpSample.WPF.Host.csproj", "{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "..\..\..\source\SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{F5700942-5F78-4D24-828E-07C46A0F2C8A}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{2a19c71c-d1ab-4c70-b821-6a7c7c4abe66}*SharedItemsImports = 4
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{3ca0ee89-76c2-4a8e-96d6-9c5f2b05905e}*SharedItemsImports = 5
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{6279c845-92f8-4333-ab99-3d213163593c}*SharedItemsImports = 13
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{8b8db39e-c0ff-4edc-83a6-0b6a4ab763ee}*SharedItemsImports = 4
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{9726301d-8a93-4a06-88df-92ba01cf80ad}*SharedItemsImports = 5
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{ae39aa1d-32c8-482b-9395-ad5493c98f7e}*SharedItemsImports = 4
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{b3a30dc3-0e2d-4f46-97c5-fdc6ab8062e6}*SharedItemsImports = 4
SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{ff61f844-f706-4503-8074-dcd0bfa57125}*SharedItemsImports = 5
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -728,6 +738,118 @@ Global
{731BCCC9-4E61-4410-AAF2-897D7E1E88AD}.Release|x64.Build.0 = Release|Any CPU
{731BCCC9-4E61-4410-AAF2-897D7E1E88AD}.Release|x86.ActiveCfg = Release|Any CPU
{731BCCC9-4E61-4410-AAF2-897D7E1E88AD}.Release|x86.Build.0 = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|ARM.ActiveCfg = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|ARM.Build.0 = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|ARM64.Build.0 = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|iPhone.Build.0 = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|x64.ActiveCfg = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|x64.Build.0 = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|x86.ActiveCfg = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Debug|x86.Build.0 = Debug|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|Any CPU.Build.0 = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|ARM.ActiveCfg = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|ARM.Build.0 = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|ARM64.ActiveCfg = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|ARM64.Build.0 = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|iPhone.ActiveCfg = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|iPhone.Build.0 = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|x64.ActiveCfg = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|x64.Build.0 = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|x86.ActiveCfg = Release|Any CPU
{FF61F844-F706-4503-8074-DCD0BFA57125}.Release|x86.Build.0 = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|ARM.ActiveCfg = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|ARM.Build.0 = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|ARM64.Build.0 = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|iPhone.Build.0 = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|x64.ActiveCfg = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|x64.Build.0 = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|x86.ActiveCfg = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Debug|x86.Build.0 = Debug|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|Any CPU.Build.0 = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|ARM.ActiveCfg = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|ARM.Build.0 = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|ARM64.ActiveCfg = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|ARM64.Build.0 = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|iPhone.ActiveCfg = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|iPhone.Build.0 = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|x64.ActiveCfg = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|x64.Build.0 = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|x86.ActiveCfg = Release|Any CPU
{3CA0EE89-76C2-4A8E-96D6-9C5F2B05905E}.Release|x86.Build.0 = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|ARM.ActiveCfg = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|ARM.Build.0 = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|ARM64.Build.0 = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|iPhone.Build.0 = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|x64.ActiveCfg = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|x64.Build.0 = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|x86.ActiveCfg = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Debug|x86.Build.0 = Debug|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|Any CPU.Build.0 = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|ARM.ActiveCfg = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|ARM.Build.0 = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|ARM64.ActiveCfg = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|ARM64.Build.0 = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|iPhone.ActiveCfg = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|iPhone.Build.0 = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|x64.ActiveCfg = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|x64.Build.0 = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|x86.ActiveCfg = Release|Any CPU
{A4D1E47E-78B8-4B61-86B3-4F36D5AF62A2}.Release|x86.Build.0 = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|ARM.ActiveCfg = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|ARM.Build.0 = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|ARM64.Build.0 = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|iPhone.Build.0 = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|x64.ActiveCfg = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|x64.Build.0 = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|x86.ActiveCfg = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Debug|x86.Build.0 = Debug|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|Any CPU.Build.0 = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|ARM.ActiveCfg = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|ARM.Build.0 = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|ARM64.ActiveCfg = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|ARM64.Build.0 = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|iPhone.ActiveCfg = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|iPhone.Build.0 = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|x64.ActiveCfg = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|x64.Build.0 = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|x86.ActiveCfg = Release|Any CPU
{F5700942-5F78-4D24-828E-07C46A0F2C8A}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Просмотреть файл

@ -111,6 +111,8 @@ jobs:
version: $(DOTNET_VERSION)
performMultiLevelLookup: true
displayName: Install the correct version of .NET Core
- pwsh: dotnet --info
displayName: Display all the .NET information
# install the mac tools
- ${{ if endsWith(parameters.name, '_macos') }}:

Просмотреть файл

@ -1,5 +1,6 @@
Param(
[string] $Version = "10.0.0"
[string] $Version = "11.1.0",
[string] $InstallDestination = "C:\Program Files\LLVM"
)
$ErrorActionPreference = 'Stop'
@ -18,9 +19,12 @@ New-Item -ItemType Directory -Force -Path "$llvmTemp" | Out-Null
# install
Write-Host "Installing LLVM..."
& $install /S
& 7z x $install -y -o"$InstallDestination"
# echo version
& "$InstallDestination\bin\clang.exe" --version
# make sure that LLVM is in LLVM_HOME
Write-Host "##vso[task.setvariable variable=LLVM_HOME;]C:\Program Files\LLVM";
Write-Host "##vso[task.setvariable variable=LLVM_HOME;]$InstallDestination";
exit $LASTEXITCODE

Просмотреть файл

@ -4,7 +4,7 @@ using Windows.UI.Xaml;
namespace SkiaSharp.Views.UWP
{
public partial class SKXamlCanvas : FrameworkElement
public partial class SKXamlCanvas
{
private SurfaceFactory surfaceFactory;

Просмотреть файл

@ -8,7 +8,7 @@
<PackagingPlatform>monoandroid1.0</PackagingPlatform>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\binding\SkiaSharp.Android\SkiaSharp.Android.csproj" />

Просмотреть файл

@ -5,7 +5,7 @@ using Windows.UI.Xaml;
namespace SkiaSharp.Views.UWP
{
public partial class SKXamlCanvas : FrameworkElement
public partial class SKXamlCanvas
{
private SKCGSurfaceFactory drawable;

Просмотреть файл

@ -8,7 +8,7 @@
<DefineConstants>$(DefineConstants);__MACOS__</DefineConstants>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\binding\SkiaSharp.OSX\SkiaSharp.OSX.csproj" />

Просмотреть файл

@ -4,7 +4,7 @@ using Windows.UI.Xaml;
namespace SkiaSharp.Views.UWP
{
public partial class SKXamlCanvas : FrameworkElement
public partial class SKXamlCanvas
{
public SKXamlCanvas()
{

Просмотреть файл

@ -7,7 +7,7 @@
<PackagingGroup>SkiaSharp.Views.Uno</PackagingGroup>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\binding\SkiaSharp\SkiaSharp.csproj" />

Просмотреть файл

@ -0,0 +1,40 @@
using System;
using System.Threading;
using Uno.Foundation;
using Windows.UI.Xaml;
namespace SkiaSharp.Views.UWP
{
public partial class SKSwapChainPanel
{
public SKSwapChainPanel()
{
if (RaiseOnUnsupported)
{
throw new NotSupportedException($"SKSwapChainPanel is not supported for Skia based platforms");
}
}
private SKSize GetCanvasSize()
{
if (RaiseOnUnsupported)
{
throw new NotSupportedException($"SKSwapChainPanel is not supported for Skia based platforms");
}
return new SKSize();
}
private GRContext GetGRContext()
{
if (RaiseOnUnsupported)
{
throw new NotSupportedException($"SKSwapChainPanel is not supported for Skia based platforms");
}
return null;
}
private void DoInvalidate() { }
}
}

Просмотреть файл

@ -0,0 +1,137 @@
using System;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
namespace SkiaSharp.Views.UWP
{
public partial class SKXamlCanvas : Canvas
{
private byte[] pixels;
private GCHandle pixelsHandle;
private int pixelWidth;
private int pixelHeight;
private WriteableBitmap bitmap;
public SKXamlCanvas()
{
Initialize();
}
partial void DoUnloaded() =>
FreeBitmap();
private SKSize GetCanvasSize() =>
new SKSize(pixelWidth, pixelHeight);
private void DoInvalidate()
{
if (designMode)
return;
if (!isVisible)
return;
if (ActualWidth <= 0 || ActualHeight <= 0)
return;
var info = CreateBitmap();
using (var surface = SKSurface.Create(info, pixelsHandle.AddrOfPinnedObject(), info.RowBytes))
{
OnPaintSurface(new SKPaintSurfaceEventArgs(surface, info));
}
// This implementation is not fast enough, and providing the original pixel buffer
// is needed, yet the internal `IBufferByteAccess` interface is not yet available in Uno.
// Once it is, we can replace this implementation and provide the pinned array directly
// to skia.
using (var data = bitmap.PixelBuffer.AsStream())
{
data.Write(pixels, 0, pixels.Length);
data.Flush();
}
bitmap.Invalidate();
}
private SKSizeI CreateSize()
{
var w = ActualWidth;
var h = ActualHeight;
if (!IsPositive(w) || !IsPositive(h))
return SKSizeI.Empty;
if (IgnorePixelScaling)
return new SKSizeI((int)w, (int)h);
var dpi = Dpi;
return new SKSizeI((int)(w * dpi), (int)(h * dpi));
static bool IsPositive(double value)
{
return !double.IsNaN(value) && !double.IsInfinity(value) && value > 0;
}
}
private SKImageInfo CreateBitmap()
{
var size = CreateSize();
var info = new SKImageInfo(size.Width, size.Height, SKImageInfo.PlatformColorType, SKAlphaType.Premul);
if (bitmap?.PixelWidth != info.Width || bitmap?.PixelHeight != info.Height)
FreeBitmap();
if (bitmap == null && info.Width > 0 && info.Height > 0)
{
bitmap = new WriteableBitmap(info.Width, info.Height);
var brush = new ImageBrush
{
ImageSource = bitmap,
AlignmentX = AlignmentX.Left,
AlignmentY = AlignmentY.Top,
Stretch = Stretch.None
};
if (!IgnorePixelScaling)
{
var scale = 1.0 / Dpi;
brush.Transform = new ScaleTransform
{
ScaleX = scale,
ScaleY = scale
};
}
Background = brush;
}
if (pixels == null || pixelWidth != info.Width || pixelHeight != info.Height)
{
FreeBitmap();
pixels = new byte[info.BytesSize];
pixelsHandle = GCHandle.Alloc(pixels, GCHandleType.Pinned);
pixelWidth = info.Width;
pixelHeight = info.Height;
}
return info;
}
private void FreeBitmap()
{
if (pixels != null)
{
pixelsHandle.Free();
pixels = null;
bitmap = null;
}
}
}
}

Просмотреть файл

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>SkiaSharp.Views.UWP</RootNamespace>
<AssemblyName>SkiaSharp.Views.UWP</AssemblyName>
<SignAssembly>false</SignAssembly>
<PackagingGroup>SkiaSharp.Views.Uno</PackagingGroup>
<DefineConstants>$(DefineConstants);HAS_UNO_SKIA</DefineConstants>
<PackagingLocation>uno-runtime\skia</PackagingLocation>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Uno.UI" Version="3.7.6" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\binding\SkiaSharp\SkiaSharp.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\SkiaSharp.Views\SkiaSharp.Views.Shared\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
<Compile Include="..\..\SkiaSharp.Views\SkiaSharp.Views.UWP\UWPExtensions.cs" />
<Compile Include="..\SkiaSharp.Views.Uno\**\*.cs" Link="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -7,7 +7,7 @@ using Windows.UI.Xaml;
namespace SkiaSharp.Views.UWP
{
[HtmlElement("canvas")]
public partial class SKXamlCanvas : FrameworkElement
public partial class SKXamlCanvas
{
private byte[] pixels;
private GCHandle pixelsHandle;

Просмотреть файл

@ -9,8 +9,8 @@
<PackagingLocation>uno-runtime\webassembly</PackagingLocation>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI.Runtime.WebAssembly" Version="3.7.4" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
<PackageReference Include="Uno.UI.Runtime.WebAssembly" Version="3.7.6" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\binding\SkiaSharp\SkiaSharp.csproj" />

Просмотреть файл

@ -5,7 +5,7 @@ using Windows.UI.Xaml;
namespace SkiaSharp.Views.UWP
{
public partial class SKXamlCanvas : FrameworkElement
public partial class SKXamlCanvas
{
private SKCGSurfaceFactory drawable;

Просмотреть файл

@ -7,7 +7,7 @@
<PackagingGroup>SkiaSharp.Views.Uno</PackagingGroup>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Uno.UI" Version="3.7.4" />
<PackageReference Include="Uno.UI" Version="3.7.6" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\binding\SkiaSharp.iOS\SkiaSharp.iOS.csproj" />

Просмотреть файл

@ -10,6 +10,8 @@ namespace SkiaSharp.Views.UWP
{
public partial class SKSwapChainPanel : FrameworkElement
{
public static bool RaiseOnUnsupported { get; set; } = true;
private static readonly DependencyProperty ProxyVisibilityProperty =
DependencyProperty.Register(
"ProxyVisibility",

Просмотреть файл

@ -3,11 +3,12 @@ using Windows.ApplicationModel;
using Windows.Graphics.Display;
using Windows.UI.Core;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Data;
namespace SkiaSharp.Views.UWP
{
public partial class SKXamlCanvas : FrameworkElement
public partial class SKXamlCanvas : Canvas
{
private static readonly DependencyProperty ProxyVisibilityProperty =
DependencyProperty.Register(
@ -111,12 +112,12 @@ namespace SkiaSharp.Views.UWP
display.DpiChanged -= OnDpiChanged;
}
public void Invalidate()
public new async void Invalidate()
{
if (Dispatcher.HasThreadAccess)
DoInvalidate();
else
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, DoInvalidate);
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, DoInvalidate);
}
partial void DoLoaded();

Просмотреть файл

@ -41,12 +41,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Vulkan", "SkiaSha
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Vulkan.SharpVk", "SkiaSharp.Vulkan\SkiaSharp.Vulkan.SharpVk\SkiaSharp.Vulkan.SharpVk.csproj", "{4606F63B-F0B1-418E-8B45-844361E17EB1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.Uno", "SkiaSharp.Views.Uno", "{00C9099A-BE4F-40D0-9401-295618368370}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Wasm\SkiaSharp.Views.Uno.Wasm.csproj", "{08599A28-FADE-43B5-95A0-BDCB22B97D3A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Reference", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Reference\SkiaSharp.Views.Uno.Reference.csproj", "{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{A84C9753-A343-4A21-8337-147E5B93B055}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.Uno", "SkiaSharp.Views.Uno", "{E13F3D9A-BC92-4F6E-8D62-1FB24CE189DA}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.DotNet.Interactive", "SkiaSharp.DotNet.Interactive", "{E0EDA875-C25F-4727-BB98-6EF7BBAFEB4B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.DotNet.Interactive", "SkiaSharp.DotNet.Interactive\SkiaSharp.DotNet.Interactive.csproj", "{03A0F2E5-345D-4FA2-B1F8-45D2D7EEA3EB}"
@ -117,6 +119,10 @@ Global
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.Build.0 = Release|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.Build.0 = Release|Any CPU
{03A0F2E5-345D-4FA2-B1F8-45D2D7EEA3EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{03A0F2E5-345D-4FA2-B1F8-45D2D7EEA3EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{03A0F2E5-345D-4FA2-B1F8-45D2D7EEA3EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -139,8 +145,9 @@ Global
{6FB08346-1A02-4793-B5E1-4F739C6342D5} = {4F5EBFFB-DD81-43B9-8531-156ED3639C91}
{857CB6E9-BA27-4E94-A2D7-68BFF1EE193B} = {B3C4E4EC-68C7-4AFB-A6D4-1B2B0EB8C421}
{4606F63B-F0B1-418E-8B45-844361E17EB1} = {66A0800A-CA70-4AC2-88B7-8E7C4CA7C914}
{08599A28-FADE-43B5-95A0-BDCB22B97D3A} = {00C9099A-BE4F-40D0-9401-295618368370}
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB} = {00C9099A-BE4F-40D0-9401-295618368370}
{08599A28-FADE-43B5-95A0-BDCB22B97D3A} = {E13F3D9A-BC92-4F6E-8D62-1FB24CE189DA}
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB} = {E13F3D9A-BC92-4F6E-8D62-1FB24CE189DA}
{A84C9753-A343-4A21-8337-147E5B93B055} = {E13F3D9A-BC92-4F6E-8D62-1FB24CE189DA}
{03A0F2E5-345D-4FA2-B1F8-45D2D7EEA3EB} = {E0EDA875-C25F-4727-BB98-6EF7BBAFEB4B}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution

Просмотреть файл

@ -85,6 +85,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Reference", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Reference\SkiaSharp.Views.Uno.Reference.csproj", "{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{A84C9753-A343-4A21-8337-147E5B93B055}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.DotNet.Interactive", "SkiaSharp.DotNet.Interactive\SkiaSharp.DotNet.Interactive.csproj", "{A23C2451-BBCE-4309-B80F-CEE482A140C7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.DotNet.Interactive", "SkiaSharp.DotNet.Interactive", "{A54F6AE5-2921-4C68-846A-25D38F1C2E7E}"
@ -231,6 +233,10 @@ Global
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.Build.0 = Release|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.Build.0 = Release|Any CPU
{A23C2451-BBCE-4309-B80F-CEE482A140C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A23C2451-BBCE-4309-B80F-CEE482A140C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A23C2451-BBCE-4309-B80F-CEE482A140C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -274,6 +280,7 @@ Global
{E0FF9BFF-2253-4486-A8E2-94312D09D056} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{242213FA-1F0E-40BB-A9B2-6FEE82B5D216} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{A84C9753-A343-4A21-8337-147E5B93B055} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{A23C2451-BBCE-4309-B80F-CEE482A140C7} = {A54F6AE5-2921-4C68-846A-25D38F1C2E7E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution

Просмотреть файл

@ -69,6 +69,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Reference", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Reference\SkiaSharp.Views.Uno.Reference.csproj", "{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{A84C9753-A343-4A21-8337-147E5B93B055}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.WinUI", "SkiaSharp.Views.WinUI\SkiaSharp.Views.WinUI\SkiaSharp.Views.WinUI.csproj", "{F50AE765-D9B9-4025-88A8-E8B080D5D624}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.WinUI", "SkiaSharp.Views.WinUI", "{32AE56A0-F3E1-4721-9BED-B1F609DEA8E8}"
@ -187,6 +189,10 @@ Global
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.Build.0 = Release|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.Build.0 = Release|Any CPU
{F50AE765-D9B9-4025-88A8-E8B080D5D624}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F50AE765-D9B9-4025-88A8-E8B080D5D624}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F50AE765-D9B9-4025-88A8-E8B080D5D624}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -226,6 +232,7 @@ Global
{D35B20BC-838A-4C1E-B427-4269F6387CAB} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{F675A841-ECDB-4571-8AA3-7D4642FD57DB} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{A84C9753-A343-4A21-8337-147E5B93B055} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{F50AE765-D9B9-4025-88A8-E8B080D5D624} = {32AE56A0-F3E1-4721-9BED-B1F609DEA8E8}
{73185ECB-5A38-447C-95CF-D32D6784B97D} = {B7F572BF-AD3F-4AC8-A654-3ED241E3ECA4}
EndGlobalSection

Просмотреть файл

@ -105,6 +105,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Wasm",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Reference", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Reference\SkiaSharp.Views.Uno.Reference.csproj", "{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.Uno.Skia", "SkiaSharp.Views.Uno\SkiaSharp.Views.Uno.Skia\SkiaSharp.Views.Uno.Skia.csproj", "{A84C9753-A343-4A21-8337-147E5B93B055}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.WinUI", "SkiaSharp.Views.WinUI", "{6430EC5F-EDA1-4202-AB7B-22ED0496E016}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SkiaSharp.Views.WinUI", "SkiaSharp.Views.WinUI\SkiaSharp.Views.WinUI\SkiaSharp.Views.WinUI.csproj", "{02CA4107-1FC6-4676-B284-9981694A450E}"
@ -295,6 +297,10 @@ Global
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB}.Release|Any CPU.Build.0 = Release|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A84C9753-A343-4A21-8337-147E5B93B055}.Release|Any CPU.Build.0 = Release|Any CPU
{02CA4107-1FC6-4676-B284-9981694A450E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{02CA4107-1FC6-4676-B284-9981694A450E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{02CA4107-1FC6-4676-B284-9981694A450E}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -352,6 +358,7 @@ Global
{E0FF9BFF-2253-4486-A8E2-94312D09D056} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{047C460D-7470-418C-AF2C-30620A1AF61C} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{D5C7D157-609E-4D64-8E42-C1DB0FAA86EB} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{A84C9753-A343-4A21-8337-147E5B93B055} = {E53351EA-FE40-47D2-B388-4A75DA6CCD71}
{02CA4107-1FC6-4676-B284-9981694A450E} = {6430EC5F-EDA1-4202-AB7B-22ED0496E016}
{D213D614-2F31-450C-B6FA-294754C4DCD4} = {94767AFC-EB2B-41ED-BFEF-93EF33EEEBCF}
EndGlobalSection