From 79627df56dad3635df4f656ae47a84ea3dd907ec Mon Sep 17 00:00:00 2001 From: Julien Lebosquain Date: Thu, 5 Feb 2026 11:51:42 +0000 Subject: [PATCH] macOS: Ensure render target is at least 1x1 (#20610) * Ensure Metal render target is at least 1x1 * Ensure software render target is at least 1x1 #Conflicts: # src/Avalonia.Native/TopLevelImpl.cs --- native/Avalonia.Native/src/OSX/AvnView.mm | 3 ++- src/Avalonia.Native/TopLevelImpl.cs | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/native/Avalonia.Native/src/OSX/AvnView.mm b/native/Avalonia.Native/src/OSX/AvnView.mm index 0da6f43bf4..600dca865f 100644 --- a/native/Avalonia.Native/src/OSX/AvnView.mm +++ b/native/Avalonia.Native/src/OSX/AvnView.mm @@ -42,7 +42,8 @@ - (void) updateRenderTarget { if(_currentRenderTarget) { - [_currentRenderTarget resize:_lastPixelSize withScale:static_cast([[self window] backingScaleFactor])]; + AvnPixelSize size { MAX(_lastPixelSize.Width, 1), MAX(_lastPixelSize.Height, 1) }; + [_currentRenderTarget resize:size withScale:static_cast([[self window] backingScaleFactor])]; [self setNeedsDisplayInRect:[self frame]]; } } diff --git a/src/Avalonia.Native/TopLevelImpl.cs b/src/Avalonia.Native/TopLevelImpl.cs index dbd48350da..aa6ba524f2 100644 --- a/src/Avalonia.Native/TopLevelImpl.cs +++ b/src/Avalonia.Native/TopLevelImpl.cs @@ -566,8 +566,8 @@ internal class TopLevelImpl : ITopLevelImpl, IFramebufferPlatformSurface public ILockedFramebuffer Lock() { - var w = _parent._savedLogicalSize.Width * _parent._savedScaling; - var h = _parent._savedLogicalSize.Height * _parent._savedScaling; + var w = Math.Max(_parent._savedLogicalSize.Width * _parent._savedScaling, 1); + var h = Math.Max(_parent._savedLogicalSize.Height * _parent._savedScaling, 1); var dpi = _parent._savedScaling * 96; return new DeferredFramebuffer(_target, cb => {