From b732f9ee261679dd38f2e2aaab5adf75f008da02 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Tue, 2 May 2017 18:17:28 +0300 Subject: [PATCH] Register renderer factory for the rest of the platforms --- src/Android/Avalonia.Android/AndroidPlatform.cs | 1 + src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs | 7 +++++++ src/Gtk/Avalonia.Gtk3/Gtk3Platform.cs | 1 + .../Avalonia.LinuxFramebuffer/LinuxFramebufferPlatform.cs | 1 + src/iOS/Avalonia.iOS/iOSPlatform.cs | 1 + 5 files changed, 11 insertions(+) diff --git a/src/Android/Avalonia.Android/AndroidPlatform.cs b/src/Android/Avalonia.Android/AndroidPlatform.cs index 2089359c26..c779031e6c 100644 --- a/src/Android/Avalonia.Android/AndroidPlatform.cs +++ b/src/Android/Avalonia.Android/AndroidPlatform.cs @@ -53,6 +53,7 @@ namespace Avalonia.Android .Bind().ToSingleton() .Bind().ToSingleton() .Bind().ToConstant(Instance) + .Bind().ToConstant(ImmediateRenderer.Factory) .Bind().ToConstant(new AndroidThreadingInterface()) .Bind().ToTransient() .Bind().ToConstant(Instance) diff --git a/src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs b/src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs index af51eacaed..4879532d6e 100644 --- a/src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs +++ b/src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs @@ -20,6 +20,11 @@ namespace Avalonia.Rendering /// public class ImmediateRenderer : RendererBase, IRenderer, IVisualBrushRenderer { + class ImmediateRendererFactory : IRendererFactory + { + public IRenderer CreateRenderer(IRenderRoot root, IRenderLoop renderLoop) => new ImmediateRenderer(root); + } + private readonly IVisual _root; private readonly IRenderRoot _renderRoot; private IRenderTarget _renderTarget; @@ -36,6 +41,8 @@ namespace Avalonia.Rendering _renderRoot = root as IRenderRoot; } + public static IRendererFactory Factory { get; } = new ImmediateRendererFactory(); + /// public bool DrawFps { get; set; } diff --git a/src/Gtk/Avalonia.Gtk3/Gtk3Platform.cs b/src/Gtk/Avalonia.Gtk3/Gtk3Platform.cs index 0f54bb740f..a2913b4066 100644 --- a/src/Gtk/Avalonia.Gtk3/Gtk3Platform.cs +++ b/src/Gtk/Avalonia.Gtk3/Gtk3Platform.cs @@ -39,6 +39,7 @@ namespace Avalonia.Gtk3 .Bind().ToConstant(Instance) .Bind().ToSingleton() .Bind().ToConstant(new DefaultRenderLoop(60)) + .Bind().ToConstant(ImmediateRenderer.Factory) .Bind().ToConstant(new PlatformIconLoader()); } diff --git a/src/Linux/Avalonia.LinuxFramebuffer/LinuxFramebufferPlatform.cs b/src/Linux/Avalonia.LinuxFramebuffer/LinuxFramebufferPlatform.cs index aaf8db9151..a65a91d6b0 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/LinuxFramebufferPlatform.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/LinuxFramebufferPlatform.cs @@ -35,6 +35,7 @@ namespace Avalonia.LinuxFramebuffer .Bind().ToConstant(KeyboardDevice) .Bind().ToConstant(MouseDevice) .Bind().ToSingleton() + .Bind().ToConstant(ImmediateRenderer.Factory) .Bind().ToConstant(PlatformThreadingInterface.Instance) .Bind().ToConstant(PlatformThreadingInterface.Instance); } diff --git a/src/iOS/Avalonia.iOS/iOSPlatform.cs b/src/iOS/Avalonia.iOS/iOSPlatform.cs index 165b7d44f9..6d6e1fab03 100644 --- a/src/iOS/Avalonia.iOS/iOSPlatform.cs +++ b/src/iOS/Avalonia.iOS/iOSPlatform.cs @@ -58,6 +58,7 @@ namespace Avalonia.iOS .Bind().ToTransient() .Bind().ToConstant(KeyboardDevice) .Bind().ToConstant(MouseDevice) + .Bind().ToConstant(ImmediateRenderer.Factory) .Bind().ToSingleton() .Bind().ToConstant(PlatformThreadingInterface.Instance) .Bind().ToSingleton()