From 230d4f973a1c706f1ec8e40f524d0b9018842eff Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Mon, 5 Jun 2017 15:48:04 -0500 Subject: [PATCH] Moved non-SkiaSharp libraries to another repository: - Moved SkiaSharp.Extended - Moved SkiaSharp.Svg - New repository: https://github.com/mono/SkiaSharp.Extended --- build.cake | 36 - nuget/SkiaSharp.Extended.nuspec | 23 - nuget/SkiaSharp.Svg.nuspec | 23 - source/SkiaSharp.Extended/README.md | 3 + .../Properties/AssemblyInfo.cs | 1 - .../SkiaSharp.Extended.NetStandard.csproj | 27 - .../SkiaSharpExtendedAssemblyInfo.cs | 17 - .../SkiaSharp.Extended.Shared/SKGeometry.cs | 194 --- .../SKGeometryExtensions.cs | 47 - .../SkiaSharp.Extended.Shared.projitems | 16 - .../SkiaSharp.Extended.Shared.shproj | 13 - .../Properties/AssemblyInfo.cs | 1 - .../SkiaSharp.Extended.csproj | 57 - source/SkiaSharp.Svg/README.md | 3 + .../Properties/AssemblyInfo.cs | 1 - .../SkiaSharp.Svg.NetStandard.csproj | 27 - .../Properties/SkiaSharpSvgAssemblyInfo.cs | 17 - .../SkiaSharp.Svg.Shared/SKSvg.cs | 1113 ----------------- .../SkiaSharp.Svg.Shared.projitems | 15 - .../SkiaSharp.Svg.Shared.shproj | 13 - .../SkiaSharp.Svg/Properties/AssemblyInfo.cs | 1 - .../SkiaSharp.Svg/SkiaSharp.Svg.csproj | 57 - source/SkiaSharpSource.Linux.sln | 28 - source/SkiaSharpSource.Mac.sln | 28 - source/SkiaSharpSource.NetStandard.sln | 28 - source/SkiaSharpSource.Windows.sln | 28 - source/SkiaSharpSource.sln | 44 - .../SkiaSharp.Desktop.Tests.csproj | 8 - .../SkiaSharp.Desktop.Tests.sln | 12 - .../SkiaSharp.NetCore.Tests.csproj | 2 - tests/Tests/SKGeometryTest.cs | 20 - tests/Tests/SKSvgTest.cs | 97 -- workbooks/Development.workbook/index.workbook | 2 - 33 files changed, 6 insertions(+), 1996 deletions(-) delete mode 100644 nuget/SkiaSharp.Extended.nuspec delete mode 100644 nuget/SkiaSharp.Svg.nuspec create mode 100644 source/SkiaSharp.Extended/README.md delete mode 100644 source/SkiaSharp.Extended/SkiaSharp.Extended.NetStandard/Properties/AssemblyInfo.cs delete mode 100644 source/SkiaSharp.Extended/SkiaSharp.Extended.NetStandard/SkiaSharp.Extended.NetStandard.csproj delete mode 100644 source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/Properties/SkiaSharpExtendedAssemblyInfo.cs delete mode 100644 source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SKGeometry.cs delete mode 100644 source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SKGeometryExtensions.cs delete mode 100644 source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SkiaSharp.Extended.Shared.projitems delete mode 100644 source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SkiaSharp.Extended.Shared.shproj delete mode 100644 source/SkiaSharp.Extended/SkiaSharp.Extended/Properties/AssemblyInfo.cs delete mode 100644 source/SkiaSharp.Extended/SkiaSharp.Extended/SkiaSharp.Extended.csproj create mode 100644 source/SkiaSharp.Svg/README.md delete mode 100644 source/SkiaSharp.Svg/SkiaSharp.Svg.NetStandard/Properties/AssemblyInfo.cs delete mode 100644 source/SkiaSharp.Svg/SkiaSharp.Svg.NetStandard/SkiaSharp.Svg.NetStandard.csproj delete mode 100644 source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/Properties/SkiaSharpSvgAssemblyInfo.cs delete mode 100644 source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SKSvg.cs delete mode 100644 source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SkiaSharp.Svg.Shared.projitems delete mode 100644 source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SkiaSharp.Svg.Shared.shproj delete mode 100644 source/SkiaSharp.Svg/SkiaSharp.Svg/Properties/AssemblyInfo.cs delete mode 100644 source/SkiaSharp.Svg/SkiaSharp.Svg/SkiaSharp.Svg.csproj delete mode 100644 tests/Tests/SKGeometryTest.cs delete mode 100644 tests/Tests/SKSvgTest.cs diff --git a/build.cake b/build.cake index 35d341f6..1fcacfa2 100644 --- a/build.cake +++ b/build.cake @@ -40,8 +40,6 @@ var VERSION_PACKAGES = new Dictionary { { "SkiaSharp", "1.58.0" }, { "SkiaSharp.Views", "1.58.0" }, { "SkiaSharp.Views.Forms", "1.58.0" }, - { "SkiaSharp.Svg", "1.58.0" }, - { "SkiaSharp.Extended", "1.58.0-beta" }, { "SkiaSharp.HarfBuzz", "1.58.0-beta" }, { "HarfBuzzSharp", "1.4.6" }, @@ -144,12 +142,6 @@ Task ("libs") 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/"); - // copy SVG - CopyFileToDirectory ("./source/SkiaSharp.Svg/SkiaSharp.Svg/bin/Release/SkiaSharp.Svg.dll", "./output/portable/"); - - // copy Extended - CopyFileToDirectory ("./source/SkiaSharp.Extended/SkiaSharp.Extended/bin/Release/SkiaSharp.Extended.dll", "./output/portable/"); - // copy HarfBuzz CopyFileToDirectory ("./source/SkiaSharp.HarfBuzz/SkiaSharp.HarfBuzz/bin/Release/SkiaSharp.HarfBuzz.dll", "./output/portable/"); @@ -200,12 +192,6 @@ Task ("libs") 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/"); - // copy SVG - CopyFileToDirectory ("./source/SkiaSharp.Svg/SkiaSharp.Svg/bin/Release/SkiaSharp.Svg.dll", "./output/portable/"); - - // copy Extended - CopyFileToDirectory ("./source/SkiaSharp.Extended/SkiaSharp.Extended/bin/Release/SkiaSharp.Extended.dll", "./output/portable/"); - // copy HarfBuzz CopyFileToDirectory ("./source/SkiaSharp.HarfBuzz/SkiaSharp.HarfBuzz/bin/Release/SkiaSharp.HarfBuzz.dll", "./output/portable/"); @@ -232,12 +218,6 @@ Task ("libs") RunNuGetRestore ("./source/SkiaSharpSource.Linux.sln"); RunMSBuild ("./source/SkiaSharpSource.Linux.sln"); - // copy SVG - CopyFileToDirectory ("./source/SkiaSharp.Svg/SkiaSharp.Svg/bin/Release/SkiaSharp.Svg.dll", "./output/portable/"); - - // copy Extended - CopyFileToDirectory ("./source/SkiaSharp.Extended/SkiaSharp.Extended/bin/Release/SkiaSharp.Extended.dll", "./output/portable/"); - // copy HarfBuzz CopyFileToDirectory ("./source/SkiaSharp.HarfBuzz/SkiaSharp.HarfBuzz/bin/Release/SkiaSharp.HarfBuzz.dll", "./output/portable/"); @@ -278,10 +258,6 @@ Task ("libs") Configuration = "Release", }); if (CopyNetStandardOutput) { - // copy SVG - CopyFileToDirectory ("./source/SkiaSharp.Svg/SkiaSharp.Svg.NetStandard/bin/Release/SkiaSharp.Svg.dll", "./output/netstandard/"); - // copy Extended - CopyFileToDirectory ("./source/SkiaSharp.Extended/SkiaSharp.Extended.NetStandard/bin/Release/SkiaSharp.Extended.dll", "./output/netstandard/"); // copy HarfBuzz CopyFileToDirectory ("./source/SkiaSharp.HarfBuzz/SkiaSharp.HarfBuzz.NetStandard/bin/Release/SkiaSharp.HarfBuzz.dll", "./output/netstandard/"); } @@ -298,8 +274,6 @@ Task ("workbooks") // the managed bits CopyFileToDirectory ("./binding/SkiaSharp.Desktop/bin/Release/nuget/build/net45/SkiaSharp.dll.config", "./output/workbooks/"); CopyFileToDirectory ("./binding/SkiaSharp.NetStandard/bin/Release/SkiaSharp.dll", "./output/workbooks/"); - CopyFileToDirectory ("./source/SkiaSharp.Svg/SkiaSharp.Svg.NetStandard/bin/Release/SkiaSharp.Svg.dll", "./output/workbooks/"); - CopyFileToDirectory ("./source/SkiaSharp.Extended/SkiaSharp.Extended.NetStandard/bin/Release/SkiaSharp.Extended.dll", "./output/workbooks/"); // the native bits if (IsRunningOnWindows ()) { @@ -633,10 +607,6 @@ Task ("nuget") PackageNuGet ("./nuget/HarfBuzzSharp.Linux.nuspec", "./output/"); } } - // SVG is a PCL - PackageNuGet ("./nuget/SkiaSharp.Svg.nuspec", "./output/"); - // Extended is a PCL - PackageNuGet ("./nuget/SkiaSharp.Extended.nuspec", "./output/"); // HarfBuzz is a PCL PackageNuGet ("./nuget/SkiaSharp.HarfBuzz.nuspec", "./output/"); }); @@ -718,12 +688,6 @@ Task ("set-versions") UpdateAssemblyInfo ( "./source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Shared/Properties/SkiaSharpViewsFormsAssemblyInfo.cs", VERSION_ASSEMBLY, VERSION_FILE, sha); - UpdateAssemblyInfo ( - "./source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/Properties/SkiaSharpSvgAssemblyInfo.cs", - VERSION_ASSEMBLY, VERSION_FILE, sha); - UpdateAssemblyInfo ( - "./source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/Properties/SkiaSharpExtendedAssemblyInfo.cs", - VERSION_ASSEMBLY, VERSION_FILE, sha); UpdateAssemblyInfo ( "./source/SkiaSharp.HarfBuzz/SkiaSharp.HarfBuzz.Shared/Properties/SkiaSharpHarfBuzzAssemblyInfo.cs", VERSION_ASSEMBLY, VERSION_FILE, sha); diff --git a/nuget/SkiaSharp.Extended.nuspec b/nuget/SkiaSharp.Extended.nuspec deleted file mode 100644 index 1885beef..00000000 --- a/nuget/SkiaSharp.Extended.nuspec +++ /dev/null @@ -1,23 +0,0 @@ - - - - SkiaSharp.Extended - SkiaSharp.Extended - 1.58.0-beta - Xamarin Inc. - Xamarin Inc. - false - This package adds many additional features and utilities for use with SkiaSharp. - Copyright (c) Xamarin Inc. 2016 - https://github.com/mono/SkiaSharp/blob/master/LICENSE.md - https://github.com/mono/SkiaSharp - https://cdn.rawgit.com/mono/SkiaSharp/v1.53.0/images/skia_256x256.png - - - - - - - - - \ No newline at end of file diff --git a/nuget/SkiaSharp.Svg.nuspec b/nuget/SkiaSharp.Svg.nuspec deleted file mode 100644 index 7fc98356..00000000 --- a/nuget/SkiaSharp.Svg.nuspec +++ /dev/null @@ -1,23 +0,0 @@ - - - - SkiaSharp.Svg - SVG Support for SkiaSharp - 1.58.0 - Xamarin Inc. - Xamarin Inc. - false - This package adds support for reading SVG files into SkiaSharp. - Copyright (c) Xamarin Inc. 2016 - https://github.com/mono/SkiaSharp/blob/master/LICENSE.md - https://github.com/mono/SkiaSharp - https://cdn.rawgit.com/mono/SkiaSharp/v1.53.0/images/skia_256x256.png - - - - - - - - - \ No newline at end of file diff --git a/source/SkiaSharp.Extended/README.md b/source/SkiaSharp.Extended/README.md new file mode 100644 index 00000000..791430fe --- /dev/null +++ b/source/SkiaSharp.Extended/README.md @@ -0,0 +1,3 @@ +# MOVED + +**SkiaSharp.Externals** has been moved to https://github.com/mono/SkiaSharp.Extended \ No newline at end of file diff --git a/source/SkiaSharp.Extended/SkiaSharp.Extended.NetStandard/Properties/AssemblyInfo.cs b/source/SkiaSharp.Extended/SkiaSharp.Extended.NetStandard/Properties/AssemblyInfo.cs deleted file mode 100644 index 5f282702..00000000 --- a/source/SkiaSharp.Extended/SkiaSharp.Extended.NetStandard/Properties/AssemblyInfo.cs +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/source/SkiaSharp.Extended/SkiaSharp.Extended.NetStandard/SkiaSharp.Extended.NetStandard.csproj b/source/SkiaSharp.Extended/SkiaSharp.Extended.NetStandard/SkiaSharp.Extended.NetStandard.csproj deleted file mode 100644 index 7dab38d8..00000000 --- a/source/SkiaSharp.Extended/SkiaSharp.Extended.NetStandard/SkiaSharp.Extended.NetStandard.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - - netstandard1.3 - library - SkiaSharp.Extended - SkiaSharp.Extended - False - False - 1.6.0 - - true - ..\..\..\mono.snk - - - TRACE;DEBUG;NET_STANDARD - bin\Debug\ - - - TRACE;NET_STANDARD - bin\Release\ - - - - - - \ No newline at end of file diff --git a/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/Properties/SkiaSharpExtendedAssemblyInfo.cs b/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/Properties/SkiaSharpExtendedAssemblyInfo.cs deleted file mode 100644 index 050860c4..00000000 --- a/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/Properties/SkiaSharpExtendedAssemblyInfo.cs +++ /dev/null @@ -1,17 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Cake. -// -//------------------------------------------------------------------------------ -using System.Reflection; - -[assembly: AssemblyTitle("SkiaSharp.Extended")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("SkiaSharp.Extended")] -[assembly: AssemblyVersion("1.58.0.0")] -[assembly: AssemblyFileVersion("1.58.0.0")] -[assembly: AssemblyInformationalVersion("1.58.0.0-{GIT_SHA}")] -[assembly: AssemblyCopyright("Xamarin Inc.")] -[assembly: AssemblyTrademark("")] - diff --git a/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SKGeometry.cs b/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SKGeometry.cs deleted file mode 100644 index c104a3b2..00000000 --- a/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SKGeometry.cs +++ /dev/null @@ -1,194 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace SkiaSharp.Extended -{ - public static class SKGeometry - { - public const float PI = (float)Math.PI; - - private const float UprightAngle = PI / 2f; - private const float TotalAngle = 2f * PI; - - public static SKPoint GetCirclePoint(float r, float angle) - { - return new SKPoint(r * (float)Math.Cos(angle), r * (float)Math.Sin(angle)); - } - - public static SKPath CreateSectorPath(float start, float end, float outerRadius, float innerRadius = 0.0f, float margin = 0.0f, float explodeDistance = 0.0f, SKPathDirection direction = SKPathDirection.Clockwise) - { - var path = new SKPath(); - - // if the sector has no size, then it has no path - if (start == end) - { - return path; - } - - // the the sector is a full circle, then do that - if (end - start == 1.0f) - { - path.AddCircle(0, 0, outerRadius, direction); - path.AddCircle(0, 0, innerRadius, direction); - path.FillType = SKPathFillType.EvenOdd; - return path; - } - - // calculate the angles - var startAngle = TotalAngle * start - UprightAngle; - var endAngle = TotalAngle * end - UprightAngle; - var large = endAngle - startAngle > PI ? SKPathArcSize.Large : SKPathArcSize.Small; - var sectorCenterAngle = (endAngle - startAngle) / 2f + startAngle; - - //// get the radius bits - //var sectorCenterRadius = (outerRadius - innerRadius) / 2f + innerRadius; - - // move explosion around 90 degrees, since matrix use down as 0 - var explosionMatrix = SKMatrix.MakeRotation(sectorCenterAngle - (PI / 2f)); - var offset = explosionMatrix.MapPoint(new SKPoint(0, explodeDistance)); - - // calculate the angle for the margins - margin = direction == SKPathDirection.Clockwise ? margin : -margin; - var offsetR = outerRadius == 0 ? 0 : ((margin / (TotalAngle * outerRadius)) * TotalAngle); - var offsetr = innerRadius == 0 ? 0 : ((margin / (TotalAngle * innerRadius)) * TotalAngle); - - // get the points - var a = GetCirclePoint(outerRadius, startAngle + offsetR) + offset; - var b = GetCirclePoint(outerRadius, endAngle - offsetR) + offset; - var c = GetCirclePoint(innerRadius, endAngle - offsetr) + offset; - var d = GetCirclePoint(innerRadius, startAngle + offsetr) + offset; - - // add the points to the path - path.MoveTo(a); - path.ArcTo(outerRadius, outerRadius, 0, large, direction, b.X, b.Y); - path.LineTo(c); - if (innerRadius == 0.0f) - { - // take a short cut - path.LineTo(d); - } - else - { - var reverseDirection = direction == SKPathDirection.Clockwise ? SKPathDirection.CounterClockwise : SKPathDirection.Clockwise; - path.ArcTo(innerRadius, innerRadius, 0, large, reverseDirection, d.X, d.Y); - } - path.Close(); - - return path; - } - - public static SKPath CreatePiePath(IEnumerable sectorSizes, float outerRadius, float innerRadius = 0.0f, float spacing = 0.0f, float explodeDistance = 0.0f, SKPathDirection direction = SKPathDirection.Clockwise) - { - var path = new SKPath(); - - float cursor = 0; - //var sum = sectorSizes.Sum(); - foreach (var sectorSize in sectorSizes) - { - var sector = CreateSectorPath(cursor, cursor + sectorSize, outerRadius, innerRadius, spacing / 2f, explodeDistance, direction); - - cursor += sectorSize; - - path.AddPath(sector, SKPathAddMode.Append); - } - - return path; - } - - public static SKPath CreateSquarePath(float side, SKPathDirection direction = SKPathDirection.Clockwise) - { - return CreateRectanglePath(side, side, direction); - } - - public static SKPath CreateRectanglePath(float width, float height, SKPathDirection direction = SKPathDirection.Clockwise) - { - var path = new SKPath(); - path.AddRect(new SKRect(width / -2, height / -2, width / 2, height / 2), direction); - path.Close(); - return path; - } - - public static SKPath CreateTrianglePath(float width, float height, SKPathDirection direction = SKPathDirection.Clockwise) - { - var path = new SKPath(); - path.MoveTo(0, height / -2); - if (direction == SKPathDirection.Clockwise) - { - path.LineTo(width / -2, height / 2); - path.LineTo(width / 2, height / 2); - } - else - { - path.LineTo(width / 2, height / 2); - path.LineTo(width / -2, height / 2); - } - path.Close(); - return path; - } - - public static SKPath CreateTrianglePath(float radius, SKPathDirection direction = SKPathDirection.Clockwise) - { - return CreateRegularPolygonPath(radius, 3, direction); - } - - public static SKPath CreateRegularPolygonPath(float radius, int points, SKPathDirection direction = SKPathDirection.Clockwise) - { - var path = new SKPath(); - - float stepAngle = TotalAngle / points; - if (direction == SKPathDirection.CounterClockwise) - { - stepAngle = -stepAngle; - } - - for (int p = 0; p < points; p++) - { - float angle = stepAngle * p - UprightAngle; - float x = radius * (float)Math.Cos(angle); - float y = radius * (float)Math.Sin(angle); - - if (p == 0) - path.MoveTo(x, y); - else - path.LineTo(x, y); - } - - path.Close(); - return path; - } - - public static SKPath CreateRegularStarPath(float outerRadius, float innerRadius, int points, SKPathDirection direction = SKPathDirection.Clockwise) - { - var path = new SKPath(); - - bool isInner = false; - points *= 2; - - float stepAngle = TotalAngle / points; - if (direction == SKPathDirection.CounterClockwise) - { - stepAngle = -stepAngle; - } - - for (int p = 0; p < points; p++) - { - float radius = isInner ? innerRadius : outerRadius; - - float angle = stepAngle * p - UprightAngle; - float x = radius * (float)Math.Cos(angle); - float y = radius * (float)Math.Sin(angle); - - if (p == 0) - path.MoveTo(x, y); - else - path.LineTo(x, y); - - isInner = !isInner; - } - - path.Close(); - return path; - } - } -} diff --git a/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SKGeometryExtensions.cs b/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SKGeometryExtensions.cs deleted file mode 100644 index 209d19b6..00000000 --- a/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SKGeometryExtensions.cs +++ /dev/null @@ -1,47 +0,0 @@ -namespace SkiaSharp.Extended -{ - public static class SKGeometryExtensions - { - public static void DrawSquare(this SKCanvas canvas, float cx, float cy, float side, SKPaint paint) - { - var path = SKGeometry.CreateSquarePath(side); - path.Offset(cx, cy); - canvas.DrawPath(path, paint); - } - - public static void DrawRect(this SKCanvas canvas, float cx, float cy, float width, float height, SKPaint paint) - { - var path = SKGeometry.CreateRectanglePath(width, height); - path.Offset(cx, cy); - canvas.DrawPath(path, paint); - } - - public static void DrawTriangle(this SKCanvas canvas, float cx, float cy, float width, float height, SKPaint paint) - { - var path = SKGeometry.CreateTrianglePath(width, height); - path.Offset(cx, cy); - canvas.DrawPath(path, paint); - } - - public static void DrawTriangle(this SKCanvas canvas, float cx, float cy, float radius, SKPaint paint) - { - var path = SKGeometry.CreateTrianglePath(radius); - path.Offset(cx, cy); - canvas.DrawPath(path, paint); - } - - public static void DrawRegularPolygon(this SKCanvas canvas, float cx, float cy, float radius, int points, SKPaint paint) - { - var path = SKGeometry.CreateRegularPolygonPath(radius, points); - path.Offset(cx, cy); - canvas.DrawPath(path, paint); - } - - public static void DrawStar(this SKCanvas canvas, float cx, float cy, float outerRadius, float innerRadius, int points, SKPaint paint) - { - var path = SKGeometry.CreateRegularStarPath(outerRadius, innerRadius, points); - path.Offset(cx, cy); - canvas.DrawPath(path, paint); - } - } -} diff --git a/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SkiaSharp.Extended.Shared.projitems b/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SkiaSharp.Extended.Shared.projitems deleted file mode 100644 index 52dfc7e3..00000000 --- a/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SkiaSharp.Extended.Shared.projitems +++ /dev/null @@ -1,16 +0,0 @@ - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - true - e3290ce6-0ada-486b-9bab-8bcf07f9be45 - - - SkiaSharp.Extended - - - - - - - \ No newline at end of file diff --git a/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SkiaSharp.Extended.Shared.shproj b/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SkiaSharp.Extended.Shared.shproj deleted file mode 100644 index 629fe1ea..00000000 --- a/source/SkiaSharp.Extended/SkiaSharp.Extended.Shared/SkiaSharp.Extended.Shared.shproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - e3290ce6-0ada-486b-9bab-8bcf07f9be45 - 14.0 - - - - - - - - diff --git a/source/SkiaSharp.Extended/SkiaSharp.Extended/Properties/AssemblyInfo.cs b/source/SkiaSharp.Extended/SkiaSharp.Extended/Properties/AssemblyInfo.cs deleted file mode 100644 index 5f282702..00000000 --- a/source/SkiaSharp.Extended/SkiaSharp.Extended/Properties/AssemblyInfo.cs +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/source/SkiaSharp.Extended/SkiaSharp.Extended/SkiaSharp.Extended.csproj b/source/SkiaSharp.Extended/SkiaSharp.Extended/SkiaSharp.Extended.csproj deleted file mode 100644 index a105b59d..00000000 --- a/source/SkiaSharp.Extended/SkiaSharp.Extended/SkiaSharp.Extended.csproj +++ /dev/null @@ -1,57 +0,0 @@ - - - - - 14.0 - Debug - AnyCPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19} - Library - Properties - SkiaSharp.Extended - SkiaSharp.Extended - en-US - 512 - {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Profile78 - v4.5 - true - ..\..\..\mono.snk - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - {7aa90628-2fdd-4585-af2f-cc51cfa8b52a} - SkiaSharp.Portable - - - - - - - - - \ No newline at end of file diff --git a/source/SkiaSharp.Svg/README.md b/source/SkiaSharp.Svg/README.md new file mode 100644 index 00000000..c49077e0 --- /dev/null +++ b/source/SkiaSharp.Svg/README.md @@ -0,0 +1,3 @@ +# MOVED + +**SkiaSharp.Svg** has been moved to https://github.com/mono/SkiaSharp.Extended \ No newline at end of file diff --git a/source/SkiaSharp.Svg/SkiaSharp.Svg.NetStandard/Properties/AssemblyInfo.cs b/source/SkiaSharp.Svg/SkiaSharp.Svg.NetStandard/Properties/AssemblyInfo.cs deleted file mode 100644 index 5f282702..00000000 --- a/source/SkiaSharp.Svg/SkiaSharp.Svg.NetStandard/Properties/AssemblyInfo.cs +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/source/SkiaSharp.Svg/SkiaSharp.Svg.NetStandard/SkiaSharp.Svg.NetStandard.csproj b/source/SkiaSharp.Svg/SkiaSharp.Svg.NetStandard/SkiaSharp.Svg.NetStandard.csproj deleted file mode 100644 index da55bd5c..00000000 --- a/source/SkiaSharp.Svg/SkiaSharp.Svg.NetStandard/SkiaSharp.Svg.NetStandard.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - - netstandard1.3 - library - SkiaSharp - SkiaSharp.Svg - False - False - 1.6.0 - - true - ..\..\..\mono.snk - - - TRACE;DEBUG;NET_STANDARD - bin\Debug\ - - - TRACE;NET_STANDARD - bin\Release\ - - - - - - diff --git a/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/Properties/SkiaSharpSvgAssemblyInfo.cs b/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/Properties/SkiaSharpSvgAssemblyInfo.cs deleted file mode 100644 index ed9ff41f..00000000 --- a/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/Properties/SkiaSharpSvgAssemblyInfo.cs +++ /dev/null @@ -1,17 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by Cake. -// -//------------------------------------------------------------------------------ -using System.Reflection; - -[assembly: AssemblyTitle("SkiaSharp.Svg")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("SkiaSharp.Svg")] -[assembly: AssemblyVersion("1.58.0.0")] -[assembly: AssemblyFileVersion("1.58.0.0")] -[assembly: AssemblyInformationalVersion("1.58.0.0-{GIT_SHA}")] -[assembly: AssemblyCopyright("Xamarin Inc.")] -[assembly: AssemblyTrademark("")] - diff --git a/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SKSvg.cs b/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SKSvg.cs deleted file mode 100644 index 4df6b7fa..00000000 --- a/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SKSvg.cs +++ /dev/null @@ -1,1113 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Text.RegularExpressions; -using System.Xml; -using System.Xml.Linq; - -namespace SkiaSharp -{ - public class SKSvg - { - private const float DefaultPPI = 160f; - private const bool DefaultThrowOnUnsupportedElement = false; - - private static readonly IFormatProvider icult = CultureInfo.InvariantCulture; - private static readonly XNamespace xlink = "http://www.w3.org/1999/xlink"; - private static readonly char[] WS = new char[] { ' ', '\t', '\n', '\r' }; - private static readonly Regex unitRe = new Regex("px|pt|em|ex|pc|cm|mm|in"); - private static readonly Regex percRe = new Regex("%"); - private static readonly Regex fillUrlRe = new Regex(@"url\s*\(\s*#([^\)]+)\)"); - private static readonly Regex keyValueRe = new Regex(@"\s*([\w-]+)\s*:\s*(.*)"); - private static readonly Regex WSRe = new Regex(@"\s{2,}"); - - private readonly Dictionary defs = new Dictionary(); - - public SKSvg() - : this(DefaultPPI, SKSize.Empty) - { - } - - public SKSvg(float pixelsPerInch) - : this(pixelsPerInch, SKSize.Empty) - { - } - - public SKSvg(SKSize canvasSize) - : this(DefaultPPI, canvasSize) - { - } - - public SKSvg(float pixelsPerInch, SKSize canvasSize) - { - CanvasSize = canvasSize; - PixelsPerInch = pixelsPerInch; - ThrowOnUnsupportedElement = DefaultThrowOnUnsupportedElement; - } - - public float PixelsPerInch { get; set; } - public bool ThrowOnUnsupportedElement { get; set; } - public SKRect ViewBox { get; private set; } - public SKSize CanvasSize { get; private set; } - public SKPicture Picture { get; private set; } - public string Description { get; private set; } - public string Title { get; private set; } - public string Version { get; private set; } - - public SKPicture Load(string filename) - { - return Load(XDocument.Load(filename)); - } - - public SKPicture Load(Stream stream) - { - return Load(XDocument.Load(stream)); - } - - private SKPicture Load(XDocument xdoc) - { - var svg = xdoc.Root; - var ns = svg.Name.Namespace; - - // find the defs (gradients) - and follow all hrefs - foreach (var d in svg.Descendants()) - { - var id = d.Attribute("id")?.Value?.Trim(); - if (!string.IsNullOrEmpty(id)) - defs[id] = ReadDefinition(d); - } - - Version = svg.Attribute("version")?.Value; - Title = svg.Element(ns + "title")?.Value; - Description = svg.Element(ns + "desc")?.Value ?? svg.Element(ns + "description")?.Value; - - // TODO: parse the "preserveAspectRatio" values properly - var preserveAspectRatio = svg.Attribute("preserveAspectRatio")?.Value; - - // get the SVG dimensions - var viewBoxA = svg.Attribute("viewBox") ?? svg.Attribute("viewPort"); - if (viewBoxA != null) - { - ViewBox = ReadRectangle(viewBoxA.Value); - } - - if (CanvasSize.IsEmpty) - { - // get the user dimensions - var widthA = svg.Attribute("width"); - var heightA = svg.Attribute("height"); - var width = ReadNumber(widthA); - var height = ReadNumber(heightA); - var size = new SKSize(width, height); - - if (widthA == null) - { - size.Width = ViewBox.Width; - } - else if (widthA.Value.Contains("%")) - { - size.Width *= ViewBox.Width; - } - if (heightA == null) - { - size.Height = ViewBox.Height; - } - else if (heightA != null && heightA.Value.Contains("%")) - { - size.Height *= ViewBox.Height; - } - - // set the property - CanvasSize = size; - } - - // create the picture from the elements - using (var recorder = new SKPictureRecorder()) - using (var canvas = recorder.BeginRecording(SKRect.Create(CanvasSize))) - { - // if there is no viewbox, then we don't do anything, otherwise - // scale the SVG dimensions to fit inside the user dimensions - if (!ViewBox.IsEmpty && (ViewBox.Width != CanvasSize.Width || ViewBox.Height != CanvasSize.Height)) - { - if (preserveAspectRatio == "none") - { - canvas.Scale(CanvasSize.Width / ViewBox.Width, CanvasSize.Height / ViewBox.Height); - } - else - { - // TODO: just center scale for now - var scale = Math.Min(CanvasSize.Width / ViewBox.Width, CanvasSize.Height / ViewBox.Height); - var centered = SKRect.Create(CanvasSize).AspectFit(ViewBox.Size); - canvas.Translate(centered.Left, centered.Top); - canvas.Scale(scale, scale); - } - } - - // translate the canvas by the viewBox origin - canvas.Translate(-ViewBox.Left, -ViewBox.Top); - - // if the viewbox was specified, then crop to that - if (!ViewBox.IsEmpty) - { - canvas.ClipRect(ViewBox); - } - - LoadElements(svg.Elements(), canvas); - - Picture = recorder.EndRecording(); - } - - return Picture; - } - - private void LoadElements(IEnumerable elements, SKCanvas canvas) - { - foreach (var e in elements) - { - ReadElement(e, canvas); - } - } - - private void ReadElement(XElement e, SKCanvas canvas) - { - ReadElement(e, canvas, null, CreatePaint()); - } - - private void ReadElement(XElement e, SKCanvas canvas, SKPaint stroke, SKPaint fill) - { - // transform matrix - var transform = ReadTransform(e.Attribute("transform")?.Value ?? string.Empty); - canvas.Save(); - canvas.Concat(ref transform); - - // SVG element - var elementName = e.Name.LocalName; - var isGroup = elementName == "g"; - - // read style - var style = ReadPaints(e, ref stroke, ref fill, isGroup); - - // parse elements - switch (elementName) - { - case "text": - if (stroke != null || fill != null) - { - ReadText(e, canvas, stroke?.Clone(), fill?.Clone()); - } - break; - case "rect": - if (stroke != null || fill != null) - { - var x = ReadNumber(e.Attribute("x")); - var y = ReadNumber(e.Attribute("y")); - var width = ReadNumber(e.Attribute("width")); - var height = ReadNumber(e.Attribute("height")); - var rx = ReadNumber(e.Attribute("rx")); - var ry = ReadNumber(e.Attribute("ry")); - var rect = SKRect.Create(x, y, width, height); - if (rx > 0 || ry > 0) - { - if (fill != null) - canvas.DrawRoundRect(rect, rx, ry, fill); - if (stroke != null) - canvas.DrawRoundRect(rect, rx, ry, stroke); - } - else - { - if (fill != null) - canvas.DrawRect(rect, fill); - if (stroke != null) - canvas.DrawRect(rect, stroke); - } - } - break; - case "ellipse": - if (stroke != null || fill != null) - { - var cx = ReadNumber(e.Attribute("cx")); - var cy = ReadNumber(e.Attribute("cy")); - var rx = ReadNumber(e.Attribute("rx")); - var ry = ReadNumber(e.Attribute("ry")); - if (fill != null) - canvas.DrawOval(cx, cy, rx, ry, fill); - if (stroke != null) - canvas.DrawOval(cx, cy, rx, ry, stroke); - } - break; - case "circle": - if (stroke != null || fill != null) - { - var cx = ReadNumber(e.Attribute("cx")); - var cy = ReadNumber(e.Attribute("cy")); - var rr = ReadNumber(e.Attribute("r")); - if (fill != null) - canvas.DrawCircle(cx, cy, rr, fill); - if (stroke != null) - canvas.DrawCircle(cx, cy, rr, stroke); - } - break; - case "path": - if (stroke != null || fill != null) - { - var d = e.Attribute("d")?.Value; - if (!string.IsNullOrWhiteSpace(d)) - { - var path = SKPath.ParseSvgPathData(d); - if (fill != null) - canvas.DrawPath(path, fill); - if (stroke != null) - canvas.DrawPath(path, stroke); - } - } - break; - case "polygon": - case "polyline": - if (stroke != null || fill != null) - { - var close = elementName == "polygon"; - var p = e.Attribute("points")?.Value; - if (!string.IsNullOrWhiteSpace(p)) - { - var path = ReadPolyPath(p, close); - if (fill != null) - canvas.DrawPath(path, fill); - if (stroke != null) - canvas.DrawPath(path, stroke); - } - } - break; - case "g": - if (e.HasElements) - { - // get current group opacity - float groupOpacity = ReadOpacity(style); - if (groupOpacity != 1.0f) - { - var opacity = (byte)(255 * groupOpacity); - var opacityPaint = new SKPaint { Color = SKColors.Black.WithAlpha(opacity) }; - - // apply the opacity - canvas.SaveLayer(opacityPaint); - } - - foreach (var gElement in e.Elements()) - { - ReadElement(gElement, canvas, stroke?.Clone(), fill?.Clone()); - } - - // restore state - if (groupOpacity != 1.0f) - canvas.Restore(); - } - break; - case "use": - if (e.HasAttributes) - { - var href = ReadHref(e); - if (href != null) - { - // TODO: copy/process other attributes - - var x = ReadNumber(e.Attribute("x")); - var y = ReadNumber(e.Attribute("y")); - var useTransform = SKMatrix.MakeTranslation(x, y); - - canvas.Save(); - canvas.Concat(ref useTransform); - - ReadElement(href, canvas, stroke?.Clone(), fill?.Clone()); - - canvas.Restore(); - } - } - break; - case "line": - if (stroke != null) - { - var x1 = ReadNumber(e.Attribute("x1")); - var x2 = ReadNumber(e.Attribute("x2")); - var y1 = ReadNumber(e.Attribute("y1")); - var y2 = ReadNumber(e.Attribute("y2")); - canvas.DrawLine(x1, y1, x2, y2, stroke); - } - break; - case "switch": - if (e.HasElements) - { - foreach (var ee in e.Elements()) - { - var requiredFeatures = ee.Attribute("requiredFeatures"); - var requiredExtensions = ee.Attribute("requiredExtensions"); - var systemLanguage = ee.Attribute("systemLanguage"); - - // TODO: evaluate requiredFeatures, requiredExtensions and systemLanguage - var isVisible = - requiredFeatures == null && - requiredExtensions == null && - systemLanguage == null; - - if (isVisible) - { - ReadElement(ee, canvas, stroke?.Clone(), fill?.Clone()); - } - } - } - break; - case "defs": - case "title": - case "desc": - case "description": - // already read earlier - break; - default: - LogOrThrow($"SVG element '{elementName}' is not supported"); - break; - } - - // restore matrix - canvas.Restore(); - } - - private void ReadText(XElement e, SKCanvas canvas, SKPaint stroke, SKPaint fill) - { - // TODO: stroke - - var x = ReadNumber(e.Attribute("x")); - var y = ReadNumber(e.Attribute("y")); - var xy = new SKPoint(x, y); - - ReadFontAttributes(e, fill); - fill.TextAlign = ReadTextAlignment(e); - - ReadTextSpans(e, canvas, xy, stroke, fill); - } - - private void ReadTextSpans(XElement e, SKCanvas canvas, SKPoint location, SKPaint stroke, SKPaint fill) - { - var nodes = e.Nodes().ToArray(); - for (int i = 0; i < nodes.Length; i++) - { - var c = nodes[i]; - bool isFirst = i == 0; - bool isLast = i == nodes.Length - 1; - - if (c.NodeType == XmlNodeType.Text) - { - // TODO: check for preserve whitespace - - var textSegments = ((XText)c).Value.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries); - var count = textSegments.Length; - if (count > 0) - { - if (isFirst) - textSegments[0] = textSegments[0].TrimStart(); - if (isLast) - textSegments[count - 1] = textSegments[count - 1].TrimEnd(); - var text = WSRe.Replace(string.Concat(textSegments), " "); - - canvas.DrawText(text, location.X, location.Y, fill); - - location.X += fill.MeasureText(text); - } - } - else if (c.NodeType == XmlNodeType.Element) - { - var ce = (XElement)c; - if (ce.Name.LocalName == "tspan") - { - var spanFill = fill.Clone(); - - // the current span may want to change the cursor position - location.X = ReadOptionalNumber(ce.Attribute("x")) ?? location.X; - location.Y = ReadOptionalNumber(ce.Attribute("y")) ?? location.Y; - - ReadFontAttributes(ce, spanFill); - - var text = ce.Value.Trim(); - - canvas.DrawText(text, location.X, location.Y, spanFill); - - location.X += spanFill.MeasureText(text); - } - } - } - } - - private void ReadFontAttributes(XElement e, SKPaint paint) - { - var fontStyle = ReadStyle(e); - - string ffamily; - if (!fontStyle.TryGetValue("font-family", out ffamily) || string.IsNullOrWhiteSpace(ffamily)) - ffamily = paint.Typeface?.FamilyName; - var fweight = ReadFontWeight(fontStyle, paint.Typeface?.FontWeight ?? (int)SKFontStyleWeight.Normal); - var fwidth = ReadFontWidth(fontStyle, paint.Typeface?.FontWidth ?? (int)SKFontStyleWidth.Normal); - var fstyle = ReadFontStyle(fontStyle, paint.Typeface?.FontSlant ?? SKFontStyleSlant.Upright); - paint.Typeface = SKTypeface.FromFamilyName(ffamily, fweight, fwidth, fstyle); - - string fsize; - if (fontStyle.TryGetValue("font-size", out fsize) && !string.IsNullOrWhiteSpace(fsize)) - paint.TextSize = ReadNumber(fsize); - } - - private static SKFontStyleSlant ReadFontStyle(Dictionary fontStyle, SKFontStyleSlant defaultStyle = SKFontStyleSlant.Upright) - { - SKFontStyleSlant style = defaultStyle; - - string fstyle; - if (fontStyle.TryGetValue("font-style", out fstyle) && !string.IsNullOrWhiteSpace(fstyle)) - { - switch (fstyle) - { - case "italic": - style = SKFontStyleSlant.Italic; - break; - case "oblique": - style = SKFontStyleSlant.Oblique; - break; - case "normal": - style = SKFontStyleSlant.Upright; - break; - default: - style = defaultStyle; - break; - } - } - - return style; - } - - private int ReadFontWidth(Dictionary fontStyle, int defaultWidth = (int)SKFontStyleWidth.Normal) - { - int width = defaultWidth; - - string fwidth; - if (fontStyle.TryGetValue("font-stretch", out fwidth) && !string.IsNullOrWhiteSpace(fwidth) && !int.TryParse(fwidth, out width)) - { - switch (fwidth) - { - case "ultra-condensed": - width = (int)SKFontStyleWidth.UltraCondensed; - break; - case "extra-condensed": - width = (int)SKFontStyleWidth.ExtraCondensed; - break; - case "condensed": - width = (int)SKFontStyleWidth.Condensed; - break; - case "semi-condensed": - width = (int)SKFontStyleWidth.SemiCondensed; - break; - case "normal": - width = (int)SKFontStyleWidth.Normal; - break; - case "semi-expanded": - width = (int)SKFontStyleWidth.SemiExpanded; - break; - case "expanded": - width = (int)SKFontStyleWidth.Expanded; - break; - case "extra-expanded": - width = (int)SKFontStyleWidth.ExtraExpanded; - break; - case "ultra-expanded": - width = (int)SKFontStyleWidth.UltraExpanded; - break; - case "wider": - width = width + 1; - break; - case "narrower": - width = width - 1; - break; - default: - width = defaultWidth; - break; - } - } - - return Math.Min(Math.Max((int)SKFontStyleWidth.UltraCondensed, width), (int)SKFontStyleWidth.UltraExpanded); - } - - private int ReadFontWeight(Dictionary fontStyle, int defaultWeight = (int)SKFontStyleWeight.Normal) - { - int weight = defaultWeight; - - string fweight; - if (fontStyle.TryGetValue("font-weight", out fweight) && !string.IsNullOrWhiteSpace(fweight) && !int.TryParse(fweight, out weight)) - { - switch (fweight) - { - case "normal": - weight = (int)SKFontStyleWeight.Normal; - break; - case "bold": - weight = (int)SKFontStyleWeight.Bold; - break; - case "bolder": - weight = weight + 100; - break; - case "lighter": - weight = weight - 100; - break; - default: - weight = defaultWeight; - break; - } - } - - return Math.Min(Math.Max((int)SKFontStyleWeight.Thin, weight), (int)SKFontStyleWeight.ExtraBlack); - } - - private void LogOrThrow(string message) - { - if (ThrowOnUnsupportedElement) - throw new NotSupportedException(message); - else - Debug.WriteLine(message); - } - - private string GetString(Dictionary style, string name, string defaultValue = "") - { - string v; - if (style.TryGetValue(name, out v)) - return v; - return defaultValue; - } - - private Dictionary ReadStyle(string style) - { - var d = new Dictionary(); - var kvs = style.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); - foreach (var kv in kvs) - { - var m = keyValueRe.Match(kv); - if (m.Success) - { - var k = m.Groups[1].Value; - var v = m.Groups[2].Value; - d[k] = v; - } - } - return d; - } - - private Dictionary ReadStyle(XElement e) - { - // get from local attributes - var dic = e.Attributes().ToDictionary(k => k.Name.LocalName, v => v.Value); - - var style = e.Attribute("style")?.Value; - if (!string.IsNullOrWhiteSpace(style)) - { - // get from stlye attribute - var styleDic = ReadStyle(style); - - // overwrite - foreach (var pair in styleDic) - dic[pair.Key] = pair.Value; - } - - return dic; - } - - private Dictionary ReadPaints(XElement e, ref SKPaint stroke, ref SKPaint fill, bool isGroup) - { - var style = ReadStyle(e); - ReadPaints(style, ref stroke, ref fill, isGroup); - return style; - } - - private void ReadPaints(Dictionary style, ref SKPaint strokePaint, ref SKPaint fillPaint, bool isGroup) - { - // get current element opacity, but ignore for groups (special case) - float elementOpacity = isGroup ? 1.0f : ReadOpacity(style); - - // stroke - var stroke = GetString(style, "stroke").Trim(); - if (stroke.Equals("none", StringComparison.OrdinalIgnoreCase)) - { - strokePaint = null; - } - else - { - if (string.IsNullOrEmpty(stroke)) - { - // no change - } - else - { - if (strokePaint == null) - strokePaint = CreatePaint(true); - - SKColor color; - if (SKColor.TryParse(stroke, out color)) - { - // preserve alpha - if (color.Alpha == 255) - strokePaint.Color = color.WithAlpha(strokePaint.Color.Alpha); - else - strokePaint.Color = color; - } - } - - // stroke attributes - var strokeWidth = GetString(style, "stroke-width"); - if (!string.IsNullOrWhiteSpace(strokeWidth)) - { - if (strokePaint == null) - strokePaint = CreatePaint(true); - strokePaint.StrokeWidth = ReadNumber(strokeWidth); - } - - var strokeOpacity = GetString(style, "stroke-opacity"); - if (!string.IsNullOrWhiteSpace(strokeOpacity)) - { - if (strokePaint == null) - strokePaint = CreatePaint(true); - strokePaint.Color = strokePaint.Color.WithAlpha((byte)(ReadNumber(strokeOpacity) * 255)); - } - - if (strokePaint != null) - { - strokePaint.Color = strokePaint.Color.WithAlpha((byte)(strokePaint.Color.Alpha * elementOpacity)); - } - } - - // fill - var fill = GetString(style, "fill").Trim(); - if (fill.Equals("none", StringComparison.OrdinalIgnoreCase)) - { - fillPaint = null; - } - else - { - if (string.IsNullOrEmpty(fill)) - { - // no change - } - else - { - if (fillPaint == null) - fillPaint = CreatePaint(); - - SKColor color; - if (SKColor.TryParse(fill, out color)) - { - // preserve alpha - if (color.Alpha == 255) - fillPaint.Color = color.WithAlpha(fillPaint.Color.Alpha); - else - fillPaint.Color = color; - } - else - { - var read = false; - var urlM = fillUrlRe.Match(fill); - if (urlM.Success) - { - var id = urlM.Groups[1].Value.Trim(); - - XElement defE; - if (defs.TryGetValue(id, out defE)) - { - var gradientShader = ReadGradient(defE); - if (gradientShader != null) - { - // TODO: multiple shaders - - fillPaint.Shader = gradientShader; - read = true; - } - // else try another type (eg: image) - } - else - { - LogOrThrow($"Invalid fill url reference: {id}"); - } - } - - if (!read) - { - LogOrThrow($"Unsupported fill: {fill}"); - } - } - } - - // fill attributes - var fillOpacity = GetString(style, "fill-opacity"); - if (!string.IsNullOrWhiteSpace(fillOpacity)) - { - if (fillPaint == null) - fillPaint = CreatePaint(); - - fillPaint.Color = fillPaint.Color.WithAlpha((byte)(ReadNumber(fillOpacity) * 255)); - } - - if (fillPaint != null) - { - fillPaint.Color = fillPaint.Color.WithAlpha((byte)(fillPaint.Color.Alpha * elementOpacity)); - } - } - } - - private SKPaint CreatePaint(bool stroke = false) - { - return new SKPaint - { - IsAntialias = true, - IsStroke = stroke, - Color = SKColors.Black - }; - } - - private SKMatrix ReadTransform(string raw) - { - var t = SKMatrix.MakeIdentity(); - - if (string.IsNullOrWhiteSpace(raw)) - { - return t; - } - - var calls = raw.Trim().Split(new[] { ')' }, StringSplitOptions.RemoveEmptyEntries); - foreach (var c in calls) - { - var args = c.Split(new[] { '(', ',', ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); - var nt = SKMatrix.MakeIdentity(); - switch (args[0]) - { - case "matrix": - if (args.Length == 7) - { - nt.Values = new float[] - { - ReadNumber(args[1]), ReadNumber(args[3]), ReadNumber(args[5]), - ReadNumber(args[2]), ReadNumber(args[4]), ReadNumber(args[6]), - 0, 0, 1 - }; - } - else - { - LogOrThrow($"Matrices are expected to have 6 elements, this one has {args.Length - 1}"); - } - break; - case "translate": - if (args.Length >= 3) - { - nt = SKMatrix.MakeTranslation(ReadNumber(args[1]), ReadNumber(args[2])); - } - else if (args.Length >= 2) - { - nt = SKMatrix.MakeTranslation(ReadNumber(args[1]), 0); - } - break; - case "scale": - if (args.Length >= 3) - { - nt = SKMatrix.MakeScale(ReadNumber(args[1]), ReadNumber(args[2])); - } - else if (args.Length >= 2) - { - var sx = ReadNumber(args[1]); - nt = SKMatrix.MakeScale(sx, sx); - } - break; - case "rotate": - var a = ReadNumber(args[1]); - if (args.Length >= 4) - { - var x = ReadNumber(args[2]); - var y = ReadNumber(args[3]); - var t1 = SKMatrix.MakeTranslation(x, y); - var t2 = SKMatrix.MakeRotationDegrees(a); - var t3 = SKMatrix.MakeTranslation(-x, -y); - SKMatrix.Concat(ref nt, ref t1, ref t2); - SKMatrix.Concat(ref nt, ref nt, ref t3); - } - else - { - nt = SKMatrix.MakeRotationDegrees(a); - } - break; - default: - LogOrThrow($"Can't transform {args[0]}"); - break; - } - SKMatrix.Concat(ref t, ref t, ref nt); - } - - return t; - } - - private SKPath ReadPolyPath(string pointsData, bool closePath) - { - var path = new SKPath(); - var points = pointsData.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); - for (int i = 0; i < points.Length; i++) - { - var point = points[i]; - var xy = point.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); - var x = ReadNumber(xy[0]); - var y = ReadNumber(xy[1]); - if (i == 0) - { - path.MoveTo(x, y); - } - else - { - path.LineTo(x, y); - } - } - if (closePath) - { - path.Close(); - } - return path; - } - - private SKTextAlign ReadTextAlignment(XElement element) - { - string value = null; - if (element != null) - { - var attrib = element.Attribute("text-anchor"); - if (attrib != null && !string.IsNullOrWhiteSpace(attrib.Value)) - value = attrib.Value; - else - { - var style = element.Attribute("style"); - if (style != null && !string.IsNullOrWhiteSpace(style.Value)) - { - value = GetString(ReadStyle(style.Value), "text-anchor"); - } - } - } - - switch (value) - { - case "end": - return SKTextAlign.Right; - case "middle": - return SKTextAlign.Center; - default: - return SKTextAlign.Left; - } - } - - private SKShader ReadGradient(XElement defE) - { - switch (defE.Name.LocalName) - { - case "linearGradient": - return ReadLinearGradient(defE); - case "radialGradient": - return ReadRadialGradient(defE); - } - return null; - } - - private SKShader ReadRadialGradient(XElement e) - { - var centerX = ReadNumber(e.Attribute("cx")); - var centerY = ReadNumber(e.Attribute("cy")); - //var focusX = ReadOptionalNumber(e.Attribute("fx")) ?? centerX; - //var focusY = ReadOptionalNumber(e.Attribute("fy")) ?? centerY; - var radius = ReadNumber(e.Attribute("r")); - //var absolute = e.Attribute("gradientUnits")?.Value == "userSpaceOnUse"; - var tileMode = ReadSpreadMethod(e); - var stops = ReadStops(e); - - // TODO: check gradientTransform attribute - // TODO: use absolute - - return SKShader.CreateRadialGradient( - new SKPoint(centerX, centerY), - radius, - stops.Values.ToArray(), - stops.Keys.ToArray(), - tileMode); - } - - private SKShader ReadLinearGradient(XElement e) - { - var startX = ReadNumber(e.Attribute("x1")); - var startY = ReadNumber(e.Attribute("y1")); - var endX = ReadNumber(e.Attribute("x2")); - var endY = ReadNumber(e.Attribute("y2")); - //var absolute = e.Attribute("gradientUnits")?.Value == "userSpaceOnUse"; - var tileMode = ReadSpreadMethod(e); - var stops = ReadStops(e); - - // TODO: check gradientTransform attribute - // TODO: use absolute - - return SKShader.CreateLinearGradient( - new SKPoint(startX, startY), - new SKPoint(endX, endY), - stops.Values.ToArray(), - stops.Keys.ToArray(), - tileMode); - } - - private static SKShaderTileMode ReadSpreadMethod(XElement e) - { - var repeat = e.Attribute("spreadMethod")?.Value; - switch (repeat) - { - case "reflect": - return SKShaderTileMode.Mirror; - case "repeat": - return SKShaderTileMode.Repeat; - case "pad": - default: - return SKShaderTileMode.Clamp; - } - } - - private XElement ReadDefinition(XElement e) - { - var union = new XElement(e.Name); - union.Add(e.Elements()); - union.Add(e.Attributes()); - - var child = ReadHref(e); - if (child != null) - { - union.Add(child.Elements()); - union.Add(child.Attributes().Where(a => union.Attribute(a.Name) == null)); - } - - return union; - } - - private XElement ReadHref(XElement e) - { - var href = e.Attribute(xlink + "href")?.Value?.Substring(1); - XElement child; - if (string.IsNullOrEmpty(href) || !defs.TryGetValue(href, out child)) - { - child = null; - } - return child; - } - - private SortedDictionary ReadStops(XElement e) - { - var stops = new SortedDictionary(); - - var ns = e.Name.Namespace; - foreach (var se in e.Elements(ns + "stop")) - { - var style = ReadStyle(se); - - var offset = ReadNumber(style["offset"]); - var color = SKColors.Black; - byte alpha = 255; - - string stopColor; - if (style.TryGetValue("stop-color", out stopColor)) - { - // preserve alpha - if (SKColor.TryParse(stopColor, out color) && color.Alpha == 255) - alpha = color.Alpha; - } - - string stopOpacity; - if (style.TryGetValue("stop-opacity", out stopOpacity)) - { - alpha = (byte)(ReadNumber(stopOpacity) * 255); - } - - color = color.WithAlpha(alpha); - stops[offset] = color; - } - - return stops; - } - - private float ReadOpacity(Dictionary style) - { - return Math.Min(Math.Max(0.0f, ReadNumber(style, "opacity", 1.0f)), 1.0f); - } - - private float ReadNumber(Dictionary style, string key, float defaultValue) - { - float value = defaultValue; - string strValue; - if (style.TryGetValue(key, out strValue)) - { - value = ReadNumber(strValue); - } - return value; - } - - private float ReadNumber(string raw) - { - if (string.IsNullOrWhiteSpace(raw)) - return 0; - - var s = raw.Trim(); - var m = 1.0f; - - if (unitRe.IsMatch(s)) - { - if (s.EndsWith("in", StringComparison.Ordinal)) - { - m = PixelsPerInch; - } - else if (s.EndsWith("cm", StringComparison.Ordinal)) - { - m = PixelsPerInch / 2.54f; - } - else if (s.EndsWith("mm", StringComparison.Ordinal)) - { - m = PixelsPerInch / 25.4f; - } - else if (s.EndsWith("pt", StringComparison.Ordinal)) - { - m = PixelsPerInch / 72.0f; - } - else if (s.EndsWith("pc", StringComparison.Ordinal)) - { - m = PixelsPerInch / 6.0f; - } - s = s.Substring(0, s.Length - 2); - } - else if (percRe.IsMatch(s)) - { - s = s.Substring(0, s.Length - 1); - m = 0.01f; - } - - float v; - if (!float.TryParse(s, NumberStyles.Float, icult, out v)) - { - v = 0; - } - return m * v; - } - - private float ReadNumber(XAttribute a) => ReadNumber(a?.Value); - - private float? ReadOptionalNumber(XAttribute a) => a == null ? (float?)null : ReadNumber(a.Value); - - private SKRect ReadRectangle(string s) - { - var r = new SKRect(); - var p = s.Split(WS, StringSplitOptions.RemoveEmptyEntries); - if (p.Length > 0) - r.Left = ReadNumber(p[0]); - if (p.Length > 1) - r.Top = ReadNumber(p[1]); - if (p.Length > 2) - r.Right = r.Left + ReadNumber(p[2]); - if (p.Length > 3) - r.Bottom = r.Top + ReadNumber(p[3]); - return r; - } - } -} diff --git a/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SkiaSharp.Svg.Shared.projitems b/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SkiaSharp.Svg.Shared.projitems deleted file mode 100644 index 7f6cba3c..00000000 --- a/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SkiaSharp.Svg.Shared.projitems +++ /dev/null @@ -1,15 +0,0 @@ - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - true - b201e760-db91-485c-a99a-814bded90bdb - - - SkiaSharp - - - - - - \ No newline at end of file diff --git a/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SkiaSharp.Svg.Shared.shproj b/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SkiaSharp.Svg.Shared.shproj deleted file mode 100644 index 4d1063ad..00000000 --- a/source/SkiaSharp.Svg/SkiaSharp.Svg.Shared/SkiaSharp.Svg.Shared.shproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - b201e760-db91-485c-a99a-814bded90bdb - 14.0 - - - - - - - - diff --git a/source/SkiaSharp.Svg/SkiaSharp.Svg/Properties/AssemblyInfo.cs b/source/SkiaSharp.Svg/SkiaSharp.Svg/Properties/AssemblyInfo.cs deleted file mode 100644 index 5f282702..00000000 --- a/source/SkiaSharp.Svg/SkiaSharp.Svg/Properties/AssemblyInfo.cs +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/source/SkiaSharp.Svg/SkiaSharp.Svg/SkiaSharp.Svg.csproj b/source/SkiaSharp.Svg/SkiaSharp.Svg/SkiaSharp.Svg.csproj deleted file mode 100644 index 3b9d704a..00000000 --- a/source/SkiaSharp.Svg/SkiaSharp.Svg/SkiaSharp.Svg.csproj +++ /dev/null @@ -1,57 +0,0 @@ - - - - - 10.0 - Debug - AnyCPU - {04C4399A-6740-4733-B6B7-F968232A76C8} - Library - Properties - SkiaSharp - SkiaSharp.Svg - en-US - 512 - {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Profile78 - v4.5 - true - ..\..\..\mono.snk - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - {7aa90628-2fdd-4585-af2f-cc51cfa8b52a} - SkiaSharp.Portable - - - - - - - - - \ No newline at end of file diff --git a/source/SkiaSharpSource.Linux.sln b/source/SkiaSharpSource.Linux.sln index 394253c6..93881c6c 100644 --- a/source/SkiaSharpSource.Linux.sln +++ b/source/SkiaSharpSource.Linux.sln @@ -7,18 +7,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Portable", "..\bi EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp", "SkiaSharp", "{C335869B-7CC8-4239-B4A5-8031AA9758D3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Svg", "SkiaSharp.Svg", "{F9C7D51F-468C-4E58-BB75-2317DB99C8A7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Svg", "SkiaSharp.Svg\SkiaSharp.Svg\SkiaSharp.Svg.csproj", "{04C4399A-6740-4733-B6B7-F968232A76C8}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Svg.Shared", "SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.shproj", "{B201E760-DB91-485C-A99A-814BDED90BDB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Extended", "SkiaSharp.Extended", "{CD6A8CE6-9521-4ADB-B49C-77E8B2A8441F}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Extended.Shared", "SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.shproj", "{E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Extended", "SkiaSharp.Extended\SkiaSharp.Extended\SkiaSharp.Extended.csproj", "{FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HarfBuzzSharp", "HarfBuzzSharp", "{815C2429-8C88-4C09-B6AB-A916040F9FEF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.HarfBuzz", "SkiaSharp.HarfBuzz", "{87D751FF-6347-40FF-8EC5-7CAD06BD5973}" @@ -33,11 +21,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Workbooks", "Skia EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution - SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{04c4399a-6740-4733-b6b7-f968232a76c8}*SharedItemsImports = 4 - SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{b201e760-db91-485c-a99a-814bded90bdb}*SharedItemsImports = 13 SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.Shared\SkiaSharp.HarfBuzz.Shared.projitems*{c3e63b2d-95d4-4c3f-b10f-7a0aacf94980}*SharedItemsImports = 13 - SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{e3290ce6-0ada-486b-9bab-8bcf07f9be45}*SharedItemsImports = 13 - SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{fea1fec9-950c-46c0-9eb0-a515e0ab8f19}*SharedItemsImports = 4 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -48,14 +32,6 @@ Global {7AA90628-2FDD-4585-AF2F-CC51CFA8B52A}.Debug|Any CPU.Build.0 = Debug|Any CPU {7AA90628-2FDD-4585-AF2F-CC51CFA8B52A}.Release|Any CPU.ActiveCfg = Release|Any CPU {7AA90628-2FDD-4585-AF2F-CC51CFA8B52A}.Release|Any CPU.Build.0 = Release|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Release|Any CPU.Build.0 = Release|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Release|Any CPU.Build.0 = Release|Any CPU {4DFBD9A6-EA81-4E26-9753-A9C7A600EA34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4DFBD9A6-EA81-4E26-9753-A9C7A600EA34}.Debug|Any CPU.Build.0 = Debug|Any CPU {4DFBD9A6-EA81-4E26-9753-A9C7A600EA34}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -74,10 +50,6 @@ Global EndGlobalSection GlobalSection(NestedProjects) = preSolution {7AA90628-2FDD-4585-AF2F-CC51CFA8B52A} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} - {04C4399A-6740-4733-B6B7-F968232A76C8} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} - {B201E760-DB91-485C-A99A-814BDED90BDB} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} - {E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45} = {CD6A8CE6-9521-4ADB-B49C-77E8B2A8441F} - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19} = {CD6A8CE6-9521-4ADB-B49C-77E8B2A8441F} {4DFBD9A6-EA81-4E26-9753-A9C7A600EA34} = {815C2429-8C88-4C09-B6AB-A916040F9FEF} {C3E63B2D-95D4-4C3F-B10F-7A0AACF94980} = {87D751FF-6347-40FF-8EC5-7CAD06BD5973} {7CAD1912-05A5-42E5-B7BA-81BB051F0566} = {87D751FF-6347-40FF-8EC5-7CAD06BD5973} diff --git a/source/SkiaSharpSource.Mac.sln b/source/SkiaSharpSource.Mac.sln index 2d26d82e..cfdd66d6 100644 --- a/source/SkiaSharpSource.Mac.sln +++ b/source/SkiaSharpSource.Mac.sln @@ -41,20 +41,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp", "SkiaSharp", "{ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views", "SkiaSharp.Views", "{F19E1537-81B2-4D4F-A69E-78DC73ACC141}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Svg", "SkiaSharp.Svg", "{F9C7D51F-468C-4E58-BB75-2317DB99C8A7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Svg", "SkiaSharp.Svg\SkiaSharp.Svg\SkiaSharp.Svg.csproj", "{04C4399A-6740-4733-B6B7-F968232A76C8}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.Forms", "SkiaSharp.Views.Forms", "{EB592D4C-48E1-498D-8A9F-3AEA0C7FAB30}" EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Svg.Shared", "SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.shproj", "{B201E760-DB91-485C-A99A-814BDED90BDB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Extended", "SkiaSharp.Extended", "{8570A43F-3AD6-4EC4-8CD1-92EF9AC23916}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Extended.Shared", "SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.shproj", "{E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Extended", "SkiaSharp.Extended\SkiaSharp.Extended\SkiaSharp.Extended.csproj", "{FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}" -EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Views.Forms.Native.Shared", "SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Native.Shared\SkiaSharp.Views.Forms.Native.Shared.shproj", "{CEBD25FD-DD4F-4D5F-B809-D50D02176F41}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Views.Forms.Mac", "SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Mac\SkiaSharp.Views.Forms.Mac.csproj", "{DA5DA4D8-4885-4AF2-96BB-AE803C344AB0}" @@ -85,7 +73,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Workbooks", "Skia EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution - SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{04c4399a-6740-4733-b6b7-f968232a76c8}*SharedItemsImports = 4 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 SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Native.Shared\SkiaSharp.Views.Forms.Native.Shared.projitems*{2f94f024-1841-47e8-b521-74aa4e3eba54}*SharedItemsImports = 4 @@ -108,7 +95,6 @@ Global SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.projitems*{809a15dc-e675-4a24-83fa-df13160f7e4c}*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.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{b201e760-db91-485c-a99a-814bded90bdb}*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 @@ -116,11 +102,9 @@ Global 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.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{e3290ce6-0ada-486b-9bab-8bcf07f9be45}*SharedItemsImports = 13 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.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{fea1fec9-950c-46c0-9eb0-a515e0ab8f19}*SharedItemsImports = 4 SkiaSharp.Views\SkiaSharp.Views.AppleiOS\SkiaSharp.Views.AppleiOS.projitems*{ff4c9f9f-7a6a-44d1-8338-d30e39e4e9d4}*SharedItemsImports = 13 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -176,14 +160,6 @@ Global {7AA90628-2FDD-4585-AF2F-CC51CFA8B52A}.Debug|Any CPU.Build.0 = Debug|Any CPU {7AA90628-2FDD-4585-AF2F-CC51CFA8B52A}.Release|Any CPU.ActiveCfg = Release|Any CPU {7AA90628-2FDD-4585-AF2F-CC51CFA8B52A}.Release|Any CPU.Build.0 = Release|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Release|Any CPU.Build.0 = Release|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Release|Any CPU.Build.0 = Release|Any CPU {DA5DA4D8-4885-4AF2-96BB-AE803C344AB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DA5DA4D8-4885-4AF2-96BB-AE803C344AB0}.Debug|Any CPU.Build.0 = Debug|Any CPU {DA5DA4D8-4885-4AF2-96BB-AE803C344AB0}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -238,10 +214,6 @@ Global {5180E370-A455-42BB-99F9-97BD269B8A52} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} {4588A759-3853-49B8-8A68-6C7917BE9220} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} {7AA90628-2FDD-4585-AF2F-CC51CFA8B52A} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} - {04C4399A-6740-4733-B6B7-F968232A76C8} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} - {B201E760-DB91-485C-A99A-814BDED90BDB} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} - {E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45} = {8570A43F-3AD6-4EC4-8CD1-92EF9AC23916} - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19} = {8570A43F-3AD6-4EC4-8CD1-92EF9AC23916} {CEBD25FD-DD4F-4D5F-B809-D50D02176F41} = {EB592D4C-48E1-498D-8A9F-3AEA0C7FAB30} {DA5DA4D8-4885-4AF2-96BB-AE803C344AB0} = {EB592D4C-48E1-498D-8A9F-3AEA0C7FAB30} {6F8349DC-90AC-441D-8B8B-BE623F46BE6D} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} diff --git a/source/SkiaSharpSource.NetStandard.sln b/source/SkiaSharpSource.NetStandard.sln index 9d325f1e..40f048fd 100644 --- a/source/SkiaSharpSource.NetStandard.sln +++ b/source/SkiaSharpSource.NetStandard.sln @@ -7,20 +7,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Binding", "..\binding\Bindi EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp", "SkiaSharp", "{C335869B-7CC8-4239-B4A5-8031AA9758D3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Svg", "SkiaSharp.Svg", "{F9C7D51F-468C-4E58-BB75-2317DB99C8A7}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.NetStandard", "..\binding\SkiaSharp.NetStandard\SkiaSharp.NetStandard.csproj", "{4E0924F8-D546-4428-9412-4B9411FBA5FF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Svg.NetStandard", "SkiaSharp.Svg\SkiaSharp.Svg.NetStandard\SkiaSharp.Svg.NetStandard.csproj", "{E19FFAF3-31A4-4A52-8460-DE0C00221439}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Svg.Shared", "SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.shproj", "{B201E760-DB91-485C-A99A-814BDED90BDB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Extended", "SkiaSharp.Extended", "{1DE47CE5-7542-40CD-89ED-296CB9B212EB}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Extended.Shared", "SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.shproj", "{E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Extended.NetStandard", "SkiaSharp.Extended\SkiaSharp.Extended.NetStandard\SkiaSharp.Extended.NetStandard.csproj", "{36456F7F-388A-49E1-B9C5-CC2DEC82D2C2}" -EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Binding.Shared", "..\binding\Binding.Shared\Binding.Shared.shproj", "{6F8349DC-90AC-441D-8B8B-BE623F46BE6D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HarfBuzzSharp", "HarfBuzzSharp", "{051E7B4F-DF9B-4920-A3BC-E812933FCB24}" @@ -38,14 +26,10 @@ EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution ..\binding\HarfBuzzSharp.Shared\HarfBuzzSharp.Shared.projitems*{1aaa8f60-6138-4dfe-b240-5a0f3fb87e0f}*SharedItemsImports = 13 - SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{36456f7f-388a-49e1-b9c5-cc2dec82d2c2}*SharedItemsImports = 4 ..\binding\Binding\Binding.projitems*{4e0924f8-d546-4428-9412-4b9411fba5ff}*SharedItemsImports = 4 ..\binding\Binding.Shared\Binding.Shared.projitems*{6f8349dc-90ac-441d-8b8b-be623f46be6d}*SharedItemsImports = 13 ..\binding\Binding\Binding.projitems*{9c502b9a-25d4-473f-89bd-5a13dde16354}*SharedItemsImports = 13 - SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{b201e760-db91-485c-a99a-814bded90bdb}*SharedItemsImports = 13 SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.Shared\SkiaSharp.HarfBuzz.Shared.projitems*{c3e63b2d-95d4-4c3f-b10f-7a0aacf94980}*SharedItemsImports = 13 - SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{e19ffaf3-31a4-4a52-8460-de0c00221439}*SharedItemsImports = 4 - SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{e3290ce6-0ada-486b-9bab-8bcf07f9be45}*SharedItemsImports = 13 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -56,14 +40,6 @@ Global {4E0924F8-D546-4428-9412-4B9411FBA5FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {4E0924F8-D546-4428-9412-4B9411FBA5FF}.Release|Any CPU.ActiveCfg = Release|Any CPU {4E0924F8-D546-4428-9412-4B9411FBA5FF}.Release|Any CPU.Build.0 = Release|Any CPU - {E19FFAF3-31A4-4A52-8460-DE0C00221439}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E19FFAF3-31A4-4A52-8460-DE0C00221439}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E19FFAF3-31A4-4A52-8460-DE0C00221439}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E19FFAF3-31A4-4A52-8460-DE0C00221439}.Release|Any CPU.Build.0 = Release|Any CPU - {36456F7F-388A-49E1-B9C5-CC2DEC82D2C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {36456F7F-388A-49E1-B9C5-CC2DEC82D2C2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {36456F7F-388A-49E1-B9C5-CC2DEC82D2C2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {36456F7F-388A-49E1-B9C5-CC2DEC82D2C2}.Release|Any CPU.Build.0 = Release|Any CPU {43C0CB4B-E0CA-4C00-B848-0D67F7C7BEEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {43C0CB4B-E0CA-4C00-B848-0D67F7C7BEEF}.Debug|Any CPU.Build.0 = Debug|Any CPU {43C0CB4B-E0CA-4C00-B848-0D67F7C7BEEF}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -79,10 +55,6 @@ Global GlobalSection(NestedProjects) = preSolution {9C502B9A-25D4-473F-89BD-5A13DDE16354} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} {4E0924F8-D546-4428-9412-4B9411FBA5FF} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} - {E19FFAF3-31A4-4A52-8460-DE0C00221439} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} - {B201E760-DB91-485C-A99A-814BDED90BDB} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} - {E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45} = {1DE47CE5-7542-40CD-89ED-296CB9B212EB} - {36456F7F-388A-49E1-B9C5-CC2DEC82D2C2} = {1DE47CE5-7542-40CD-89ED-296CB9B212EB} {6F8349DC-90AC-441D-8B8B-BE623F46BE6D} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} {1AAA8F60-6138-4DFE-B240-5A0F3FB87E0F} = {051E7B4F-DF9B-4920-A3BC-E812933FCB24} {43C0CB4B-E0CA-4C00-B848-0D67F7C7BEEF} = {051E7B4F-DF9B-4920-A3BC-E812933FCB24} diff --git a/source/SkiaSharpSource.Windows.sln b/source/SkiaSharpSource.Windows.sln index 701f64a3..b0ea96e4 100644 --- a/source/SkiaSharpSource.Windows.sln +++ b/source/SkiaSharpSource.Windows.sln @@ -29,20 +29,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views", "SkiaShar EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Views.WPF", "SkiaSharp.Views\SkiaSharp.Views.WPF\SkiaSharp.Views.WPF.csproj", "{743CF830-D458-41A9-865A-F85126562015}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Svg", "SkiaSharp.Svg", "{F9C7D51F-468C-4E58-BB75-2317DB99C8A7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Svg", "SkiaSharp.Svg\SkiaSharp.Svg\SkiaSharp.Svg.csproj", "{04C4399A-6740-4733-B6B7-F968232A76C8}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.Forms", "SkiaSharp.Views.Forms", "{D40675E1-610D-4BBB-AA2A-BEF020717431}" EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Svg.Shared", "SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.shproj", "{B201E760-DB91-485C-A99A-814BDED90BDB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Extended", "SkiaSharp.Extended", "{2F0684AA-463A-443A-AB75-A2DA9B15D975}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Extended.Shared", "SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.shproj", "{E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Extended", "SkiaSharp.Extended\SkiaSharp.Extended\SkiaSharp.Extended.csproj", "{FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}" -EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Views.Forms.Native.Shared", "SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Native.Shared\SkiaSharp.Views.Forms.Native.Shared.shproj", "{CEBD25FD-DD4F-4D5F-B809-D50D02176F41}" EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Binding.Shared", "..\binding\Binding.Shared\Binding.Shared.shproj", "{6F8349DC-90AC-441D-8B8B-BE623F46BE6D}" @@ -65,7 +53,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Workbooks", "Skia EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution - SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{04c4399a-6740-4733-b6b7-f968232a76c8}*SharedItemsImports = 4 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 @@ -77,16 +64,13 @@ Global ..\Binding\Binding.Shared\Binding.Shared.projitems*{6f8349dc-90ac-441d-8b8b-be623f46be6d}*SharedItemsImports = 13 SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.projitems*{8bb20362-91a2-4206-944d-634070eac6f3}*SharedItemsImports = 4 ..\Binding\Binding\Binding.projitems*{9c502b9a-25d4-473f-89bd-5a13dde16354}*SharedItemsImports = 13 - SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{b201e760-db91-485c-a99a-814bded90bdb}*SharedItemsImports = 13 ..\Binding\Binding.Shared\Binding.Shared.projitems*{bab615aa-956e-4079-b260-dd7b1f52ec7d}*SharedItemsImports = 4 ..\Binding\Binding\Binding.projitems*{bab615aa-956e-4079-b260-dd7b1f52ec7d}*SharedItemsImports = 4 SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.Shared\SkiaSharp.HarfBuzz.Shared.projitems*{c3e63b2d-95d4-4c3f-b10f-7a0aacf94980}*SharedItemsImports = 13 SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Native.Shared\SkiaSharp.Views.Forms.Native.Shared.projitems*{cebd25fd-dd4f-4d5f-b809-d50d02176f41}*SharedItemsImports = 13 - SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{e3290ce6-0ada-486b-9bab-8bcf07f9be45}*SharedItemsImports = 13 SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.projitems*{e5a90865-c185-45ad-88d1-6da7d6004b03}*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.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{fea1fec9-950c-46c0-9eb0-a515e0ab8f19}*SharedItemsImports = 4 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -125,14 +109,6 @@ Global {743CF830-D458-41A9-865A-F85126562015}.Debug|Any CPU.Build.0 = Debug|Any CPU {743CF830-D458-41A9-865A-F85126562015}.Release|Any CPU.ActiveCfg = Release|Any CPU {743CF830-D458-41A9-865A-F85126562015}.Release|Any CPU.Build.0 = Release|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Release|Any CPU.Build.0 = Release|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Release|Any CPU.Build.0 = Release|Any CPU {4DFBD9A6-EA81-4E26-9753-A9C7A600EA34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4DFBD9A6-EA81-4E26-9753-A9C7A600EA34}.Debug|Any CPU.Build.0 = Debug|Any CPU {4DFBD9A6-EA81-4E26-9753-A9C7A600EA34}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -165,10 +141,6 @@ Global {EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} {BAB615AA-956E-4079-B260-DD7B1F52EC7D} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} {743CF830-D458-41A9-865A-F85126562015} = {F19E1537-81B2-4D4F-A69E-78DC73ACC141} - {04C4399A-6740-4733-B6B7-F968232A76C8} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} - {B201E760-DB91-485C-A99A-814BDED90BDB} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} - {E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45} = {2F0684AA-463A-443A-AB75-A2DA9B15D975} - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19} = {2F0684AA-463A-443A-AB75-A2DA9B15D975} {CEBD25FD-DD4F-4D5F-B809-D50D02176F41} = {D40675E1-610D-4BBB-AA2A-BEF020717431} {6F8349DC-90AC-441D-8B8B-BE623F46BE6D} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} {1AAA8F60-6138-4DFE-B240-5A0F3FB87E0F} = {9F016D5D-C7BF-45C7-BC0C-5A6E721DCF9E} diff --git a/source/SkiaSharpSource.sln b/source/SkiaSharpSource.sln index a83d545b..3b18fdf1 100644 --- a/source/SkiaSharpSource.sln +++ b/source/SkiaSharpSource.sln @@ -55,24 +55,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Views.WPF", "Skia EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Views.Forms", "SkiaSharp.Views.Forms", "{DCADA8CC-D50A-4BD9-B2E6-86696A43D819}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Svg", "SkiaSharp.Svg", "{F9C7D51F-468C-4E58-BB75-2317DB99C8A7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Svg", "SkiaSharp.Svg\SkiaSharp.Svg\SkiaSharp.Svg.csproj", "{04C4399A-6740-4733-B6B7-F968232A76C8}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.NetStandard", "..\binding\SkiaSharp.NetStandard\SkiaSharp.NetStandard.csproj", "{4E0924F8-D546-4428-9412-4B9411FBA5FF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Svg.NetStandard", "SkiaSharp.Svg\SkiaSharp.Svg.NetStandard\SkiaSharp.Svg.NetStandard.csproj", "{E19FFAF3-31A4-4A52-8460-DE0C00221439}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Svg.Shared", "SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.shproj", "{B201E760-DB91-485C-A99A-814BDED90BDB}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SkiaSharp.Extended", "SkiaSharp.Extended", "{06F5DF49-E622-4A4C-8F01-0DB0E04721CE}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Extended.Shared", "SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.shproj", "{E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Extended", "SkiaSharp.Extended\SkiaSharp.Extended\SkiaSharp.Extended.csproj", "{FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Extended.NetStandard", "SkiaSharp.Extended\SkiaSharp.Extended.NetStandard\SkiaSharp.Extended.NetStandard.csproj", "{36456F7F-388A-49E1-B9C5-CC2DEC82D2C2}" -EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Views.Forms.Native.Shared", "SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Native.Shared\SkiaSharp.Views.Forms.Native.Shared.shproj", "{CEBD25FD-DD4F-4D5F-B809-D50D02176F41}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Views.Forms.Mac", "SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Mac\SkiaSharp.Views.Forms.Mac.csproj", "{DA5DA4D8-4885-4AF2-96BB-AE803C344AB0}" @@ -109,7 +93,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Workbooks", "Skia EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution - SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{04c4399a-6740-4733-b6b7-f968232a76c8}*SharedItemsImports = 4 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 @@ -117,7 +100,6 @@ Global 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 - SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{36456f7f-388a-49e1-b9c5-cc2dec82d2c2}*SharedItemsImports = 4 SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Native.Shared\SkiaSharp.Views.Forms.Native.Shared.projitems*{3a1277b5-cfae-48cc-b64b-4dae1222a3eb}*SharedItemsImports = 4 SkiaSharp.Views.Forms\SkiaSharp.Views.Forms.Shared\SkiaSharp.Views.Forms.Shared.projitems*{3a1277b5-cfae-48cc-b64b-4dae1222a3eb}*SharedItemsImports = 4 ..\Binding\Binding.Shared\Binding.Shared.projitems*{4588a759-3853-49b8-8a68-6c7917be9220}*SharedItemsImports = 4 @@ -139,7 +121,6 @@ Global SkiaSharp.Views\SkiaSharp.Views.Shared\SkiaSharp.Views.Shared.projitems*{8bb20362-91a2-4206-944d-634070eac6f3}*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.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{b201e760-db91-485c-a99a-814bded90bdb}*SharedItemsImports = 13 ..\Binding\Binding.Shared\Binding.Shared.projitems*{bab615aa-956e-4079-b260-dd7b1f52ec7d}*SharedItemsImports = 4 ..\Binding\Binding\Binding.projitems*{bab615aa-956e-4079-b260-dd7b1f52ec7d}*SharedItemsImports = 4 SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.Shared\SkiaSharp.HarfBuzz.Shared.projitems*{c3e63b2d-95d4-4c3f-b10f-7a0aacf94980}*SharedItemsImports = 13 @@ -149,15 +130,12 @@ Global 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.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{e19ffaf3-31a4-4a52-8460-de0c00221439}*SharedItemsImports = 4 - SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{e3290ce6-0ada-486b-9bab-8bcf07f9be45}*SharedItemsImports = 13 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.Shared\SkiaSharp.Views.Shared.projitems*{e5a90865-c185-45ad-88d1-6da7d6004b03}*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.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{fea1fec9-950c-46c0-9eb0-a515e0ab8f19}*SharedItemsImports = 4 SkiaSharp.Views\SkiaSharp.Views.AppleiOS\SkiaSharp.Views.AppleiOS.projitems*{ff4c9f9f-7a6a-44d1-8338-d30e39e4e9d4}*SharedItemsImports = 13 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -237,26 +215,10 @@ Global {743CF830-D458-41A9-865A-F85126562015}.Debug|Any CPU.Build.0 = Debug|Any CPU {743CF830-D458-41A9-865A-F85126562015}.Release|Any CPU.ActiveCfg = Release|Any CPU {743CF830-D458-41A9-865A-F85126562015}.Release|Any CPU.Build.0 = Release|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04C4399A-6740-4733-B6B7-F968232A76C8}.Release|Any CPU.Build.0 = Release|Any CPU {4E0924F8-D546-4428-9412-4B9411FBA5FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4E0924F8-D546-4428-9412-4B9411FBA5FF}.Debug|Any CPU.Build.0 = Debug|Any CPU {4E0924F8-D546-4428-9412-4B9411FBA5FF}.Release|Any CPU.ActiveCfg = Release|Any CPU {4E0924F8-D546-4428-9412-4B9411FBA5FF}.Release|Any CPU.Build.0 = Release|Any CPU - {E19FFAF3-31A4-4A52-8460-DE0C00221439}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E19FFAF3-31A4-4A52-8460-DE0C00221439}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E19FFAF3-31A4-4A52-8460-DE0C00221439}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E19FFAF3-31A4-4A52-8460-DE0C00221439}.Release|Any CPU.Build.0 = Release|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}.Release|Any CPU.Build.0 = Release|Any CPU - {36456F7F-388A-49E1-B9C5-CC2DEC82D2C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {36456F7F-388A-49E1-B9C5-CC2DEC82D2C2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {36456F7F-388A-49E1-B9C5-CC2DEC82D2C2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {36456F7F-388A-49E1-B9C5-CC2DEC82D2C2}.Release|Any CPU.Build.0 = Release|Any CPU {DA5DA4D8-4885-4AF2-96BB-AE803C344AB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {DA5DA4D8-4885-4AF2-96BB-AE803C344AB0}.Debug|Any CPU.Build.0 = Debug|Any CPU {DA5DA4D8-4885-4AF2-96BB-AE803C344AB0}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -329,13 +291,7 @@ Global {EB1BBDCC-FB07-40D5-8B9E-0079E2C2F2DF} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} {BAB615AA-956E-4079-B260-DD7B1F52EC7D} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} {743CF830-D458-41A9-865A-F85126562015} = {F19E1537-81B2-4D4F-A69E-78DC73ACC141} - {04C4399A-6740-4733-B6B7-F968232A76C8} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} {4E0924F8-D546-4428-9412-4B9411FBA5FF} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} - {E19FFAF3-31A4-4A52-8460-DE0C00221439} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} - {B201E760-DB91-485C-A99A-814BDED90BDB} = {F9C7D51F-468C-4E58-BB75-2317DB99C8A7} - {E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45} = {06F5DF49-E622-4A4C-8F01-0DB0E04721CE} - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19} = {06F5DF49-E622-4A4C-8F01-0DB0E04721CE} - {36456F7F-388A-49E1-B9C5-CC2DEC82D2C2} = {06F5DF49-E622-4A4C-8F01-0DB0E04721CE} {CEBD25FD-DD4F-4D5F-B809-D50D02176F41} = {DCADA8CC-D50A-4BD9-B2E6-86696A43D819} {DA5DA4D8-4885-4AF2-96BB-AE803C344AB0} = {DCADA8CC-D50A-4BD9-B2E6-86696A43D819} {6F8349DC-90AC-441D-8B8B-BE623F46BE6D} = {C335869B-7CC8-4239-B4A5-8031AA9758D3} diff --git a/tests/SkiaSharp.Desktop.Tests/SkiaSharp.Desktop.Tests.csproj b/tests/SkiaSharp.Desktop.Tests/SkiaSharp.Desktop.Tests.csproj index d5e0637a..9a5a3ab3 100644 --- a/tests/SkiaSharp.Desktop.Tests/SkiaSharp.Desktop.Tests.csproj +++ b/tests/SkiaSharp.Desktop.Tests/SkiaSharp.Desktop.Tests.csproj @@ -189,14 +189,6 @@ {7cad1912-05a5-42e5-b7ba-81bb051f0566} SkiaSharp.HarfBuzz - - {04C4399A-6740-4733-B6B7-F968232A76C8} - SkiaSharp.Svg - - - {FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19} - SkiaSharp.Extended - diff --git a/tests/SkiaSharp.Desktop.Tests/SkiaSharp.Desktop.Tests.sln b/tests/SkiaSharp.Desktop.Tests/SkiaSharp.Desktop.Tests.sln index 9d057b4d..cccdaa9e 100644 --- a/tests/SkiaSharp.Desktop.Tests/SkiaSharp.Desktop.Tests.sln +++ b/tests/SkiaSharp.Desktop.Tests/SkiaSharp.Desktop.Tests.sln @@ -11,14 +11,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Desktop.Tests", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Portable", "..\..\binding\SkiaSharp.Portable\SkiaSharp.Portable.csproj", "{7AA90628-2FDD-4585-AF2F-CC51CFA8B52A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Svg", "..\..\source\SkiaSharp.Svg\SkiaSharp.Svg\SkiaSharp.Svg.csproj", "{04C4399A-6740-4733-B6B7-F968232A76C8}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Svg.Shared", "..\..\source\SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.shproj", "{B201E760-DB91-485C-A99A-814BDED90BDB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharp.Extended", "..\..\source\SkiaSharp.Extended\SkiaSharp.Extended\SkiaSharp.Extended.csproj", "{FEA1FEC9-950C-46C0-9EB0-A515E0AB8F19}" -EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.Extended.Shared", "..\..\source\SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.shproj", "{E3290CE6-0ADA-486B-9BAB-8BCF07F9BE45}" -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}") = "HarfBuzzSharp.Portable", "..\..\binding\HarfBuzzSharp.Portable\HarfBuzzSharp.Portable.csproj", "{4DFBD9A6-EA81-4E26-9753-A9C7A600EA34}" @@ -37,19 +29,15 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharp.HarfBuzz.Shared", EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution - ..\..\source\SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{04c4399a-6740-4733-b6b7-f968232a76c8}*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 ..\..\binding\Binding.Shared\Binding.Shared.projitems*{6f8349dc-90ac-441d-8b8b-be623f46be6d}*SharedItemsImports = 13 ..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.Shared\SkiaSharp.HarfBuzz.Shared.projitems*{7cad1912-05a5-42e5-b7ba-81bb051f0566}*SharedItemsImports = 4 ..\..\binding\Binding\Binding.projitems*{9c502b9a-25d4-473f-89bd-5a13dde16354}*SharedItemsImports = 13 - ..\..\source\SkiaSharp.Svg\SkiaSharp.Svg.Shared\SkiaSharp.Svg.Shared.projitems*{b201e760-db91-485c-a99a-814bded90bdb}*SharedItemsImports = 13 ..\..\source\SkiaSharp.HarfBuzz\SkiaSharp.HarfBuzz.Shared\SkiaSharp.HarfBuzz.Shared.projitems*{c3e63b2d-95d4-4c3f-b10f-7a0aacf94980}*SharedItemsImports = 13 - ..\..\source\SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{e3290ce6-0ada-486b-9bab-8bcf07f9be45}*SharedItemsImports = 13 ..\..\binding\Binding.Shared\Binding.Shared.projitems*{eb1bbdcc-fb07-40d5-8b9e-0079e2c2f2df}*SharedItemsImports = 4 ..\..\binding\Binding\Binding.projitems*{eb1bbdcc-fb07-40d5-8b9e-0079e2c2f2df}*SharedItemsImports = 4 - ..\..\source\SkiaSharp.Extended\SkiaSharp.Extended.Shared\SkiaSharp.Extended.Shared.projitems*{fea1fec9-950c-46c0-9eb0-a515e0ab8f19}*SharedItemsImports = 4 EndGlobalSection GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/tests/SkiaSharp.NetCore.Tests/SkiaSharp.NetCore.Tests.csproj b/tests/SkiaSharp.NetCore.Tests/SkiaSharp.NetCore.Tests.csproj index c8e5b855..cf8768f8 100644 --- a/tests/SkiaSharp.NetCore.Tests/SkiaSharp.NetCore.Tests.csproj +++ b/tests/SkiaSharp.NetCore.Tests/SkiaSharp.NetCore.Tests.csproj @@ -33,8 +33,6 @@ - - \ No newline at end of file diff --git a/tests/Tests/SKGeometryTest.cs b/tests/Tests/SKGeometryTest.cs deleted file mode 100644 index b713bad2..00000000 --- a/tests/Tests/SKGeometryTest.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using NUnit.Framework; - -using SkiaSharp.Extended; - -namespace SkiaSharp.Tests -{ - public class SKGeometryTest : SKTest - { - [Test] - public void GeometryGeneratesRectPath() - { - var rectPath = SKGeometry.CreateTrianglePath(100); - - Assert.AreEqual(3, rectPath.PointCount); - } - } -} diff --git a/tests/Tests/SKSvgTest.cs b/tests/Tests/SKSvgTest.cs deleted file mode 100644 index 628c9721..00000000 --- a/tests/Tests/SKSvgTest.cs +++ /dev/null @@ -1,97 +0,0 @@ -using System; -using System.IO; -using NUnit.Framework; -using System.Xml.Linq; - -namespace SkiaSharp.Tests -{ - public class SKSvgTest : SKTest - { - [Test] - public void LoadSvgCanvasSize() - { - var path = Path.Combine(PathToImages, "logos.svg"); - - var svg = new SKSvg(); - svg.Load(path); - - Assert.AreEqual(new SKSize(300, 300), svg.CanvasSize); - } - - [Test] - public void LoadSvgCustomCanvasSize() - { - var path = Path.Combine(PathToImages, "logos.svg"); - - var svg = new SKSvg(new SKSize(150, 150)); - svg.Load(path); - - Assert.AreEqual(new SKSize(150, 150), svg.CanvasSize); - } - - [Test] - public void SvgLoadsToBitmap() - { - var path = Path.Combine(PathToImages, "logos.svg"); - var background = (SKColor)0xfff8f8f8; - - var svg = new SKSvg(); - svg.Load(path); - - var bmp = new SKBitmap((int)svg.CanvasSize.Width, (int)svg.CanvasSize.Height); - var canvas = new SKCanvas(bmp); - canvas.DrawPicture(svg.Picture); - canvas.Flush(); - - Assert.AreEqual(background, bmp.GetPixel(0, 0)); - } - - [Test] - public void SvgCanvasCreatesValidDrawing() - { - using (var stream = new MemoryStream()) - { - // draw the SVG - using (var skStream = new SKManagedWStream(stream, false)) - using (var writer = new SKXmlStreamWriter(skStream)) - using (var canvas = SKSvgCanvas.Create(SKRect.Create(200, 150), writer)) - { - var rectPaint = new SKPaint { Color = SKColors.Blue, Style = SKPaintStyle.Fill }; - canvas.DrawRect(SKRect.Create(50, 70, 100, 30), rectPaint); - - var circlePaint = new SKPaint { Color = SKColors.Red, Style = SKPaintStyle.Fill }; - canvas.DrawOval(SKRect.Create(50, 70, 100, 30), circlePaint); - - skStream.Flush(); - } - - // reset the sream - stream.Position = 0; - - // read the SVG - var xdoc = XDocument.Load(stream); - var svg = xdoc.Root; - - var ns = (XNamespace)"http://www.w3.org/2000/svg"; - - Assert.AreEqual(ns, svg.GetDefaultNamespace()); - Assert.AreEqual("200", svg.Attribute("width").Value); - Assert.AreEqual("150", svg.Attribute("height").Value); - - var rect = svg.Element(ns + "rect"); - Assert.AreEqual("rgb(0,0,255)", rect.Attribute("fill").Value); - Assert.AreEqual("50", rect.Attribute("x").Value); - Assert.AreEqual("70", rect.Attribute("y").Value); - Assert.AreEqual("100", rect.Attribute("width").Value); - Assert.AreEqual("30", rect.Attribute("height").Value); - - var ellipse = svg.Element(ns + "ellipse"); - Assert.AreEqual("rgb(255,0,0)", ellipse.Attribute("fill").Value); - Assert.AreEqual("100", ellipse.Attribute("cx").Value); - Assert.AreEqual("85", ellipse.Attribute("cy").Value); - Assert.AreEqual("50", ellipse.Attribute("rx").Value); - Assert.AreEqual("15", ellipse.Attribute("ry").Value); - } - } - } -} diff --git a/workbooks/Development.workbook/index.workbook b/workbooks/Development.workbook/index.workbook index 70c896f7..81bb2c0d 100644 --- a/workbooks/Development.workbook/index.workbook +++ b/workbooks/Development.workbook/index.workbook @@ -6,8 +6,6 @@ platforms: ```csharp #r "../../output/workbooks/SkiaSharp.dll" -#r "../../output/workbooks/SkiaSharp.Svg.dll" -#r "../../output/workbooks/SkiaSharp.Extended.dll" using SkiaSharp; using SkiaSharp.Extended;