Explorar el Código

Dispose Paint in ApplyFilterNode and MaskNode

CPKreuz hace 3 semanas
padre
commit
4e97b0062e

+ 9 - 1
src/PixiEditor.ChangeableDocument/Changeables/Graph/Nodes/FilterNodes/ApplyFilterNode.cs

@@ -11,7 +11,7 @@ using Drawie.Numerics;
 namespace PixiEditor.ChangeableDocument.Changeables.Graph.Nodes.FilterNodes;
 
 [NodeInfo("ApplyFilter")]
-public class ApplyFilterNode : RenderNode, IRenderInput
+public sealed class ApplyFilterNode : RenderNode, IRenderInput
 {
     private readonly Paint _paint = new();
     private readonly Paint _maskPaint = new()
@@ -123,4 +123,12 @@ public class ApplyFilterNode : RenderNode, IRenderInput
         PreviewUtils.FindPreviewBounds(Background.Connection, frame, elementToRenderName);
 
     public override Node CreateCopy() => new ApplyFilterNode();
+
+    public override void Dispose()
+    {
+        base.Dispose();
+        
+        _paint.Dispose();
+        _maskPaint.Dispose();
+    }
 }

+ 9 - 2
src/PixiEditor.ChangeableDocument/Changeables/Graph/Nodes/Image/MaskNode.cs

@@ -6,13 +6,13 @@ using PixiEditor.ChangeableDocument.Rendering;
 namespace PixiEditor.ChangeableDocument.Changeables.Graph.Nodes.Image;
 
 [NodeInfo("Mask")]
-public class MaskNode : RenderNode, IRenderInput
+public sealed class MaskNode : RenderNode, IRenderInput
 {
     public RenderInputProperty Background { get; }
     public RenderInputProperty Mask { get; }
     public InputProperty<bool> Invert { get; }
 
-    protected Paint maskPaint = new()
+    private readonly Paint maskPaint = new()
     {
         BlendMode = BlendMode.DstIn,
         ColorFilter = Filters.MaskFilter
@@ -52,4 +52,11 @@ public class MaskNode : RenderNode, IRenderInput
     {
         return new MaskNode();
     }
+
+    public override void Dispose()
+    {
+        base.Dispose();
+        
+        maskPaint.Dispose();
+    }
 }