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
pull/20514/merge
Julien Lebosquain 20 hours ago
committed by GitHub
parent
commit
5f47b4be53
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  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
{
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]];
}
}

4
src/Avalonia.Native/TopLevelImpl.cs

@ -566,8 +566,8 @@ internal class TopLevelImpl : ITopLevelImpl, IFramebufferPlatformSurface
{
ObjectDisposedException.ThrowIf(_target is null, this);
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 =>
{

Loading…
Cancel
Save