Browse Source

Added preview to modify image right node

flabbet 7 months ago
parent
commit
88e4ca332a

+ 0 - 2
src/PixiEditor.ChangeableDocument/Changeables/Graph/Nodes/FolderNode.cs

@@ -190,8 +190,6 @@ public class FolderNode : StructureNode, IReadOnlyFolderNode, IClipSource, IPrev
             return base.RenderPreview(renderOn, context, elementToRenderName);
             return base.RenderPreview(renderOn, context, elementToRenderName);
         }
         }
 
 
-        // TODO: Make preview better, with filters, clips and stuff
-
         if (Content.Connection != null)
         if (Content.Connection != null)
         {
         {
             var executionQueue = GraphUtils.CalculateExecutionQueue(Content.Connection.Node);
             var executionQueue = GraphUtils.CalculateExecutionQueue(Content.Connection.Node);

+ 23 - 6
src/PixiEditor.ChangeableDocument/Changeables/Graph/Nodes/ModifyImageRightNode.cs

@@ -33,10 +33,10 @@ public class ModifyImageRightNode : RenderNode, IPairNode, ICustomShaderNode
 
 
     protected override void OnPaint(RenderContext renderContext, DrawingSurface targetSurface)
     protected override void OnPaint(RenderContext renderContext, DrawingSurface targetSurface)
     {
     {
-        if (OtherNode == null)
+        if (OtherNode == null || OtherNode == default)
         {
         {
-            FindStartNode();
-            if (OtherNode == null)
+            OtherNode = FindStartNode()?.Id ?? default;
+            if (OtherNode == null || OtherNode == default)
             {
             {
                 return;
                 return;
             }
             }
@@ -47,6 +47,8 @@ public class ModifyImageRightNode : RenderNode, IPairNode, ICustomShaderNode
         {
         {
             return;
             return;
         }
         }
+        
+        OtherNode = startNode.Id;
 
 
         if (startNode.Image.Value is not { Size: var size })
         if (startNode.Image.Value is not { Size: var size })
         {
         {
@@ -106,13 +108,29 @@ public class ModifyImageRightNode : RenderNode, IPairNode, ICustomShaderNode
 
 
     public override RectD? GetPreviewBounds(int frame, string elementToRenderName = "")
     public override RectD? GetPreviewBounds(int frame, string elementToRenderName = "")
     {
     {
-        //TODO: Implement
+        var startNode = FindStartNode();
+        if (startNode != null)
+        {
+            return startNode.GetPreviewBounds(frame, elementToRenderName);
+        }
+        
         return null;
         return null;
     }
     }
 
 
     public override bool RenderPreview(DrawingSurface renderOn, RenderContext context, string elementToRenderName)
     public override bool RenderPreview(DrawingSurface renderOn, RenderContext context, string elementToRenderName)
     {
     {
-        //TODO: Implement
+        var startNode = FindStartNode();
+        if (drawingPaint != null && startNode != null && startNode.Image.Value != null)
+        {
+            int saved = renderOn.Canvas.SaveLayer(drawingPaint);
+            
+            renderOn.Canvas.DrawRect(0, 0, startNode.Image.Value.Size.X, startNode.Image.Value.Size.Y, drawingPaint);
+            
+            renderOn.Canvas.RestoreToCount(saved);
+            
+            return true;
+        }
+
         return false;
         return false;
     }
     }
 
 
@@ -130,7 +148,6 @@ public class ModifyImageRightNode : RenderNode, IPairNode, ICustomShaderNode
             if (node is ModifyImageLeftNode leftNode)
             if (node is ModifyImageLeftNode leftNode)
             {
             {
                 startNode = leftNode;
                 startNode = leftNode;
-                OtherNode = leftNode.Id;
                 return false;
                 return false;
             }
             }