Browse Source

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
release/latest
Julien Lebosquain 2 months ago
parent
commit
79627df56d
No known key found for this signature in database GPG Key ID: 1833CAD10ACC46FD
  1. 3
      native/Avalonia.Native/src/OSX/AvnView.mm
  2. 4
      src/Avalonia.Native/TopLevelImpl.cs

3
native/Avalonia.Native/src/OSX/AvnView.mm

@ -42,7 +42,8 @@
- (void) updateRenderTarget - (void) updateRenderTarget
{ {
if(_currentRenderTarget) { if(_currentRenderTarget) {
[_currentRenderTarget resize:_lastPixelSize withScale:static_cast<float>([[self window] backingScaleFactor])]; AvnPixelSize size { MAX(_lastPixelSize.Width, 1), MAX(_lastPixelSize.Height, 1) };
[_currentRenderTarget resize:size withScale:static_cast<float>([[self window] backingScaleFactor])];
[self setNeedsDisplayInRect:[self frame]]; [self setNeedsDisplayInRect:[self frame]];
} }
} }

4
src/Avalonia.Native/TopLevelImpl.cs

@ -566,8 +566,8 @@ internal class TopLevelImpl : ITopLevelImpl, IFramebufferPlatformSurface
public ILockedFramebuffer Lock() public ILockedFramebuffer Lock()
{ {
var w = _parent._savedLogicalSize.Width * _parent._savedScaling; var w = Math.Max(_parent._savedLogicalSize.Width * _parent._savedScaling, 1);
var h = _parent._savedLogicalSize.Height * _parent._savedScaling; var h = Math.Max(_parent._savedLogicalSize.Height * _parent._savedScaling, 1);
var dpi = _parent._savedScaling * 96; var dpi = _parent._savedScaling * 96;
return new DeferredFramebuffer(_target, cb => return new DeferredFramebuffer(_target, cb =>
{ {

Loading…
Cancel
Save