[Bf-blender-cvs] [e4278b72bb1] master: T84815: Missing preview image in compositing file output node

Pierre Risch noreply at git.blender.org
Mon Mar 21 10:56:41 CET 2022


Commit: e4278b72bb1a658d2187040bd5c71c598b6c16d4
Author: Pierre Risch
Date:   Mon Mar 21 10:53:13 2022 +0100
Branches: master
https://developer.blender.org/rBe4278b72bb1a658d2187040bd5c71c598b6c16d4

T84815: Missing preview image in compositing file output node

Hello,
I saw that this revision was stalled for a few months so I tried to update it.
https://developer.blender.org/D10995
I added a function that adds a preview on the first connected input of the file output node.
I removed the preview on the single layer format
Thanks

Reviewed By: #compositing, jbakker

Maniphest Tasks: T84815

Differential Revision: https://developer.blender.org/D14219

===================================================================

M	source/blender/compositor/nodes/COM_OutputFileNode.cc
M	source/blender/compositor/nodes/COM_OutputFileNode.h

===================================================================

diff --git a/source/blender/compositor/nodes/COM_OutputFileNode.cc b/source/blender/compositor/nodes/COM_OutputFileNode.cc
index b0568dc308e..ab5898c526d 100644
--- a/source/blender/compositor/nodes/COM_OutputFileNode.cc
+++ b/source/blender/compositor/nodes/COM_OutputFileNode.cc
@@ -35,12 +35,22 @@ void OutputFileNode::map_input_sockets(NodeConverter &converter,
   }
 }
 
+void OutputFileNode::add_preview_to_first_linked_input(NodeConverter &converter) const
+{
+  NodeInput *first_socket = this->get_input_socket(0);
+  if (first_socket->is_linked()) {
+    converter.add_node_input_preview(first_socket);
+  }
+}
+
 void OutputFileNode::convert_to_operations(NodeConverter &converter,
                                            const CompositorContext &context) const
 {
   NodeImageMultiFile *storage = (NodeImageMultiFile *)this->get_bnode()->storage;
   const bool is_multiview = (context.get_render_data()->scemode & R_MULTIVIEW) != 0;
 
+  add_preview_to_first_linked_input(converter);
+
   if (!context.is_rendering()) {
     /* only output files when rendering a sequence -
      * otherwise, it overwrites the output files just
@@ -81,7 +91,6 @@ void OutputFileNode::convert_to_operations(NodeConverter &converter,
     map_input_sockets(converter, *output_operation);
   }
   else { /* single layer format */
-    bool preview_added = false;
     for (NodeInput *input : inputs_) {
       if (input->is_linked()) {
         NodeImageMultiFileSocket *sockdata =
@@ -133,11 +142,6 @@ void OutputFileNode::convert_to_operations(NodeConverter &converter,
 
         converter.add_operation(output_operation);
         converter.map_input_socket(input, output_operation->get_input_socket(0));
-
-        if (!preview_added) {
-          converter.add_node_input_preview(input);
-          preview_added = true;
-        }
       }
     }
   }
diff --git a/source/blender/compositor/nodes/COM_OutputFileNode.h b/source/blender/compositor/nodes/COM_OutputFileNode.h
index be2464c1888..61d8700270e 100644
--- a/source/blender/compositor/nodes/COM_OutputFileNode.h
+++ b/source/blender/compositor/nodes/COM_OutputFileNode.h
@@ -22,6 +22,7 @@ class OutputFileNode : public Node {
                              const CompositorContext &context) const override;
 
  private:
+  void add_preview_to_first_linked_input(NodeConverter &converter) const;
   void add_input_sockets(OutputOpenExrMultiLayerOperation &operation) const;
   void map_input_sockets(NodeConverter &converter,
                          OutputOpenExrMultiLayerOperation &operation) const;



More information about the Bf-blender-cvs mailing list