diff options
author | Jacques Lucke <jacques@blender.org> | 2021-11-23 21:04:44 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-11-23 21:04:44 +0300 |
commit | 38a3819171fc25610624d69d1377701a25dea8e0 (patch) | |
tree | 92cee49f6465216560d8dfdf4a21cf7c7ae0a266 /source/blender/modifiers/intern | |
parent | ea93e5df6c4cd42dc19073fd61e11ccd1a01c395 (diff) | |
parent | 3844e9dbe771083414b0665f17ad7dd1c0caebd6 (diff) |
Merge branch 'blender-v3.0-release'
Diffstat (limited to 'source/blender/modifiers/intern')
-rw-r--r-- | source/blender/modifiers/intern/MOD_nodes_evaluator.cc | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc index e23c494f7cf..0deef91d413 100644 --- a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc +++ b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc @@ -1491,6 +1491,14 @@ class GeometryNodesEvaluator { }); } + /** + * Loads the value of a socket that is not computed by another node. Note that the socket may + * still be linked to e.g. a Group Input node, but the socket on the outside is not connected to + * anything. + * + * \param input_socket The socket of the node that wants to use the value. + * \param origin_socket The socket that we want to load the value from. + */ void load_unlinked_input_value(LockedNode &locked_node, const DInputSocket input_socket, InputState &input_state, @@ -1510,7 +1518,15 @@ class GeometryNodesEvaluator { else { SingleInputValue &single_value = *input_state.value.single; single_value.value = value.get(); - this->log_socket_value({input_socket}, value); + Vector<DSocket> sockets_to_log_to = {input_socket}; + if (origin_socket != input_socket) { + /* This might log the socket value for the #origin_socket more than once, but this is + * handled by the logging system gracefully. */ + sockets_to_log_to.append(origin_socket); + } + /* TODO: Log to the intermediate sockets between the group input and where the value is + * actually used as well. */ + this->log_socket_value(sockets_to_log_to, value); } } |