|
Blender V4.5
|
#include <BKE_node_runtime.hh>
Inherits blender::NonCopyable, and blender::NonMovable.
Runtime data for bNodeTree from the perspective of execution instructions (rather than runtime data from evaluation of the node tree). Evaluation data is not the responsibility of the node tree and should be stored elsewhere. Evaluating a node tree should be possible without changing it.
Definition at line 120 of file BKE_node_runtime.hh.
|
mutable |
Under some circumstances, it can be useful to use the cached data while editing the bNodeTree. By default, this is protected against using an assert.
Definition at line 214 of file BKE_node_runtime.hh.
| uint32_t blender::bke::bNodeTreeRuntime::changed_flag = 0 |
Keeps track of what changed in the node tree until the next update. Should not be changed directly, instead use the functions in BKE_node_tree_update.hh. eNodeTreeChangedFlag.
Definition at line 127 of file BKE_node_runtime.hh.
| bNodeTreeExec* blender::bke::bNodeTreeRuntime::execdata = nullptr |
Legacy execution data.
Definition at line 162 of file BKE_node_runtime.hh.
| std::unique_ptr<nodes::FieldInferencingInterface> blender::bke::bNodeTreeRuntime::field_inferencing_interface |
Information about how inputs and outputs of the node group interact with fields.
Definition at line 173 of file BKE_node_runtime.hh.
Referenced by blender::bke::ntree_copy_data().
| Array<FieldSocketState> blender::bke::bNodeTreeRuntime::field_states |
Field status for every socket, accessed with #bNodeSocket::index_in_tree().
Definition at line 175 of file BKE_node_runtime.hh.
| std::unique_ptr<nodes::GeometryNodesEvalDependencies> blender::bke::bNodeTreeRuntime::geometry_nodes_eval_dependencies |
Cache of dependencies used by the node tree itself. Does not account for data that's passed into the node tree from the outside. NOTE: The node tree may reference additional data-blocks besides the ones included here. But those are not used when the node tree is evaluated by Geometry Nodes.
Definition at line 238 of file BKE_node_runtime.hh.
| std::unique_ptr<nodes::GeometryNodesLazyFunctionGraphInfo> blender::bke::bNodeTreeRuntime::geometry_nodes_lazy_function_graph_info |
Definition at line 196 of file BKE_node_runtime.hh.
| Mutex blender::bke::bNodeTreeRuntime::geometry_nodes_lazy_function_graph_info_mutex |
For geometry nodes, a lazy function graph with some additional info is cached. This is used to evaluate the node group. Caching it here allows us to reuse the preprocessed node tree in case its used multiple times.
Definition at line 194 of file BKE_node_runtime.hh.
| std::unique_ptr<nodes::gizmos::TreeGizmoPropagation> blender::bke::bNodeTreeRuntime::gizmo_propagation |
Definition at line 178 of file BKE_node_runtime.hh.
Definition at line 254 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_node_vector().
Definition at line 257 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_group_output_node().
| bool blender::bke::bNodeTreeRuntime::has_available_link_cycle = false |
Definition at line 255 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeTreeRuntime::has_undefined_nodes_or_sockets = false |
Definition at line 256 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_node_vector(), and blender::bke::node_tree_runtime::update_socket_vectors_and_owner_node().
| blender::Array<nodes::socket_usage_inference::SocketUsage> blender::bke::bNodeTreeRuntime::inferenced_input_socket_usage |
A bool for each input socket (indexed by index_in_all_inputs()) that indicates whether this socket is used by the node it belongs to. Sockets for which this is false may e.g. be grayed out.
Definition at line 186 of file BKE_node_runtime.hh.
| CacheMutex blender::bke::bNodeTreeRuntime::inferenced_input_socket_usage_mutex |
Definition at line 187 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeTreeRuntime::input_sockets |
Definition at line 249 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_directly_linked_links_and_sockets(), and blender::bke::node_tree_runtime::update_socket_vectors_and_owner_node().
| Set<int> blender::bke::bNodeTreeRuntime::invalid_zone_output_node_ids |
Definition at line 224 of file BKE_node_runtime.hh.
| std::shared_ptr<bNodeTreeZones> blender::bke::bNodeTreeRuntime::last_valid_zones |
Same as tree_zones, but may not be valid anymore. This is used for drawing errors when the zone detection failed.
Definition at line 223 of file BKE_node_runtime.hh.
| MultiValueMap<NodeLinkKey, NodeLinkError> blender::bke::bNodeTreeRuntime::link_errors |
Stores information about invalid links. This information is then displayed to the user. This is updated in #update_link_validation and is valid during drawing code.
Definition at line 202 of file BKE_node_runtime.hh.
Only valid when #topology_cache_is_dirty is false.
Definition at line 247 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_directly_linked_links_and_sockets(), and blender::bke::node_tree_runtime::update_link_vector().
| std::unique_ptr<LoggedZoneGraphs> blender::bke::bNodeTreeRuntime::logged_zone_graphs |
Allows logging zone graphs purely for debugging purposes.
Definition at line 147 of file BKE_node_runtime.hh.
| NodeIDVectorSet blender::bke::bNodeTreeRuntime::nodes_by_id |
Storage of nodes based on their identifier. Also used as a contiguous array of nodes to allow simpler and more cache friendly iteration. Supports lookup by integer or by node. Unlike other caches, this is maintained eagerly while changing the tree.
Definition at line 154 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::ensure_topology_cache(), blender::bke::ntree_copy_data(), blender::bke::node_tree_runtime::update_direct_frames_childrens(), blender::bke::node_tree_runtime::update_directly_linked_links_and_sockets(), blender::bke::node_tree_runtime::update_internal_link_inputs(), blender::bke::node_tree_runtime::update_link_vector(), blender::bke::node_tree_runtime::update_logically_linked_sockets(), blender::bke::node_tree_runtime::update_node_vector(), blender::bke::node_tree_runtime::update_nodes_by_type(), blender::bke::node_tree_runtime::update_panels(), blender::bke::node_tree_runtime::update_root_frames(), blender::bke::node_tree_runtime::update_socket_vectors_and_owner_node(), blender::bke::node_tree_runtime::update_sockets_by_identifier(), and blender::bke::node_tree_runtime::update_toposort().
| MultiValueMap<const bNodeType *, bNode *> blender::bke::bNodeTreeRuntime::nodes_by_type |
Definition at line 251 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_group_output_node(), and blender::bke::node_tree_runtime::update_nodes_by_type().
| Vector<bNodeSocket *> blender::bke::bNodeTreeRuntime::output_sockets |
Definition at line 250 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_socket_vectors_and_owner_node().
| uint32_t blender::bke::bNodeTreeRuntime::output_topology_hash = 0 |
A hash of the topology of the node tree leading up to the outputs. This is used to determine of the node tree changed in a way that requires updating geometry nodes or shaders.
Definition at line 132 of file BKE_node_runtime.hh.
| Map<bNodeInstanceKey, bNodePreview> blender::bke::bNodeTreeRuntime::previews |
Node previews for the compositor. Only available in base node trees (e.g. scene->node_tree).
Definition at line 244 of file BKE_node_runtime.hh.
Referenced by blender::bke::ntree_copy_data().
| uint32_t blender::bke::bNodeTreeRuntime::previews_refresh_state = 0 |
Contains a number increased for each node-tree update. Store a state variable in the NestedTreePreviews structure to compare if they differ.
Definition at line 144 of file BKE_node_runtime.hh.
| void * blender::bke::bNodeTreeRuntime::prh = nullptr |
Definition at line 168 of file BKE_node_runtime.hh.
| void(* blender::bke::bNodeTreeRuntime::progress) (void *, float progress) = nullptr |
Definition at line 163 of file BKE_node_runtime.hh.
| std::unique_ptr<node_tree_reference_lifetimes::ReferenceLifetimesInfo> blender::bke::bNodeTreeRuntime::reference_lifetimes_info |
Information about usage of anonymous attributes within the group.
Definition at line 177 of file BKE_node_runtime.hh.
Referenced by blender::bke::ntree_copy_data().
Definition at line 258 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_root_frames().
| uint8_t blender::bke::bNodeTreeRuntime::runtime_flag = 0 |
Used to cache run-time information of the node tree. eNodeTreeRuntimeFlag.
Definition at line 138 of file BKE_node_runtime.hh.
| void * blender::bke::bNodeTreeRuntime::sdh = nullptr |
Definition at line 168 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeTreeRuntime::sockets |
Definition at line 248 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_socket_vectors_and_owner_node().
| Set<const bNodeSocket *> blender::bke::bNodeTreeRuntime::sockets_on_active_gizmo_paths |
The stored sockets are drawn using a special link to indicate that there is a gizmo. This is only valid during node editor drawing.
Definition at line 230 of file BKE_node_runtime.hh.
Definition at line 165 of file BKE_node_runtime.hh.
| std::unique_ptr<nodes::StructureTypeInterface> blender::bke::bNodeTreeRuntime::structure_type_interface |
Definition at line 179 of file BKE_node_runtime.hh.
Referenced by blender::bke::ntree_copy_data().
| void* blender::bke::bNodeTreeRuntime::tbh = nullptr |
Definition at line 168 of file BKE_node_runtime.hh.
| bool(* blender::bke::bNodeTreeRuntime::test_break) (void *) = nullptr |
Definition at line 166 of file BKE_node_runtime.hh.
| std::atomic<bool> blender::bke::bNodeTreeRuntime::topology_cache_exists = false |
Definition at line 209 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::ensure_topology_cache().
| CacheMutex blender::bke::bNodeTreeRuntime::topology_cache_mutex |
Protects access to all topology cache variables below. This is necessary so that the cache can be updated on a const bNodeTree.
Definition at line 208 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::ensure_topology_cache().
Definition at line 252 of file BKE_node_runtime.hh.
Definition at line 253 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::ensure_topology_cache().
| std::shared_ptr<bNodeTreeZones> blender::bke::bNodeTreeRuntime::tree_zones |
Definition at line 217 of file BKE_node_runtime.hh.
| CacheMutex blender::bke::bNodeTreeRuntime::tree_zones_cache_mutex |
Definition at line 216 of file BKE_node_runtime.hh.
| void * blender::bke::bNodeTreeRuntime::udh = nullptr |
Definition at line 168 of file BKE_node_runtime.hh.
| void(* blender::bke::bNodeTreeRuntime::update_draw) (void *) = nullptr |
Definition at line 167 of file BKE_node_runtime.hh.