From f45617b23cfae909c0a533e2edf283f770b00445 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Fri, 26 Aug 2022 15:10:10 +0100 Subject: [PATCH] use composition on wasm. --- src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs | 5 +++-- src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs b/src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs index 09128d714d..1bba8327bf 100644 --- a/src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs +++ b/src/Web/Avalonia.Web.Blazor/AvaloniaView.razor.cs @@ -6,6 +6,7 @@ using Avalonia.Input.Raw; using Avalonia.Input.TextInput; using Avalonia.Platform.Storage; using Avalonia.Rendering; +using Avalonia.Rendering.Composition; using Avalonia.Web.Blazor.Interop; 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. // Therefore we have InternalsVisibleTo hack here. - if (_topLevel.Renderer is DeferredRenderer dr) + if (_topLevel.Renderer is CompositingRenderer dr) { - dr.Render(true); + dr.CompositionTarget.ImmediateUIThreadRender(); } } diff --git a/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs b/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs index af9a07927e..86860ebd58 100644 --- a/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs +++ b/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs @@ -7,6 +7,7 @@ using Avalonia.Input.TextInput; using Avalonia.Platform; using Avalonia.Platform.Storage; using Avalonia.Rendering; +using Avalonia.Rendering.Composition; using Avalonia.Web.Blazor.Interop; using SkiaSharp; @@ -146,7 +147,7 @@ namespace Avalonia.Web.Blazor public IRenderer CreateRenderer(IRenderRoot root) { var loop = AvaloniaLocator.Current.GetRequiredService(); - return new DeferredRenderer(root, loop); + return new CompositingRenderer(root, new Compositor(loop, null)); } public void Invalidate(Rect rect)