Browse Source

Fixed broken scene rendering

flabbet 7 months ago
parent
commit
aa5232bfbb
1 changed files with 4 additions and 12 deletions
  1. 4 12
      src/PixiEditor/Models/Rendering/SceneRenderer.cs

+ 4 - 12
src/PixiEditor/Models/Rendering/SceneRenderer.cs

@@ -11,13 +11,12 @@ using PixiEditor.Models.Handlers;
 
 
 namespace PixiEditor.Models.Rendering;
 namespace PixiEditor.Models.Rendering;
 
 
-internal class SceneRenderer : IDisposable
+internal class SceneRenderer 
 {
 {
     public IReadOnlyDocument Document { get; }
     public IReadOnlyDocument Document { get; }
     public IDocument DocumentViewModel { get; }
     public IDocument DocumentViewModel { get; }
     public bool HighResRendering { get; set; } = true;
     public bool HighResRendering { get; set; } = true;
 
 
-    private Texture renderTexture;
 
 
     public SceneRenderer(IReadOnlyDocument trackerDocument, IDocument documentViewModel)
     public SceneRenderer(IReadOnlyDocument trackerDocument, IDocument documentViewModel)
     {
     {
@@ -35,15 +34,12 @@ internal class SceneRenderer : IDisposable
     private void RenderGraph(DrawingSurface target, ChunkResolution resolution, string? targetOutput)
     private void RenderGraph(DrawingSurface target, ChunkResolution resolution, string? targetOutput)
     {
     {
         DrawingSurface renderTarget = target;
         DrawingSurface renderTarget = target;
+        Texture? renderTexture = null;
 
 
         if (!HighResRendering || !HighDpiRenderNodePresent(Document.NodeGraph))
         if (!HighResRendering || !HighDpiRenderNodePresent(Document.NodeGraph))
         {
         {
-            if (renderTexture == null || renderTexture.Size != Document.Size)
-            {
-                renderTexture = Texture.ForProcessing(Document.Size, Document.ProcessingColorSpace);
-            }
+            renderTexture = Texture.ForProcessing(Document.Size, Document.ProcessingColorSpace);
 
 
-            renderTexture.DrawingSurface.Canvas.Clear();
             renderTarget = renderTexture.DrawingSurface;
             renderTarget = renderTexture.DrawingSurface;
         }
         }
 
 
@@ -55,6 +51,7 @@ internal class SceneRenderer : IDisposable
         if (renderTexture != null)
         if (renderTexture != null)
         {
         {
             target.Canvas.DrawSurface(renderTexture.DrawingSurface, 0, 0);
             target.Canvas.DrawSurface(renderTexture.DrawingSurface, 0, 0);
+            renderTexture.Dispose();
         }
         }
     }
     }
 
 
@@ -155,9 +152,4 @@ internal class SceneRenderer : IDisposable
             finalGraph.Execute(onionContext);
             finalGraph.Execute(onionContext);
         }
         }
     }
     }
-
-    public void Dispose()
-    {
-        renderTexture?.Dispose();
-    }
 }
 }