Fix: input sockets of output nodes are grayed out

Just like the root group output node, those should be treated
as outputs of the node tree and are thus always used.
This commit is contained in:
Jacques Lucke
2025-01-23 19:34:52 +01:00
parent 7584ccc28d
commit c1e6cb3a0e

View File

@@ -208,6 +208,17 @@ struct SocketUsageInferencer {
this->usage_task__input__capture_attribute_node(socket);
break;
}
case SH_NODE_OUTPUT_AOV:
case SH_NODE_OUTPUT_LIGHT:
case SH_NODE_OUTPUT_WORLD:
case SH_NODE_OUTPUT_LINESTYLE:
case SH_NODE_OUTPUT_MATERIAL:
case CMP_NODE_OUTPUT_FILE:
case CMP_NODE_COMPOSITE:
case TEX_NODE_OUTPUT: {
this->usage_task__input__output_node(socket);
break;
}
default: {
this->usage_task__input__fallback(socket);
break;
@@ -215,6 +226,11 @@ struct SocketUsageInferencer {
}
}
void usage_task__input__output_node(const SocketInContext &socket)
{
all_socket_usages_.add_new(socket, true);
}
/**
* Assumes that the first input is a condition that selects one of the remaining inputs which is
* then output. If necessary, this can trigger a value task for the condition socket.