|
Blender V5.0
|
#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 220 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 244 of file BKE_node_runtime.hh.
| std::unique_ptr<nodes::GeometryNodesLazyFunctionGraphInfo> blender::bke::bNodeTreeRuntime::geometry_nodes_lazy_function_graph_info |
Definition at line 195 of file BKE_node_runtime.hh.
| CacheMutex 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 193 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 260 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_node_vector().
Definition at line 263 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 261 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeTreeRuntime::has_undefined_nodes_or_sockets = false |
Definition at line 262 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().
| CacheMutex blender::bke::bNodeTreeRuntime::inferenced_input_socket_usage_mutex |
Definition at line 186 of file BKE_node_runtime.hh.
| blender::Array<nodes::socket_usage_inference::SocketUsage> blender::bke::bNodeTreeRuntime::inferenced_socket_usage |
Indexed by #bNodeSocket::index_in_tree(). Contains information about whether the socket is used or visible.
Definition at line 185 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeTreeRuntime::input_sockets |
Definition at line 255 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 230 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 229 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 201 of file BKE_node_runtime.hh.
Only valid when #topology_cache_is_dirty is false.
Definition at line 253 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 257 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 256 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->compositing_node_group).
Definition at line 250 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.
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 264 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.
Error messages for shading nodes. Those don't have more contextual information yet. Maps bNode::identifier to error messages.
Definition at line 207 of file BKE_node_runtime.hh.
| Mutex blender::bke::bNodeTreeRuntime::shader_node_errors_mutex |
Definition at line 208 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeTreeRuntime::sockets |
Definition at line 254 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 236 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 215 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 214 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::ensure_topology_cache().
Definition at line 258 of file BKE_node_runtime.hh.
Definition at line 259 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 223 of file BKE_node_runtime.hh.
| CacheMutex blender::bke::bNodeTreeRuntime::tree_zones_cache_mutex |
Definition at line 222 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.