From 04ff14f0cde3b93d29a4239dc1ca5bf9d36ccb26 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sat, 29 Apr 2023 23:58:59 -0400 Subject: [PATCH] Return WriteableBitmap from the GetLastRenderedFrame API --- src/Headless/Avalonia.Headless/HeadlessWindowExtensions.cs | 4 ++-- src/Headless/Avalonia.Headless/HeadlessWindowImpl.cs | 4 ++-- src/Headless/Avalonia.Headless/IHeadlessWindow.cs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Headless/Avalonia.Headless/HeadlessWindowExtensions.cs b/src/Headless/Avalonia.Headless/HeadlessWindowExtensions.cs index 8fbc5ec6ef..7d4b7f5477 100644 --- a/src/Headless/Avalonia.Headless/HeadlessWindowExtensions.cs +++ b/src/Headless/Avalonia.Headless/HeadlessWindowExtensions.cs @@ -17,7 +17,7 @@ public static class HeadlessWindowExtensions /// Triggers a renderer timer tick and captures last rendered frame. /// /// Bitmap with last rendered frame. Null, if nothing was rendered. - public static Bitmap? CaptureRenderedFrame(this TopLevel topLevel) + public static WriteableBitmap? CaptureRenderedFrame(this TopLevel topLevel) { Dispatcher.UIThread.RunJobs(); AvaloniaHeadlessPlatform.ForceRenderTimerTick(); @@ -29,7 +29,7 @@ public static class HeadlessWindowExtensions /// Note, in order to trigger rendering timer, call method. /// /// Bitmap with last rendered frame. Null, if nothing was rendered. - public static Bitmap? GetLastRenderedFrame(this TopLevel topLevel) + public static WriteableBitmap? GetLastRenderedFrame(this TopLevel topLevel) { if (AvaloniaLocator.Current.GetService() is HeadlessPlatformRenderInterface) { diff --git a/src/Headless/Avalonia.Headless/HeadlessWindowImpl.cs b/src/Headless/Avalonia.Headless/HeadlessWindowImpl.cs index b15c1eb327..93f92d46f8 100644 --- a/src/Headless/Avalonia.Headless/HeadlessWindowImpl.cs +++ b/src/Headless/Avalonia.Headless/HeadlessWindowImpl.cs @@ -214,7 +214,7 @@ namespace Avalonia.Headless }); } - public Bitmap? GetLastRenderedFrame() + public WriteableBitmap? GetLastRenderedFrame() { lock (_sync) { @@ -224,7 +224,7 @@ namespace Avalonia.Headless } using var lockedFramebuffer = _lastRenderedFrame.Lock(); - return new Bitmap(lockedFramebuffer.Format, AlphaFormat.Opaque, lockedFramebuffer.Address, + return new WriteableBitmap(lockedFramebuffer.Format, AlphaFormat.Opaque, lockedFramebuffer.Address, lockedFramebuffer.Size, lockedFramebuffer.Dpi, lockedFramebuffer.RowBytes); } } diff --git a/src/Headless/Avalonia.Headless/IHeadlessWindow.cs b/src/Headless/Avalonia.Headless/IHeadlessWindow.cs index f3da2335bc..ef501b3800 100644 --- a/src/Headless/Avalonia.Headless/IHeadlessWindow.cs +++ b/src/Headless/Avalonia.Headless/IHeadlessWindow.cs @@ -8,7 +8,7 @@ namespace Avalonia.Headless { internal interface IHeadlessWindow { - Bitmap? GetLastRenderedFrame(); + WriteableBitmap? GetLastRenderedFrame(); void KeyPress(Key key, RawInputModifiers modifiers); void KeyRelease(Key key, RawInputModifiers modifiers); void MouseDown(Point point, MouseButton button, RawInputModifiers modifiers = RawInputModifiers.None);