Blender
V3.3
|
Public Member Functions | |
LockedNode (const DNode node, NodeState &node_state) | |
Public Attributes | |
const DNode | node |
NodeState & | node_state |
Vector< DOutputSocket > | delayed_required_outputs |
Vector< DOutputSocket > | delayed_unused_outputs |
Vector< DNode > | delayed_scheduled_nodes |
Utility class that wraps a node whose state is locked. Having this is a separate class is useful because it allows methods to communicate that they expect the node to be locked.
Definition at line 297 of file MOD_nodes_evaluator.cc.
|
inline |
Definition at line 317 of file MOD_nodes_evaluator.cc.
Vector<DOutputSocket> blender::modifiers::geometry_nodes::LockedNode::delayed_required_outputs |
Used to delay notifying (and therefore locking) other nodes until the current node is not locked anymore. This might not be strictly necessary to avoid deadlocks in the current code, but it is a good measure to avoid accidentally adding a deadlock later on. By not locking more than one node per thread at a time, deadlocks are avoided.
The notifications will be send right after the node is not locked anymore.
Definition at line 313 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_required().
Definition at line 315 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::schedule_node().
Vector<DOutputSocket> blender::modifiers::geometry_nodes::LockedNode::delayed_unused_outputs |
Definition at line 314 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_unused().
const DNode blender::modifiers::geometry_nodes::LockedNode::node |
This is the node that is currently locked.
Definition at line 302 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::assert_expected_outputs_have_been_computed(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::finish_node_if_possible(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::foreach_non_lazy_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_inputs_for_execution(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::schedule_node(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_required().
NodeState& blender::modifiers::geometry_nodes::LockedNode::node_state |
Definition at line 303 of file MOD_nodes_evaluator.cc.
Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::assert_expected_outputs_have_been_computed(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::destruct_input_value_if_exists(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::finish_node_if_possible(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::foreach_non_lazy_input(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::node_task_preprocessing(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_inputs_for_execution(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_outputs_for_execution(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::schedule_node(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_required(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::set_input_unused().