Browse Source

Enabled custom renderer factory for X11 and macOS

ncomposition
Nikita Tsukanov 6 years ago
parent
commit
be38f7ebd4
  1. 10
      src/Avalonia.Native/WindowImplBase.cs
  2. 5
      src/Avalonia.X11/X11Window.cs

10
src/Avalonia.Native/WindowImplBase.cs

@ -300,7 +300,15 @@ namespace Avalonia.Native
public IRenderer CreateRenderer(IRenderRoot root) public IRenderer CreateRenderer(IRenderRoot root)
{ {
if (_deferredRendering) if (_deferredRendering)
return new DeferredRenderer(root, AvaloniaLocator.Current.GetService<IRenderLoop>()); {
var loop = AvaloniaLocator.Current.GetService<IRenderLoop>();
var customRendererFactory = AvaloniaLocator.Current.GetService<IRendererFactory>();
if (customRendererFactory != null)
return customRendererFactory.Create(root, loop);
return new DeferredRenderer(root, loop);
}
return new ImmediateRenderer(root); return new ImmediateRenderer(root);
} }

5
src/Avalonia.X11/X11Window.cs

@ -331,6 +331,11 @@ namespace Avalonia.X11
public IRenderer CreateRenderer(IRenderRoot root) public IRenderer CreateRenderer(IRenderRoot root)
{ {
var loop = AvaloniaLocator.Current.GetService<IRenderLoop>(); var loop = AvaloniaLocator.Current.GetService<IRenderLoop>();
var customRendererFactory = AvaloniaLocator.Current.GetService<IRendererFactory>();
if (customRendererFactory != null)
return customRendererFactory.Create(root, loop);
return _platform.Options.UseDeferredRendering ? return _platform.Options.UseDeferredRendering ?
new DeferredRenderer(root, loop) : new DeferredRenderer(root, loop) :
(IRenderer)new X11ImmediateRendererProxy(root, loop); (IRenderer)new X11ImmediateRendererProxy(root, loop);

Loading…
Cancel
Save