|
Blender V4.3
|
#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 101 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 186 of file BKE_node_runtime.hh.
| std::unique_ptr<anonymous_attribute_inferencing::AnonymousAttributeInferencingResult> blender::bke::bNodeTreeRuntime::anonymous_attribute_inferencing |
Information about usage of anonymous attributes within the group.
Definition at line 157 of file BKE_node_runtime.hh.
Referenced by blender::bke::ntree_copy_data().
| 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 108 of file BKE_node_runtime.hh.
| bNodeTreeExec* blender::bke::bNodeTreeRuntime::execdata = nullptr |
Legacy execution data.
Definition at line 143 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 154 of file BKE_node_runtime.hh.
Referenced by blender::bke::ntree_copy_data().
| std::unique_ptr<nodes::GeometryNodesLazyFunctionGraphInfo> blender::bke::bNodeTreeRuntime::geometry_nodes_lazy_function_graph_info |
Definition at line 167 of file BKE_node_runtime.hh.
| std::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 165 of file BKE_node_runtime.hh.
| std::unique_ptr<nodes::gizmos::TreeGizmoPropagation> blender::bke::bNodeTreeRuntime::gizmo_propagation |
Definition at line 158 of file BKE_node_runtime.hh.
Definition at line 205 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::update_node_vector().
| bNode* blender::bke::bNodeTreeRuntime::group_output_node = nullptr |
Definition at line 208 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 206 of file BKE_node_runtime.hh.
| bool blender::bke::bNodeTreeRuntime::has_undefined_nodes_or_sockets = false |
Definition at line 207 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().
| Vector<bNodeSocket *> blender::bke::bNodeTreeRuntime::input_sockets |
Definition at line 200 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().
| MultiValueMap<int, NodeLinkError> blender::bke::bNodeTreeRuntime::link_errors_by_target_node |
Stores information about invalid links. This information is then displayed to the user. The key of the map is the node identifier. The data is stored per target-node because we want to display the error information there.
Definition at line 174 of file BKE_node_runtime.hh.
Only valid when #topology_cache_is_dirty is false.
Definition at line 198 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 128 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 135 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 202 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 201 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 113 of file BKE_node_runtime.hh.
| 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 125 of file BKE_node_runtime.hh.
| void * blender::bke::bNodeTreeRuntime::prh = nullptr |
Definition at line 149 of file BKE_node_runtime.hh.
| void(* blender::bke::bNodeTreeRuntime::progress) (void *, float progress) = nullptr |
Definition at line 144 of file BKE_node_runtime.hh.
Definition at line 209 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 119 of file BKE_node_runtime.hh.
| void * blender::bke::bNodeTreeRuntime::sdh = nullptr |
Definition at line 149 of file BKE_node_runtime.hh.
| Vector<bNodeSocket *> blender::bke::bNodeTreeRuntime::sockets |
Definition at line 199 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 195 of file BKE_node_runtime.hh.
| void(* blender::bke::bNodeTreeRuntime::stats_draw) (void *, const char *str) = nullptr |
Definition at line 146 of file BKE_node_runtime.hh.
| void* blender::bke::bNodeTreeRuntime::tbh = nullptr |
Definition at line 149 of file BKE_node_runtime.hh.
| bool(* blender::bke::bNodeTreeRuntime::test_break) (void *) = nullptr |
Definition at line 147 of file BKE_node_runtime.hh.
| std::atomic<bool> blender::bke::bNodeTreeRuntime::topology_cache_exists = false |
Definition at line 181 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 180 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::ensure_topology_cache().
Definition at line 203 of file BKE_node_runtime.hh.
Definition at line 204 of file BKE_node_runtime.hh.
Referenced by blender::bke::node_tree_runtime::ensure_topology_cache().
| std::unique_ptr<bNodeTreeZones> blender::bke::bNodeTreeRuntime::tree_zones |
Definition at line 189 of file BKE_node_runtime.hh.
| CacheMutex blender::bke::bNodeTreeRuntime::tree_zones_cache_mutex |
Definition at line 188 of file BKE_node_runtime.hh.
| void * blender::bke::bNodeTreeRuntime::udh = nullptr |
Definition at line 149 of file BKE_node_runtime.hh.
| void(* blender::bke::bNodeTreeRuntime::update_draw) (void *) = nullptr |
Definition at line 148 of file BKE_node_runtime.hh.