Merge pull request #438 from mono/dev/gtk

Adding GTK# Support
This commit is contained in:
Matthew Leibowitz 2018-01-30 17:56:21 +02:00 коммит произвёл GitHub
Родитель cdabd53d9e 47a20946fb
Коммит 39aa0f7ac2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
22 изменённых файлов: 608 добавлений и 18 удалений

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

@ -86,7 +86,7 @@ Task ("libs")
.Does (() =>
{
// create all the directories
EnsureDirectoryExists ("./output/windows/");
EnsureDirectoryExists ("./output/wpf/");
EnsureDirectoryExists ("./output/uwp/");
EnsureDirectoryExists ("./output/android/");
EnsureDirectoryExists ("./output/ios/");
@ -99,6 +99,7 @@ Task ("libs")
EnsureDirectoryExists ("./output/linux/");
EnsureDirectoryExists ("./output/interactive/");
EnsureDirectoryExists ("./output/desktop/");
EnsureDirectoryExists ("./output/gtk/");
// .NET Standard / .NET Core
RunNuGetRestore ("source/SkiaSharpSource.NetStandard.sln");
@ -125,10 +126,8 @@ Task ("libs")
CopyFileToDirectory ("./binding/HarfBuzzSharp.UWP/bin/Release/HarfBuzzSharp.pri", "./output/uwp/");
// SkiaSharp.Views
CopyFileToDirectory ("./source/SkiaSharp.Views/SkiaSharp.Views.UWP/bin/Release/SkiaSharp.Views.UWP.dll", "./output/uwp/");
CopyFileToDirectory ("./source/SkiaSharp.Views/SkiaSharp.Views.Desktop/bin/Release/SkiaSharp.Views.Desktop.dll", "./output/windows/");
CopyFileToDirectory ("./source/SkiaSharp.Views/SkiaSharp.Views.WPF/bin/Release/SkiaSharp.Views.WPF.dll", "./output/windows/");
CopyFileToDirectory ("./source/SkiaSharp.Views/SkiaSharp.Views.WPF/bin/Release/SkiaSharp.Views.WPF.dll", "./output/wpf/");
// SkiaSharp.Views.Forms
CopyFileToDirectory ("./source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms/bin/Release/SkiaSharp.Views.Forms.dll", "./output/portable/");
CopyFileToDirectory ("./source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.UWP/bin/Release/SkiaSharp.Views.Forms.dll", "./output/uwp/");
} else if (IsRunningOnMac ()) {
// fix for old MSBuild
@ -152,20 +151,26 @@ Task ("libs")
CopyFileToDirectory ("./source/SkiaSharp.Views/SkiaSharp.Views.Mac/bin/Release/SkiaSharp.Views.Mac.dll", "./output/osx/");
CopyFileToDirectory ("./source/SkiaSharp.Views/SkiaSharp.Views.tvOS/bin/Release/SkiaSharp.Views.tvOS.dll", "./output/tvos/");
CopyFileToDirectory ("./source/SkiaSharp.Views/SkiaSharp.Views.watchOS/bin/Release/SkiaSharp.Views.watchOS.dll", "./output/watchos/");
CopyFileToDirectory ("./source/SkiaSharp.Views/SkiaSharp.Views.Gtk/bin/Release/SkiaSharp.Views.Gtk.dll", "./output/gtk/");
// SkiaSharp.Views.Forms
CopyFileToDirectory ("./source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms/bin/Release/SkiaSharp.Views.Forms.dll", "./output/portable/");
CopyFileToDirectory ("./source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Android/bin/Release/SkiaSharp.Views.Forms.dll", "./output/android/");
CopyFileToDirectory ("./source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.iOS/bin/Release/SkiaSharp.Views.Forms.dll", "./output/ios/");
CopyFileToDirectory ("./source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Mac/bin/Release/SkiaSharp.Views.Forms.dll", "./output/osx/");
} else if (IsRunningOnLinux ()) {
RunNuGetRestore ("./source/SkiaSharpSource.Linux.sln");
RunMSBuild ("./source/SkiaSharpSource.Linux.sln");
// SkiaSharp.Views
CopyFileToDirectory ("./source/SkiaSharp.Views/SkiaSharp.Views.Gtk/bin/Release/SkiaSharp.Views.Gtk.dll", "./output/gtk/");
}
// SkiaSharp
CopyFileToDirectory ("./binding/SkiaSharp.Desktop/bin/Release/SkiaSharp.dll", "./output/desktop/");
CopyFileToDirectory ("./binding/SkiaSharp.Desktop/bin/Release/nuget/build/net45/SkiaSharp.dll.config", "./output/desktop/");
CopyFileToDirectory ("./binding/SkiaSharp.Desktop/bin/Release/nuget/build/net45/SkiaSharp.Desktop.targets", "./output/desktop/");
CopyFileToDirectory ("./binding/SkiaSharp.Portable/bin/Release/SkiaSharp.dll", "./output/portable/");
// SkiaSharp.Views
CopyFileToDirectory ("./source/SkiaSharp.Views/SkiaSharp.Views.Desktop/bin/Release/SkiaSharp.Views.Desktop.dll", "./output/desktop/");
// SkiaSharp.Views.Forms
CopyFileToDirectory ("./source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms/bin/Release/SkiaSharp.Views.Forms.dll", "./output/portable/");
// HarfBuzzSharp
CopyFileToDirectory ("./binding/HarfBuzzSharp.Desktop/bin/Release/HarfBuzzSharp.dll", "./output/desktop/");
CopyFileToDirectory ("./binding/HarfBuzzSharp.Desktop/bin/Release/nuget/build/net45/HarfBuzzSharp.dll.config", "./output/desktop/");
@ -259,18 +264,41 @@ Task ("samples")
.Does (() =>
{
ClearSkiaSharpNuGetCache ();
CleanDirectories ("./samples/*/*/packages/SkiaSharp.*");
CleanDirectories ("./samples/*/*/*/packages/SkiaSharp.*");
// zip the samples for the GitHub release notes
if (IS_ON_CI) {
Zip ("./samples", "./output/samples.zip");
}
if (IsRunningOnLinux ()) {
// BASIC samples
RunNuGetRestore ("./samples/Basic/NetCore/SkiaSharpSample.sln");
RunMSBuild ("./samples/Basic/NetCore/SkiaSharpSample.sln");
// GALLERY samples
if (IsRunningOnLinux ()) {
// BASIC samples
RunNuGetRestore ("./samples/Basic/Gtk/SkiaSharpSample.sln");
RunMSBuild ("./samples/Basic/Gtk/SkiaSharpSample.sln");
// GALLERY samples
}
if (IsRunningOnMac ()) {
// BASIC samples
RunNuGetRestore ("./samples/Basic/Android/SkiaSharpSample.sln");
RunMSBuild ("./samples/Basic/Android/SkiaSharpSample.sln");
RunNuGetRestore ("./samples/Basic/iOS/SkiaSharpSample.sln");
RunMSBuildWithPlatform ("./samples/Basic/iOS/SkiaSharpSample.sln", "iPhone");
RunNuGetRestore ("./samples/Basic/macOS/SkiaSharpSample.sln");
RunMSBuild ("./samples/Basic/macOS/SkiaSharpSample.sln");
RunNuGetRestore ("./samples/Basic/tvOS/SkiaSharpSample.sln");
RunMSBuildWithPlatform ("./samples/Basic/tvOS/SkiaSharpSample.sln", "iPhoneSimulator");
RunNuGetRestore ("./samples/Basic/Gtk/SkiaSharpSample.sln");
RunMSBuild ("./samples/Basic/Gtk/SkiaSharpSample.sln");
// GALLERY samples
RunNuGetRestore ("./samples/Gallery/MacSample/MacSample.sln");
RunMSBuildWithPlatform ("./samples/Gallery/MacSample/MacSample.sln", "x86");
RunNuGetRestore ("./samples/Gallery/FormsSample/FormsSample.Mac.sln");
@ -280,6 +308,9 @@ Task ("samples")
}
if (IsRunningOnWindows ()) {
// BASIC samples
// GALLERY samples
RunNuGetRestore ("./samples/Gallery/WPFSample/WPFSample.sln");
RunMSBuild ("./samples/Gallery/WPFSample/WPFSample.sln");
RunNuGetRestore ("./samples/Gallery/UWPSample/UWPSample.sln");
@ -396,8 +427,8 @@ Task ("update-docs")
// add windows-specific assemblies
if (IsRunningOnWindows ()) {
assemblies = assemblies.Union (new FilePath [] {
"./output/windows/SkiaSharp.Views.Desktop.dll",
"./output/windows/SkiaSharp.Views.WPF.dll",
"./output/desktop/SkiaSharp.Views.Desktop.dll",
"./output/wpf/SkiaSharp.Views.WPF.dll",
"./output/android/SkiaSharp.Views.Android.dll",
"./output/ios/SkiaSharp.Views.iOS.dll",
"./output/osx/SkiaSharp.Views.Mac.dll",
@ -409,6 +440,8 @@ Task ("update-docs")
// add mac-specific assemblies
if (IsRunningOnMac ()) {
assemblies = assemblies.Union (new FilePath [] {
"./output/desktop/SkiaSharp.Views.Desktop.dll",
"./output/gtk/SkiaSharp.Views.Gtk.dll",
"./output/android/SkiaSharp.Views.Android.dll",
"./output/ios/SkiaSharp.Views.iOS.dll",
"./output/osx/SkiaSharp.Views.Mac.dll",
@ -416,6 +449,13 @@ Task ("update-docs")
"./output/watchos/SkiaSharp.Views.watchOS.dll",
}).ToArray ();
}
// add linux-specific assemblies
if (IsRunningOnLinux ()) {
assemblies = assemblies.Union (new FilePath [] {
"./output/desktop/SkiaSharp.Views.Desktop.dll",
"./output/gtk/SkiaSharp.Views.Gtk.dll",
}).ToArray ();
}
// print out the assemblies
foreach (var r in refs) {
@ -493,6 +533,7 @@ Task ("nuget")
if (IsRunningOnLinux ()) {
PackageNuGet ("./nuget/SkiaSharp.Linux.nuspec", "./output/");
PackageNuGet ("./nuget/HarfBuzzSharp.Linux.nuspec", "./output/");
PackageNuGet ("./nuget/SkiaSharp.Views.Linux.nuspec", "./output/");
}
}
// HarfBuzz is a PCL

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

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<package>
<metadata>
<id>SkiaSharp.Views</id>
<title>SkiaSharp Views &amp; Layers (for Linux)</title>
<version>1.60.0</version>
<authors>Xamarin Inc.</authors>
<owners>Xamarin Inc.</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>SkiaSharp Views &amp; Layers are a set of platform-specific views and containers that can be used to draw on the screen.</description>
<copyright>Copyright (c) Xamarin Inc. 2016</copyright>
<licenseUrl>https://github.com/mono/SkiaSharp/blob/master/LICENSE.md</licenseUrl>
<projectUrl>https://github.com/mono/SkiaSharp</projectUrl>
<iconUrl>https://cdn.rawgit.com/mono/SkiaSharp/v1.53.0/images/skia_256x256.png</iconUrl>
<tags>ui,xamarin,graphics,ios,android,linux,windows,uwp,tvos,watchos,macos,cross-platform,skiasharp</tags>
<dependencies>
<dependency id="SkiaSharp" version="1.60.0" />
</dependencies>
</metadata>
<files>
<!-- Desktop -->
<file src="output/desktop/SkiaSharp.Views.Desktop.dll" target="lib/net45" />
<!-- GTK -->
<file src="output/gtk/SkiaSharp.Views.Gtk.dll" target="lib/net45" />
</files>
</package>

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

@ -23,5 +23,7 @@
<file src="output/tvos/SkiaSharp.Views.tvOS.dll" target="lib/XamarintvOS" />
<file src="output/watchos/SkiaSharp.Views.watchOS.dll" target="lib/XamarinwatchOS" />
<file src="output/osx/SkiaSharp.Views.Mac.dll" target="lib/XamarinMac" />
<file src="output/desktop/SkiaSharp.Views.Desktop.dll" target="lib/net45" />
<file src="output/gtk/SkiaSharp.Views.Gtk.dll" target="lib/net45" />
</files>
</package>

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

@ -18,9 +18,10 @@
</dependencies>
</metadata>
<files>
<!-- Desktop -->
<file src="output/desktop/SkiaSharp.Views.Desktop.dll" target="lib/net45" />
<!-- Windows -->
<file src="output/windows/SkiaSharp.Views.Desktop.dll" target="lib/net45" />
<file src="output/windows/SkiaSharp.Views.WPF.dll" target="lib/net45" />
<file src="output/wpf/SkiaSharp.Views.WPF.dll" target="lib/net45" />
<!-- UWP -->
<file src="output/uwp/SkiaSharp.Views.UWP.dll" target="lib/uap10.0" />
</files>

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

@ -28,9 +28,12 @@
<file src="output/watchos/SkiaSharp.Views.watchOS.dll" target="lib/XamarinwatchOS" />
<!-- macOS -->
<file src="output/osx/SkiaSharp.Views.Mac.dll" target="lib/XamarinMac" />
<!-- Desktop -->
<file src="output/desktop/SkiaSharp.Views.Desktop.dll" target="lib/net45" />
<!-- Windows -->
<file src="output/windows/SkiaSharp.Views.Desktop.dll" target="lib/net45" />
<file src="output/windows/SkiaSharp.Views.WPF.dll" target="lib/net45" />
<file src="output/wpf/SkiaSharp.Views.WPF.dll" target="lib/net45" />
<!-- GTK -->
<file src="output/gtk/SkiaSharp.Views.Gtk.dll" target="lib/net45" />
<!-- UWP -->
<file src="output/uwp/SkiaSharp.Views.UWP.dll" target="lib/uap10.0" />
</files>

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

@ -0,0 +1,109 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26430.13
MinimumVisualStudioVersion = 10.0.40219.1
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Binding", "..\..\..\binding\Binding\Binding.shproj", "{9C502B9A-25D4-473F-89BD-5A13DDE16354}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Views.Shared", "..\..\..\source\SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.shproj", "{5A67972C-1C04-4913-9950-06A03BFE9533}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "source", "source", "{C335869B-7CC8-4239-B4A5-8031AA9758D3}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Binding.Shared", "..\..\..\binding\Binding.Shared\Binding.Shared.shproj", "{6F8349DC-90AC-441D-8B8B-BE623F46BE6D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Desktop", "..\..\..\binding\SkiaSharp.Desktop\SkiaSharp.Desktop.csproj", "{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Views.Gtk", "..\..\..\source\SkiaSharp.Views\SkiaSharp.Views.Gtk\SkiaSharp.Views.Gtk.csproj", "{67A502A4-E8B2-419A-811E-5A634B29C8D7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Views.Desktop", "..\..\..\source\SkiaSharp.Views\SkiaSharp.Views.Desktop\SkiaSharp.Views.Desktop.csproj", "{E5A90865-C185-45AD-88D1-6DA7D6004B03}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharpSample", "SkiaSharpSample\SkiaSharpSample.csproj", "{17521786-7B50-46C5-BBCE-999FDEBB45A3}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Shared\SkiaSharp.Views.Forms.Shared.projitems*{1555d119-8598-4e4d-91ac-d313f94a1673}*SharedItemsImports = 4
..\binding\HarfBuzzSharp.Shared\HarfBuzzSharp.Shared.projitems*{1aaa8f60-6138-4dfe-b240-5a0f3fb87e0f}*SharedItemsImports = 13
..\binding\Binding.Shared\Binding.Shared.projitems*{2ae5d8c5-eac6-4515-89f2-a4994b41c925}*SharedItemsImports = 4
..\binding\HarfBuzzSharp.Shared\HarfBuzzSharp.Shared.projitems*{2ae5d8c5-eac6-4515-89f2-a4994b41c925}*SharedItemsImports = 4
SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Native.Shared\SkiaSharp.Views.Forms.Native.Shared.projitems*{2f94f024-1841-47e8-b521-74aa4e3eba54}*SharedItemsImports = 4
SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Shared\SkiaSharp.Views.Forms.Shared.projitems*{2f94f024-1841-47e8-b521-74aa4e3eba54}*SharedItemsImports = 4
SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Shared\SkiaSharp.Views.Forms.Shared.projitems*{314fb505-9858-4e03-b799-91b0ba627d05}*SharedItemsImports = 13
..\binding\Binding.Shared\Binding.Shared.projitems*{4588a759-3853-49b8-8a68-6c7917be9220}*SharedItemsImports = 4
..\binding\Binding\Binding.projitems*{4588a759-3853-49b8-8a68-6c7917be9220}*SharedItemsImports = 4
SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Native.Shared\SkiaSharp.Views.Forms.Native.Shared.projitems*{4ac36d63-bf11-445f-81ee-107c0cef4fc9}*SharedItemsImports = 4
SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Shared\SkiaSharp.Views.Forms.Shared.projitems*{4ac36d63-bf11-445f-81ee-107c0cef4fc9}*SharedItemsImports = 4
..\binding\Binding.Shared\Binding.Shared.projitems*{5180e370-a455-42bb-99f9-97bd269b8a52}*SharedItemsImports = 4
..\binding\Binding\Binding.projitems*{5180e370-a455-42bb-99f9-97bd269b8a52}*SharedItemsImports = 4
..\binding\Binding.Shared\Binding.Shared.projitems*{099A4BAD-6CF7-4898-9D16-266BDD844F95}*SharedItemsImports = 4
..\binding\Binding\Binding.projitems*{099A4BAD-6CF7-4898-9D16-266BDD844F95}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.projitems*{5a67972c-1c04-4913-9950-06a03bfe9533}*SharedItemsImports = 13
..\binding\Binding.Shared\Binding.Shared.projitems*{6a678cfb-21a7-4e81-8909-fd72abbfd408}*SharedItemsImports = 4
..\binding\Binding\Binding.projitems*{6a678cfb-21a7-4e81-8909-fd72abbfd408}*SharedItemsImports = 4
..\binding\Binding.Shared\Binding.Shared.projitems*{6f8349dc-90ac-441d-8b8b-be623f46be6d}*SharedItemsImports = 13
SkiaSharp.Views\SkiaSharp.Views.AppleiOS\SkiaSharp.Views.AppleiOS.projitems*{74c78108-9199-4a7a-928c-fc4dc57d0ae4}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Apple\SkiaSharp.Views.Apple.projitems*{74c78108-9199-4a7a-928c-fc4dc57d0ae4}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.projitems*{74c78108-9199-4a7a-928c-fc4dc57d0ae4}*SharedItemsImports = 4
SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.Shared\SkiaSharp.HarfBuzz.Shared.projitems*{7cad1912-05a5-42e5-b7ba-81bb051f0566}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Apple\SkiaSharp.Views.Apple.projitems*{809a15dc-e675-4a24-83fa-df13160f7e4c}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.projitems*{809a15dc-e675-4a24-83fa-df13160f7e4c}*SharedItemsImports = 4
..\binding\Binding.Shared\Binding.Shared.projitems*{8d646738-458a-441f-b69b-253ef058a812}*SharedItemsImports = 4
..\binding\HarfBuzzSharp.Shared\HarfBuzzSharp.Shared.projitems*{8d646738-458a-441f-b69b-253ef058a812}*SharedItemsImports = 4
..\binding\Binding.Shared\Binding.Shared.projitems*{0C940695-4868-4CF7-7D16-266BDD88A812}*SharedItemsImports = 4
..\binding\HarfBuzzSharp.Shared\HarfBuzzSharp.Shared.projitems*{0C940695-4868-4CF7-7D16-266BDD88A812}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.projitems*{926c8d29-e047-4f4e-8b35-852e47bfa9f5}*SharedItemsImports = 4
..\binding\Binding\Binding.projitems*{9c502b9a-25d4-473f-89bd-5a13dde16354}*SharedItemsImports = 13
SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.Shared\SkiaSharp.HarfBuzz.Shared.projitems*{c3e63b2d-95d4-4c3f-b10f-7a0aacf94980}*SharedItemsImports = 13
..\binding\Binding.Shared\Binding.Shared.projitems*{c737dc80-5b71-4b26-a2dc-da30421788b0}*SharedItemsImports = 4
..\binding\Binding\Binding.projitems*{c737dc80-5b71-4b26-a2dc-da30421788b0}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Apple\SkiaSharp.Views.Apple.projitems*{cbca14e7-96c9-4697-909c-19b1ef7298f7}*SharedItemsImports = 13
SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Native.Shared\SkiaSharp.Views.Forms.Native.Shared.projitems*{cebd25fd-dd4f-4d5f-b809-d50d02176f41}*SharedItemsImports = 13
SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Native.Shared\SkiaSharp.Views.Forms.Native.Shared.projitems*{da5da4d8-4885-4af2-96bb-ae803c344ab0}*SharedItemsImports = 4
SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Shared\SkiaSharp.Views.Forms.Shared.projitems*{da5da4d8-4885-4af2-96bb-ae803c344ab0}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.AppleiOS\SkiaSharp.Views.AppleiOS.projitems*{e5973829-6c8b-43e4-b81b-c8492df26c90}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Apple\SkiaSharp.Views.Apple.projitems*{e5973829-6c8b-43e4-b81b-c8492df26c90}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.projitems*{e5973829-6c8b-43e4-b81b-c8492df26c90}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.AppleiOS\SkiaSharp.Views.AppleiOS.projitems*{9E850CCA-54CC-4CEB-B2C2-E32EF4A17D61}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Apple\SkiaSharp.Views.Apple.projitems*{9E850CCA-54CC-4CEB-B2C2-E32EF4A17D61}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.projitems*{9E850CCA-54CC-4CEB-B2C2-E32EF4A17D61}*SharedItemsImports = 4
..\binding\Binding.Shared\Binding.Shared.projitems*{e6b786c4-3bf9-4a42-9a4a-08002ae3fdad}*SharedItemsImports = 4
..\binding\HarfBuzzSharp.Shared\HarfBuzzSharp.Shared.projitems*{e6b786c4-3bf9-4a42-9a4a-08002ae3fdad}*SharedItemsImports = 4
..\binding\Binding.Shared\Binding.Shared.projitems*{e8192110-fcf9-4972-9472-7408bc2ca56b}*SharedItemsImports = 4
..\binding\HarfBuzzSharp.Shared\HarfBuzzSharp.Shared.projitems*{e8192110-fcf9-4972-9472-7408bc2ca56b}*SharedItemsImports = 4
..\binding\Binding.Shared\Binding.Shared.projitems*{eb1bbdcc-fb07-40d5-8b9e-0079e2c2f2df}*SharedItemsImports = 4
..\binding\Binding\Binding.projitems*{eb1bbdcc-fb07-40d5-8b9e-0079e2c2f2df}*SharedItemsImports = 4
SkiaSharp.Views\SkiaSharp.Views.AppleiOS\SkiaSharp.Views.AppleiOS.projitems*{ff4c9f9f-7a6a-44d1-8338-d30e39e4e9d4}*SharedItemsImports = 13
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF}.Release|Any CPU.Build.0 = Release|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Release|Any CPU.Build.0 = Release|Any CPU
{E5A90865-C185-45AD-88D1-6DA7D6004B03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5A90865-C185-45AD-88D1-6DA7D6004B03}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5A90865-C185-45AD-88D1-6DA7D6004B03}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5A90865-C185-45AD-88D1-6DA7D6004B03}.Release|Any CPU.Build.0 = Release|Any CPU
{17521786-7B50-46C5-BBCE-999FDEBB45A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{17521786-7B50-46C5-BBCE-999FDEBB45A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{17521786-7B50-46C5-BBCE-999FDEBB45A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{17521786-7B50-46C5-BBCE-999FDEBB45A3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{5A67972C-1C04-4913-9950-06A03BFE9533} = {C335869B-7CC8-4239-B4A5-8031AA9758D3}
{9C502B9A-25D4-473F-89BD-5A13DDE16354} = {C335869B-7CC8-4239-B4A5-8031AA9758D3}
{6F8349DC-90AC-441D-8B8B-BE623F46BE6D} = {C335869B-7CC8-4239-B4A5-8031AA9758D3}
{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF} = {C335869B-7CC8-4239-B4A5-8031AA9758D3}
{67A502A4-E8B2-419A-811E-5A634B29C8D7} = {C335869B-7CC8-4239-B4A5-8031AA9758D3}
{E5A90865-C185-45AD-88D1-6DA7D6004B03} = {C335869B-7CC8-4239-B4A5-8031AA9758D3}
EndGlobalSection
EndGlobal

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

@ -0,0 +1,49 @@
using System;
using Gtk;
using SkiaSharp;
using SkiaSharp.Views.Desktop;
public partial class MainWindow : Gtk.Window
{
public MainWindow()
: base(Gtk.WindowType.Toplevel)
{
Build();
skiaView.PaintSurface += OnPaintSurface;
}
protected void OnDeleteEvent(object sender, DeleteEventArgs a)
{
Application.Quit();
a.RetVal = true;
}
private void OnPaintSurface(object sender, SKPaintSurfaceEventArgs e)
{
// the the canvas and properties
var canvas = e.Surface.Canvas;
// get the screen density for scaling
var scale = 1f;
var scaledSize = new SKSize(e.Info.Width / scale, e.Info.Height / scale);
// handle the device screen density
canvas.Scale(scale);
// make sure the canvas is blank
canvas.Clear(SKColors.White);
// draw some text
var paint = new SKPaint
{
Color = SKColors.Black,
IsAntialias = true,
Style = SKPaintStyle.Fill,
TextAlign = SKTextAlign.Center,
TextSize = 24
};
var coord = new SKPoint(scaledSize.Width / 2, (scaledSize.Height + paint.TextSize) / 2);
canvas.DrawText("SkiaSharp", coord, paint);
}
}

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

@ -0,0 +1,16 @@
using System;
using Gtk;
namespace SkiaSharpSample
{
class MainClass
{
public static void Main(string[] args)
{
Application.Init();
MainWindow win = new MainWindow();
win.Show();
Application.Run();
}
}
}

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

@ -0,0 +1,26 @@
using System.Reflection;
using System.Runtime.CompilerServices;
// Information about this assembly is defined by the following attributes.
// Change them to the values specific to your project.
[assembly: AssemblyTitle("SkiaSharpSample")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("(c) Matthew Leibowitz")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
[assembly: AssemblyVersion("1.0.*")]
// The following attributes are used to specify the signing key for the assembly,
// if desired. See the Mono documentation for more information about signing.
//[assembly: AssemblyDelaySign(false)]
//[assembly: AssemblyKeyFile("")]

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

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{17521786-7B50-46C5-BBCE-999FDEBB45A3}</ProjectGuid>
<OutputType>WinExe</OutputType>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<RootNamespace>SkiaSharpSample</RootNamespace>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>bin\Release</OutputPath>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="Mono.Posix" />
<Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\binding\SkiaSharp.Desktop\SkiaSharp.Desktop.csproj">
<Project>{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF}</Project>
<Name>SkiaSharp.Desktop</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\source\SkiaSharp.Views\SkiaSharp.Views.Desktop\SkiaSharp.Views.Desktop.csproj">
<Project>{E5A90865-C185-45AD-88D1-6DA7D6004B03}</Project>
<Name>SkiaSharp.Views.Desktop</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\..\source\SkiaSharp.Views\SkiaSharp.Views.Gtk\SkiaSharp.Views.Gtk.csproj">
<Project>{67A502A4-E8B2-419A-811E-5A634B29C8D7}</Project>
<Name>SkiaSharp.Views.Gtk</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="gtk-gui\gui.stetic">
<LogicalName>gui.stetic</LogicalName>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Compile Include="gtk-gui\generated.cs" />
<Compile Include="MainWindow.cs" />
<Compile Include="gtk-gui\MainWindow.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="..\..\..\..\binding\SkiaSharp.Desktop\bin\$(Configuration)\nuget\build\net45\SkiaSharp.Desktop.targets" Condition="Exists('..\..\..\..\binding\SkiaSharp.Desktop\bin\$(Configuration)\nuget\build\net45\SkiaSharp.Desktop.targets')" />
</Project>

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

@ -0,0 +1,28 @@
// This file has been generated by the GUI designer. Do not modify.
public partial class MainWindow
{
private global::SkiaSharp.Views.Gtk.SKWidget skiaView;
protected virtual void Build()
{
global::Stetic.Gui.Initialize(this);
// Widget MainWindow
this.Name = "MainWindow";
this.Title = global::Mono.Unix.Catalog.GetString("MainWindow");
this.WindowPosition = ((global::Gtk.WindowPosition)(4));
// Container child MainWindow.Gtk.Container+ContainerChild
this.skiaView = new global::SkiaSharp.Views.Gtk.SKWidget();
this.skiaView.Name = "skiaView";
this.Add(this.skiaView);
if ((this.Child != null))
{
this.Child.ShowAll();
}
this.DefaultWidth = 400;
this.DefaultHeight = 300;
this.Show();
this.DeleteEvent += new global::Gtk.DeleteEventHandler(this.OnDeleteEvent);
}
}

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

@ -0,0 +1,30 @@
// This file has been generated by the GUI designer. Do not modify.
namespace Stetic
{
internal class Gui
{
private static bool initialized;
internal static void Initialize(Gtk.Widget iconRenderer)
{
if ((Stetic.Gui.initialized == false))
{
Stetic.Gui.initialized = true;
}
}
}
internal class ActionGroups
{
public static Gtk.ActionGroup GetActionGroup(System.Type type)
{
return Stetic.ActionGroups.GetActionGroup(type.FullName);
}
public static Gtk.ActionGroup GetActionGroup(string name)
{
return null;
}
}
}

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

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<stetic-interface>
<configuration>
<images-root-path>..</images-root-path>
<target-gtk-version>2.12</target-gtk-version>
</configuration>
<import>
<widget-library name="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
<widget-library name="../../../../../source/SkiaSharp.Views/SkiaSharp.Views.Gtk/bin/Debug/SkiaSharp.Views.Gtk.dll" />
<widget-library name="../bin/Debug/SkiaSharpSample.exe" internal="true" />
</import>
<widget class="Gtk.Window" id="MainWindow" design-size="400 300">
<property name="MemberName" />
<property name="Title" translatable="yes">MainWindow</property>
<property name="WindowPosition">CenterOnParent</property>
<signal name="DeleteEvent" handler="OnDeleteEvent" />
<child>
<widget class="SkiaSharp.Views.Gtk.SKWidget" id="skiaView">
<property name="MemberName" />
</widget>
</child>
</widget>
</stetic-interface>

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

@ -0,0 +1,91 @@
using System;
using System.ComponentModel;
using SkiaSharp.Views.Desktop;
namespace SkiaSharp.Views.Gtk
{
[ToolboxItem(true)]
public class SKWidget : global::Gtk.DrawingArea
{
private Gdk.Pixbuf pix;
public SKWidget()
{
DoubleBuffered = false;
}
public SKSize CanvasSize => pix == null ? SKSize.Empty : new SKSize(pix.Width, pix.Height);
[Category("Appearance")]
public event EventHandler<SKPaintSurfaceEventArgs> PaintSurface;
protected override bool OnExposeEvent(Gdk.EventExpose evnt)
{
var window = evnt.Window;
var area = evnt.Area;
// get the pixbuf
CreatePixbuf();
var info = new SKImageInfo(pix.Width, pix.Height, SKImageInfo.PlatformColorType, SKAlphaType.Premul);
// create the surface
using (var surface = SKSurface.Create(info, pix.Pixels, info.RowBytes))
{
// start drawing
OnPaintSurface(new SKPaintSurfaceEventArgs(surface, info));
surface.Canvas.Flush();
// swap R and B
if (info.ColorType == SKColorType.Bgra8888)
{
using (var pixmap = surface.PeekPixels())
{
SKSwizzle.SwapRedBlue(pixmap.GetPixels(), pixmap.GetPixels(), info.BytesSize);
}
}
}
// write the pixbuf to the graphics
window.Clear();
window.DrawPixbuf(null, pix, 0, 0, 0, 0, -1, -1, Gdk.RgbDither.None, 0, 0);
return true;
}
protected virtual void OnPaintSurface(SKPaintSurfaceEventArgs e)
{
// invoke the event
PaintSurface?.Invoke(this, e);
}
public override void Dispose()
{
FreePixbuf();
base.Dispose();
}
private void CreatePixbuf()
{
var alloc = Allocation;
var w = alloc.Width;
var h = alloc.Height;
if (pix == null || pix.Width != w || pix.Height != h)
{
FreePixbuf();
pix = new Gdk.Pixbuf(Gdk.Colorspace.Rgb, true, 8, w, h);
}
}
private void FreePixbuf()
{
if (pix != null)
{
pix.Dispose();
pix = null;
}
}
}
}

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

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{67A502A4-E8B2-419A-811E-5A634B29C8D7}</ProjectGuid>
<OutputType>Library</OutputType>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<RootNamespace>SkiaSharp.Views.Gtk</RootNamespace>
<AssemblyName>SkiaSharp.Views.Gtk</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\..\mono.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;__DESKTOP__;__GTK__</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;__DESKTOP__;__GTK__</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="Mono.Posix" />
<Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
<Package>gtk-sharp-2.0</Package>
</Reference>
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
<Package>gtk-sharp-2.0</Package>
</Reference>
<Reference Include="glib-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
<Package>glib-sharp-2.0</Package>
</Reference>
<Reference Include="glade-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
<Package>glade-sharp-2.0</Package>
</Reference>
<Reference Include="pango-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
<Package>gtk-sharp-2.0</Package>
</Reference>
<Reference Include="atk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
<Package>gtk-sharp-2.0</Package>
</Reference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\binding\SkiaSharp.Desktop\SkiaSharp.Desktop.csproj">
<Project>{eb1bbdcc-fb07-40d5-8b9e-0079e2c2f2df}</Project>
<Name>SkiaSharp.Desktop</Name>
</ProjectReference>
<ProjectReference Include="..\SkiaSharp.Views.Desktop\SkiaSharp.Views.Desktop.csproj">
<Project>{E5A90865-C185-45AD-88D1-6DA7D6004B03}</Project>
<Name>SkiaSharp.Views.Desktop</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\SkiaSharp.Views.Shared\Properties\SkiaSharpViewsAssemblyInfo.cs">
<Link>Properties\SkiaSharpViewsAssemblyInfo.cs</Link>
</Compile>
<Compile Include="SKWidget.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
</Project>

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

@ -7,7 +7,7 @@ namespace SkiaSharp.Views.tvOS
namespace SkiaSharp.Views.watchOS
#elif __IOS__
namespace SkiaSharp.Views.iOS
#elif __DESKTOP__ || __WPF__
#elif __DESKTOP__ || __WPF__ || __GTK__
namespace SkiaSharp.Views.Desktop
#elif WINDOWS_UWP
namespace SkiaSharp.Views.UWP

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

@ -8,7 +8,7 @@ namespace SkiaSharp.Views.GlesInterop
private const string libGLESv2 = "/System/Library/Frameworks/OpenGL.framework/OpenGL";
#elif __IOS__ || __TVOS__ || __WATCHOS__
private const string libGLESv2 = "/System/Library/Frameworks/OpenGLES.framework/OpenGLES";
#elif __DESKTOP__ || __WPF__
#elif __DESKTOP__ || __WPF__ || __GTK__
private const string libGLESv2 = "opengl32.dll";
#elif __ANDROID__
private const string libGLESv2 = "libGLESv2.so";

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

@ -9,7 +9,7 @@ namespace SkiaSharp.Views.tvOS
namespace SkiaSharp.Views.watchOS
#elif __IOS__
namespace SkiaSharp.Views.iOS
#elif __DESKTOP__ || __WPF__
#elif __DESKTOP__ || __WPF__ || __GTK__
namespace SkiaSharp.Views.Desktop
#elif __MACOS__
namespace SkiaSharp.Views.Mac

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

@ -8,7 +8,7 @@ namespace SkiaSharp.Views.tvOS
namespace SkiaSharp.Views.watchOS
#elif __IOS__
namespace SkiaSharp.Views.iOS
#elif __DESKTOP__ || __WPF__
#elif __DESKTOP__ || __WPF__ || __GTK__
namespace SkiaSharp.Views.Desktop
#elif WINDOWS_UWP
namespace SkiaSharp.Views.UWP

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

@ -8,7 +8,7 @@ namespace SkiaSharp.Views.tvOS
namespace SkiaSharp.Views.watchOS
#elif __IOS__
namespace SkiaSharp.Views.iOS
#elif __DESKTOP__ || __WPF__
#elif __DESKTOP__ || __WPF__ || __GTK__
namespace SkiaSharp.Views.Desktop
#elif WINDOWS_UWP
namespace SkiaSharp.Views.UWP

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

@ -37,6 +37,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Views.Shared", "S
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Views.Desktop", "SkiaSharp.Views\SkiaSharp.Views.Desktop\SkiaSharp.Views.Desktop.csproj", "{E5A90865-C185-45AD-88D1-6DA7D6004B03}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Views.Gtk", "SkiaSharp.Views\SkiaSharp.Views.Gtk\SkiaSharp.Views.Gtk.csproj", "{67A502A4-E8B2-419A-811E-5A634B29C8D7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.Forms", "SkiaSharp.Views.Forms", "{B3C4E4EC-68C7-4AFB-A6D4-1B2B0EB8C421}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Views.Forms.Shared", "SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Shared\SkiaSharp.Views.Forms.Shared.shproj", "{314FB505-9858-4E03-B799-91B0BA627D05}"
@ -95,6 +97,10 @@ Global
{E5A90865-C185-45AD-88D1-6DA7D6004B03}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5A90865-C185-45AD-88D1-6DA7D6004B03}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E5A90865-C185-45AD-88D1-6DA7D6004B03}.Release|Any CPU.Build.0 = Release|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Release|Any CPU.Build.0 = Release|Any CPU
{1555D119-8598-4E4D-91AC-D313F94A1673}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1555D119-8598-4E4D-91AC-D313F94A1673}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1555D119-8598-4E4D-91AC-D313F94A1673}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -116,6 +122,7 @@ Global
{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF} = {C335869B-7CC8-4239-B4A5-8031AA9758D3}
{5A67972C-1C04-4913-9950-06A03BFE9533} = {4F5EBFFB-DD81-43B9-8531-156ED3639C91}
{E5A90865-C185-45AD-88D1-6DA7D6004B03} = {4F5EBFFB-DD81-43B9-8531-156ED3639C91}
{67A502A4-E8B2-419A-811E-5A634B29C8D7} = {4F5EBFFB-DD81-43B9-8531-156ED3639C91}
{314FB505-9858-4E03-B799-91B0BA627D05} = {B3C4E4EC-68C7-4AFB-A6D4-1B2B0EB8C421}
{1555D119-8598-4E4D-91AC-D313F94A1673} = {B3C4E4EC-68C7-4AFB-A6D4-1B2B0EB8C421}
{CEBD25FD-DD4F-4D5F-B809-D50D02176F41} = {B3C4E4EC-68C7-4AFB-A6D4-1B2B0EB8C421}

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

@ -83,6 +83,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HarfBuzzSharp.Desktop", "..
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Desktop", "..\binding\SkiaSharp.Desktop\SkiaSharp.Desktop.csproj", "{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Views.Gtk", "SkiaSharp.Views\SkiaSharp.Views.Gtk\SkiaSharp.Views.Gtk.csproj", "{67A502A4-E8B2-419A-811E-5A634B29C8D7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Views.Desktop", "SkiaSharp.Views\SkiaSharp.Views.Desktop\SkiaSharp.Views.Desktop.csproj", "{E5A90865-C185-45AD-88D1-6DA7D6004B03}"
EndProject
Global
@ -245,6 +247,10 @@ Global
{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF}.Release|Any CPU.Build.0 = Release|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{67A502A4-E8B2-419A-811E-5A634B29C8D7}.Release|Any CPU.Build.0 = Release|Any CPU
{E5A90865-C185-45AD-88D1-6DA7D6004B03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E5A90865-C185-45AD-88D1-6DA7D6004B03}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E5A90865-C185-45AD-88D1-6DA7D6004B03}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -288,6 +294,7 @@ Global
{89736865-5272-4A42-A7FB-D802C6345502} = {DF72A8D3-0A12-49C9-BBD2-4ACC9EB1A544}
{2AE5D8C5-EAC6-4515-89F2-A4994B41C925} = {56AE868D-7AD9-4DFC-BD27-6BBA8DC9F75A}
{EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF} = {C335869B-7CC8-4239-B4A5-8031AA9758D3}
{67A502A4-E8B2-419A-811E-5A634B29C8D7} = {F19E1537-81B2-4D4F-A69E-78DC73ACC141}
{E5A90865-C185-45AD-88D1-6DA7D6004B03} = {F19E1537-81B2-4D4F-A69E-78DC73ACC141}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution