Blender  V3.3
Public Attributes | List of all members
blender::modifiers::geometry_nodes::OutputState Struct Reference

Public Attributes

bool has_been_computed = false
 
ValueUsage output_usage = ValueUsage::Maybe
 
ValueUsage output_usage_for_execution = ValueUsage::Maybe
 
int potential_users = 0
 

Detailed Description

Definition at line 149 of file MOD_nodes_evaluator.cc.

Member Data Documentation

◆ has_been_computed

bool blender::modifiers::geometry_nodes::OutputState::has_been_computed = false

◆ output_usage

ValueUsage blender::modifiers::geometry_nodes::OutputState::output_usage = ValueUsage::Maybe

Keeps track of how the output value is used. If a connected input becomes required, this output has to become required as well. The output becomes ignored when it has zero potential users that are counted below.

Definition at line 161 of file MOD_nodes_evaluator.cc.

Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::finish_node_if_possible(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::initialize_node_state(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_outputs_for_execution(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::send_output_required_notification().

◆ output_usage_for_execution

ValueUsage blender::modifiers::geometry_nodes::OutputState::output_usage_for_execution = ValueUsage::Maybe

This is a copy of output_usage that is done right before node execution starts. This is done so that the node gets a consistent view of what outputs are used, even when this changes while the node is running (the node might be reevaluated in that case).

While the node is running, this can be checked without a lock, because no one is writing to it.

Definition at line 171 of file MOD_nodes_evaluator.cc.

Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::assert_expected_outputs_have_been_computed(), blender::modifiers::geometry_nodes::NodeParamsProvider::lazy_output_is_required(), blender::modifiers::geometry_nodes::NodeParamsProvider::output_is_required(), blender::modifiers::geometry_nodes::GeometryNodesEvaluator::prepare_node_outputs_for_execution(), and blender::modifiers::geometry_nodes::NodeParamsProvider::set_default_remaining_outputs().

◆ potential_users

int blender::modifiers::geometry_nodes::OutputState::potential_users = 0

Counts how many times the value from this output might be used. If this number reaches zero, the output is not needed anymore.

Definition at line 177 of file MOD_nodes_evaluator.cc.

Referenced by blender::modifiers::geometry_nodes::GeometryNodesEvaluator::initialize_node_state(), and blender::modifiers::geometry_nodes::GeometryNodesEvaluator::send_output_unused_notification().


The documentation for this struct was generated from the following file: