From 5cc95534824af434676ce4012f4b3d95be1cf32e Mon Sep 17 00:00:00 2001 From: Julien Lebosquain Date: Mon, 12 Jun 2023 14:45:46 +0200 Subject: [PATCH] Compositor: fix initial dirty rect with scaling < 1 --- .../Composition/Server/ServerCompositionTarget.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs index 5e76ee56cf..8f1aa1cb49 100644 --- a/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs +++ b/src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionTarget.cs @@ -159,14 +159,15 @@ namespace Avalonia.Rendering.Composition.Server _redrawRequested = false; using (var targetContext = _renderTarget.CreateDrawingContext()) { - var layerSize = Size * Scaling; + var size = Size; + var layerSize = size * Scaling; if (layerSize != _layerSize || _layer == null || _layer.IsCorrupted) { _layer?.Dispose(); _layer = null; - _layer = targetContext.CreateLayer(Size); + _layer = targetContext.CreateLayer(size); _layerSize = layerSize; - _dirtyRect = new Rect(0, 0, layerSize.Width, layerSize.Height); + _dirtyRect = new Rect(0, 0, size.Width, size.Height); } if (_dirtyRect.Width != 0 || _dirtyRect.Height != 0) @@ -187,7 +188,7 @@ namespace Avalonia.Rendering.Composition.Server else targetContext.DrawBitmap(_layer, 1, new Rect(_layerSize), - new Rect(Size)); + new Rect(size)); if (DebugOverlays != RendererDebugOverlays.None) {