Browse Source

use composition on wasm.

pull/8911/head
Dan Walmsley 4 years ago
parent
commit
f45617b23c
  1. 5
      src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs
  2. 3
      src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs

5
src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs

@ -6,6 +6,7 @@ using Avalonia.Input.Raw;
using Avalonia.Input.TextInput; using Avalonia.Input.TextInput;
using Avalonia.Platform.Storage; using Avalonia.Platform.Storage;
using Avalonia.Rendering; using Avalonia.Rendering;
using Avalonia.Rendering.Composition;
using Avalonia.Web.Blazor.Interop; using Avalonia.Web.Blazor.Interop;
using Avalonia.Web.Blazor.Interop.Storage; using Avalonia.Web.Blazor.Interop.Storage;
@ -352,9 +353,9 @@ namespace Avalonia.Web.Blazor
// We also don't want to have it as a meaningful public API. // We also don't want to have it as a meaningful public API.
// Therefore we have InternalsVisibleTo hack here. // Therefore we have InternalsVisibleTo hack here.
if (_topLevel.Renderer is DeferredRenderer dr) if (_topLevel.Renderer is CompositingRenderer dr)
{ {
dr.Render(true); dr.CompositionTarget.ImmediateUIThreadRender();
} }
} }

3
src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs

@ -7,6 +7,7 @@ using Avalonia.Input.TextInput;
using Avalonia.Platform; using Avalonia.Platform;
using Avalonia.Platform.Storage; using Avalonia.Platform.Storage;
using Avalonia.Rendering; using Avalonia.Rendering;
using Avalonia.Rendering.Composition;
using Avalonia.Web.Blazor.Interop; using Avalonia.Web.Blazor.Interop;
using SkiaSharp; using SkiaSharp;
@ -146,7 +147,7 @@ namespace Avalonia.Web.Blazor
public IRenderer CreateRenderer(IRenderRoot root) public IRenderer CreateRenderer(IRenderRoot root)
{ {
var loop = AvaloniaLocator.Current.GetRequiredService<IRenderLoop>(); var loop = AvaloniaLocator.Current.GetRequiredService<IRenderLoop>();
return new DeferredRenderer(root, loop); return new CompositingRenderer(root, new Compositor(loop, null));
} }
public void Invalidate(Rect rect) public void Invalidate(Rect rect)

Loading…
Cancel
Save