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
This commit is contained in:
Pierre Risch 2022-03-21 10:53:13 +01:00 committed by Jeroen Bakker
parent 9ed63ebb45
commit e4278b72bb
Notes: blender-bot 2023-02-14 02:13:08 +01:00
Referenced by commit 9644740230, Fix T99949: Crash when last input from File Output node is deleted
Referenced by issue #99949, Regression: Crash when last input from File Output node is deleted
Referenced by issue #84815, Missing preview image in compositing file output node
2 changed files with 11 additions and 6 deletions

View File

@ -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;
}
}
}
}

View File

@ -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;