Browse Source

Fixed flashing on zooming

Krzysztof Krysiński 1 ngày trước cách đây
mục cha
commit
48f37f8310

+ 1 - 0
src/PixiEditor/Models/Rendering/SceneRenderer.cs

@@ -24,6 +24,7 @@ internal class SceneRenderer
     public IDocument DocumentViewModel { get; }
     public bool HighResRendering { get; set; } = true;
 
+    public IReadOnlyDictionary<Guid, RenderState> LastRenderedStates => lastRenderedStates;
     private Dictionary<Guid, RenderState> lastRenderedStates = new();
     private int lastGraphCacheHash = -1;
     private KeyFrameTime lastFrameTime;

+ 6 - 2
src/PixiEditor/Views/Rendering/Scene.cs

@@ -370,10 +370,14 @@ internal class Scene : Zoombox.Zoombox, ICustomHitTest
             }
             else
             {
-                float scale = CalculateResolutionScale();
                 saved = texture.Canvas.Save();
+                ChunkResolution renderedResolution = ChunkResolution.Full;
+                if (SceneRenderer != null && SceneRenderer.LastRenderedStates.ContainsKey(ViewportId))
+                {
+                    renderedResolution = SceneRenderer.LastRenderedStates[ViewportId].ChunkResolution;
+                }
                 texture.Canvas.SetMatrix(matrixDiff);
-                texture.Canvas.Scale(scale);
+                texture.Canvas.Scale((float)renderedResolution.InvertedMultiplier());
                 hasSaved = true;
             }