From 1f91e01293a52d217d394ec675a52f8ad88a4634 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 8 Feb 2017 21:39:24 +0300 Subject: [PATCH] [SKIA] One codebase to rule them all --- Avalonia.sln | 2 ++ .../AndroidPlatformRenderInterface.cs | 27 ------------------- .../Avalonia.Skia.Android.csproj | 3 --- .../Avalonia.Skia.Desktop.NetStandard.csproj | 3 --- .../Avalonia.Skia.Desktop.csproj | 1 - .../PlatformRenderInterfaceDesktop.cs | 21 --------------- .../Avalonia.Skia.iOS.csproj | 1 - .../PlatformRenderingInterfaceIos.cs | 22 --------------- .../Avalonia.Skia/PlatformRenderInterface.cs | 10 +++++++ 9 files changed, 12 insertions(+), 78 deletions(-) delete mode 100644 src/Skia/Avalonia.Skia.Android/AndroidPlatformRenderInterface.cs delete mode 100644 src/Skia/Avalonia.Skia.Desktop/PlatformRenderInterfaceDesktop.cs delete mode 100644 src/Skia/Avalonia.Skia.iOS/PlatformRenderingInterfaceIos.cs diff --git a/Avalonia.sln b/Avalonia.sln index 905970433c..3ab8048857 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -182,6 +182,8 @@ Global src\Shared\RenderHelpers\RenderHelpers.projitems*{925dd807-b651-475f-9f7c-cbeb974ce43d}*SharedItemsImports = 4 src\Skia\Avalonia.Skia\Avalonia.Skia.projitems*{925dd807-b651-475f-9f7c-cbeb974ce43d}*SharedItemsImports = 4 src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{9defc6b7-845b-4d8f-afc0-d32bf0032b8c}*SharedItemsImports = 13 + src\Shared\RenderHelpers\RenderHelpers.projitems*{bd43f7c0-396b-4aa1-bad9-dfde54d51298}*SharedItemsImports = 4 + src\Skia\Avalonia.Skia\Avalonia.Skia.projitems*{bd43f7c0-396b-4aa1-bad9-dfde54d51298}*SharedItemsImports = 4 tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{d35a9f3d-8bb0-496e-bf72-444038a7debb}*SharedItemsImports = 4 tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{dabfd304-d6a4-4752-8123-c2ccf7ac7831}*SharedItemsImports = 4 tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{e106cf37-4066-4615-b684-172a6d30b058}*SharedItemsImports = 4 diff --git a/src/Skia/Avalonia.Skia.Android/AndroidPlatformRenderInterface.cs b/src/Skia/Avalonia.Skia.Android/AndroidPlatformRenderInterface.cs deleted file mode 100644 index be02111cbd..0000000000 --- a/src/Skia/Avalonia.Skia.Android/AndroidPlatformRenderInterface.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -using Android.App; -using Android.Content; -using Android.OS; -using Android.Runtime; -using Android.Views; -using Android.Widget; -using Avalonia.Controls.Platform.Surfaces; -using Avalonia.Platform; - -namespace Avalonia.Skia -{ - partial class PlatformRenderInterface - { - public IRenderTarget CreateRenderTarget(IEnumerable surfaces) - { - var fb = surfaces?.OfType().FirstOrDefault(); - if (fb == null) - throw new ArgumentException("Avalonia.Skia.Android is only capable of drawing on framebuffer"); - return new FramebufferRenderTarget(fb); - } - } -} \ No newline at end of file diff --git a/src/Skia/Avalonia.Skia.Android/Avalonia.Skia.Android.csproj b/src/Skia/Avalonia.Skia.Android/Avalonia.Skia.Android.csproj index ef950fe786..c644bd84b3 100644 --- a/src/Skia/Avalonia.Skia.Android/Avalonia.Skia.Android.csproj +++ b/src/Skia/Avalonia.Skia.Android/Avalonia.Skia.Android.csproj @@ -85,9 +85,6 @@ Avalonia.Styling - - - diff --git a/src/Skia/Avalonia.Skia.Desktop.NetStandard/Avalonia.Skia.Desktop.NetStandard.csproj b/src/Skia/Avalonia.Skia.Desktop.NetStandard/Avalonia.Skia.Desktop.NetStandard.csproj index fde3375c43..f421ed04f4 100644 --- a/src/Skia/Avalonia.Skia.Desktop.NetStandard/Avalonia.Skia.Desktop.NetStandard.csproj +++ b/src/Skia/Avalonia.Skia.Desktop.NetStandard/Avalonia.Skia.Desktop.NetStandard.csproj @@ -44,9 +44,6 @@ Properties\SharedAssemblyInfo.cs - - PlatformRenderInterfaceDesktop.cs - diff --git a/src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj b/src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj index c07db0908f..74d592f9bf 100644 --- a/src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj +++ b/src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj @@ -71,7 +71,6 @@ - diff --git a/src/Skia/Avalonia.Skia.Desktop/PlatformRenderInterfaceDesktop.cs b/src/Skia/Avalonia.Skia.Desktop/PlatformRenderInterfaceDesktop.cs deleted file mode 100644 index 9382a4f6e2..0000000000 --- a/src/Skia/Avalonia.Skia.Desktop/PlatformRenderInterfaceDesktop.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Avalonia.Controls.Platform.Surfaces; -using Avalonia.Platform; - -namespace Avalonia.Skia -{ - partial class PlatformRenderInterface - { - public IRenderTarget CreateRenderTarget(IEnumerable surfaces) - { - var fb = surfaces?.OfType().FirstOrDefault(); - if (fb == null) - throw new Exception("Avalonia.Skia.Deskop currently only supports framebuffer render target"); - return new FramebufferRenderTarget(fb); - } - } -} diff --git a/src/Skia/Avalonia.Skia.iOS/Avalonia.Skia.iOS.csproj b/src/Skia/Avalonia.Skia.iOS/Avalonia.Skia.iOS.csproj index 0b1f8c9b62..08fcd61471 100644 --- a/src/Skia/Avalonia.Skia.iOS/Avalonia.Skia.iOS.csproj +++ b/src/Skia/Avalonia.Skia.iOS/Avalonia.Skia.iOS.csproj @@ -37,7 +37,6 @@ true - diff --git a/src/Skia/Avalonia.Skia.iOS/PlatformRenderingInterfaceIos.cs b/src/Skia/Avalonia.Skia.iOS/PlatformRenderingInterfaceIos.cs deleted file mode 100644 index 64bd67eee9..0000000000 --- a/src/Skia/Avalonia.Skia.iOS/PlatformRenderingInterfaceIos.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Avalonia.Controls.Platform.Surfaces; -using Avalonia.Platform; -using Foundation; -using UIKit; - -namespace Avalonia.Skia -{ - partial class PlatformRenderInterface - { - public IRenderTarget CreateRenderTarget(IEnumerable surfaces) - { - var fb = surfaces?.OfType().FirstOrDefault(); - if (fb == null) - throw new Exception("Avalonia.Skia.Deskop currently only supports framebuffer render target"); - return new FramebufferRenderTarget(fb); - } - } -} \ No newline at end of file diff --git a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs index 4cfe1e3e40..f0735bb0df 100644 --- a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs +++ b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; +using Avalonia.Controls.Platform.Surfaces; using Avalonia.Media; using Avalonia.Platform; using Avalonia.Rendering; @@ -64,5 +66,13 @@ namespace Avalonia.Skia return new BitmapImpl(width, height); } + + public virtual IRenderTarget CreateRenderTarget(IEnumerable surfaces) + { + var fb = surfaces?.OfType().FirstOrDefault(); + if (fb == null) + throw new Exception("Skia backend currently only supports framebuffer render target"); + return new FramebufferRenderTarget(fb); + } } }