Browse Source

Merge pull request #783 from AvaloniaUI/fixes/skia-rendererfactory

Register an IRendererFactory on Skia
pull/786/head
Steven Kirk 10 years ago
committed by GitHub
parent
commit
1340a3cba5
  1. 8
      src/Skia/Avalonia.Skia/PlatformRenderInterface.cs
  2. 8
      src/Skia/Avalonia.Skia/SkiaPlatform.cs

8
src/Skia/Avalonia.Skia/PlatformRenderInterface.cs

@ -2,11 +2,12 @@ using System;
using System.IO; using System.IO;
using Avalonia.Media; using Avalonia.Media;
using Avalonia.Platform; using Avalonia.Platform;
using Avalonia.Rendering;
using SkiaSharp; using SkiaSharp;
namespace Avalonia.Skia namespace Avalonia.Skia
{ {
public class PlatformRenderInterface : IPlatformRenderInterface public class PlatformRenderInterface : IPlatformRenderInterface, IRendererFactory
{ {
public IBitmapImpl CreateBitmap(int width, int height) public IBitmapImpl CreateBitmap(int width, int height)
{ {
@ -48,6 +49,11 @@ namespace Avalonia.Skia
} }
} }
public IRenderer CreateRenderer(IRenderRoot root, IRenderLoop renderLoop)
{
return new Renderer(root, renderLoop);
}
public IRenderTargetBitmapImpl CreateRenderTargetBitmap(int width, int height) public IRenderTargetBitmapImpl CreateRenderTargetBitmap(int width, int height)
{ {
if (width < 1) if (width < 1)

8
src/Skia/Avalonia.Skia/SkiaPlatform.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Text; using System.Text;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Platform; using Avalonia.Platform;
using Avalonia.Rendering;
namespace Avalonia namespace Avalonia
{ {
@ -23,7 +24,12 @@ namespace Avalonia.Skia
private static bool s_forceSoftwareRendering; private static bool s_forceSoftwareRendering;
public static void Initialize() public static void Initialize()
=> AvaloniaLocator.CurrentMutable.Bind<IPlatformRenderInterface>().ToConstant(new PlatformRenderInterface()); {
var renderInterface = new PlatformRenderInterface();
AvaloniaLocator.CurrentMutable
.Bind<IPlatformRenderInterface>().ToConstant(renderInterface)
.Bind<IRendererFactory>().ToConstant(renderInterface);
}
public static bool ForceSoftwareRendering public static bool ForceSoftwareRendering
{ {

Loading…
Cancel
Save