Fix: Compositor: Unlinked group inputs are ignored
The new CPU compositor ignores group inputs that are unlinked. This patch fixes that by considering all origin sockets in multi-function procedures, be it an input or an output.
This commit is contained in:
@@ -172,14 +172,17 @@ Vector<mf::Variable *> MultiFunctionProcedureOperation::get_input_variables(DNod
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Get the output linked to the input. If it is null, that means the input is unlinked and we
|
||||
* generate a constant variable for it. */
|
||||
const DOutputSocket output = get_output_linked_to_input(input);
|
||||
if (!output) {
|
||||
input_variables.append(this->get_constant_input_variable(input));
|
||||
/* The origin socket is an input, that means the input is unlinked and we generate a constant
|
||||
* variable for it. */
|
||||
const DSocket origin = get_input_origin_socket(input);
|
||||
if (origin->is_input()) {
|
||||
input_variables.append(this->get_constant_input_variable(DInputSocket(origin)));
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Otherwise, the origin socket is an output, which means it is linked. */
|
||||
const DOutputSocket output = DOutputSocket(origin);
|
||||
|
||||
/* If the origin node is part of the multi-function procedure operation, then the output has an
|
||||
* existing variable for it. */
|
||||
if (compile_unit_.contains(output.node())) {
|
||||
|
||||
Reference in New Issue
Block a user