Browse Source

[SKIA] One codebase to rule them all

pull/885/head
Nikita Tsukanov 9 years ago
parent
commit
1f91e01293
  1. 2
      Avalonia.sln
  2. 27
      src/Skia/Avalonia.Skia.Android/AndroidPlatformRenderInterface.cs
  3. 3
      src/Skia/Avalonia.Skia.Android/Avalonia.Skia.Android.csproj
  4. 3
      src/Skia/Avalonia.Skia.Desktop.NetStandard/Avalonia.Skia.Desktop.NetStandard.csproj
  5. 1
      src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj
  6. 21
      src/Skia/Avalonia.Skia.Desktop/PlatformRenderInterfaceDesktop.cs
  7. 1
      src/Skia/Avalonia.Skia.iOS/Avalonia.Skia.iOS.csproj
  8. 22
      src/Skia/Avalonia.Skia.iOS/PlatformRenderingInterfaceIos.cs
  9. 10
      src/Skia/Avalonia.Skia/PlatformRenderInterface.cs

2
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

27
src/Skia/Avalonia.Skia.Android/AndroidPlatformRenderInterface.cs

@ -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<object> surfaces)
{
var fb = surfaces?.OfType<IFramebufferPlatformSurface>().FirstOrDefault();
if (fb == null)
throw new ArgumentException("Avalonia.Skia.Android is only capable of drawing on framebuffer");
return new FramebufferRenderTarget(fb);
}
}
}

3
src/Skia/Avalonia.Skia.Android/Avalonia.Skia.Android.csproj

@ -85,9 +85,6 @@
<Name>Avalonia.Styling</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Compile Include="AndroidPlatformRenderInterface.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>

3
src/Skia/Avalonia.Skia.Desktop.NetStandard/Avalonia.Skia.Desktop.NetStandard.csproj

@ -44,9 +44,6 @@
<Compile Include="..\..\Shared\SharedAssemblyInfo.cs">
<Link>Properties\SharedAssemblyInfo.cs</Link>
</Compile>
<Compile Include="..\Avalonia.Skia.Desktop\PlatformRenderInterfaceDesktop.cs">
<Link>PlatformRenderInterfaceDesktop.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Avalonia.Base\Avalonia.Base.csproj">

1
src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj

@ -71,7 +71,6 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="PlatformRenderInterfaceDesktop.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>

21
src/Skia/Avalonia.Skia.Desktop/PlatformRenderInterfaceDesktop.cs

@ -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<object> surfaces)
{
var fb = surfaces?.OfType<IFramebufferPlatformSurface>().FirstOrDefault();
if (fb == null)
throw new Exception("Avalonia.Skia.Deskop currently only supports framebuffer render target");
return new FramebufferRenderTarget(fb);
}
}
}

1
src/Skia/Avalonia.Skia.iOS/Avalonia.Skia.iOS.csproj

@ -37,7 +37,6 @@
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Compile Include="PlatformRenderingInterfaceIos.cs" />
<Compile Include="RenderTarget.cs" />
<Compile Include="SkiaView.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />

22
src/Skia/Avalonia.Skia.iOS/PlatformRenderingInterfaceIos.cs

@ -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<object> surfaces)
{
var fb = surfaces?.OfType<IFramebufferPlatformSurface>().FirstOrDefault();
if (fb == null)
throw new Exception("Avalonia.Skia.Deskop currently only supports framebuffer render target");
return new FramebufferRenderTarget(fb);
}
}
}

10
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<object> surfaces)
{
var fb = surfaces?.OfType<IFramebufferPlatformSurface>().FirstOrDefault();
if (fb == null)
throw new Exception("Skia backend currently only supports framebuffer render target");
return new FramebufferRenderTarget(fb);
}
}
}

Loading…
Cancel
Save