Blender  V3.3
Classes | Typedefs | Functions
BKE_node_tree_update.h File Reference

Go to the source code of this file.

Classes

struct  NodeTreeUpdateExtraParams
 

Typedefs

typedef struct NodeTreeUpdateExtraParams NodeTreeUpdateExtraParams
 

Functions

void BKE_ntree_update_tag_all (struct bNodeTree *ntree)
 
void BKE_ntree_update_tag_node_property (struct bNodeTree *ntree, struct bNode *node)
 
void BKE_ntree_update_tag_node_new (struct bNodeTree *ntree, struct bNode *node)
 
void BKE_ntree_update_tag_node_removed (struct bNodeTree *ntree)
 
void BKE_ntree_update_tag_node_mute (struct bNodeTree *ntree, struct bNode *node)
 
void BKE_ntree_update_tag_node_internal_link (struct bNodeTree *ntree, struct bNode *node)
 
void BKE_ntree_update_tag_socket_property (struct bNodeTree *ntree, struct bNodeSocket *socket)
 
void BKE_ntree_update_tag_socket_new (struct bNodeTree *ntree, struct bNodeSocket *socket)
 
void BKE_ntree_update_tag_socket_type (struct bNodeTree *ntree, struct bNodeSocket *socket)
 
void BKE_ntree_update_tag_socket_availability (struct bNodeTree *ntree, struct bNodeSocket *socket)
 
void BKE_ntree_update_tag_socket_removed (struct bNodeTree *ntree)
 
void BKE_ntree_update_tag_link_changed (struct bNodeTree *ntree)
 
void BKE_ntree_update_tag_link_removed (struct bNodeTree *ntree)
 
void BKE_ntree_update_tag_link_added (struct bNodeTree *ntree, struct bNodeLink *link)
 
void BKE_ntree_update_tag_link_mute (struct bNodeTree *ntree, struct bNodeLink *link)
 
void BKE_ntree_update_tag_active_output_changed (struct bNodeTree *ntree)
 
void BKE_ntree_update_tag_missing_runtime_data (struct bNodeTree *ntree)
 
void BKE_ntree_update_tag_interface (struct bNodeTree *ntree)
 
void BKE_ntree_update_tag_id_changed (struct Main *bmain, struct ID *id)
 
void BKE_ntree_update_tag_image_user_changed (struct bNodeTree *ntree, struct ImageUser *iuser)
 
void BKE_ntree_update_main (struct Main *bmain, struct NodeTreeUpdateExtraParams *params)
 
void BKE_ntree_update_main_tree (struct Main *bmain, struct bNodeTree *ntree, struct NodeTreeUpdateExtraParams *params)
 

Typedef Documentation

◆ NodeTreeUpdateExtraParams

Function Documentation

◆ BKE_ntree_update_main()

void BKE_ntree_update_main ( struct Main bmain,
struct NodeTreeUpdateExtraParams params 
)

◆ BKE_ntree_update_main_tree()

void BKE_ntree_update_main_tree ( struct Main bmain,
struct bNodeTree ntree,
struct NodeTreeUpdateExtraParams params 
)

Same as BKE_ntree_update_main, but will first only look at the provided tree and only looks at #bmain when something relevant for other data-blocks changed. This avoids scanning #bmain in many cases.

If #bmain is null, only the provided tree is updated. This should only be used in very rare cases because it may result it incorrectly synced data in DNA.

If tree is null, this is the same as calling BKE_ntree_update_main.

Definition at line 1748 of file node_tree_update.cc.

References BKE_ntree_update_main(), is_updating, ntree, and params.

Referenced by BKE_linestyle_default_shader(), ED_node_composit_default(), ED_node_shader_default(), ED_node_texture_default(), ED_node_tree_propagate_change(), blender::io::obj::get_or_create_material(), Freestyle::BlenderStrokeRenderer::GetStrokeShader(), blender::io::usd::USDMaterialReader::import_usd_preview(), ntree_exec_begin(), ntree_shader_groups_expand_inputs(), ntree_shader_groups_flatten(), ntree_shader_implicit_closure_cast(), ntree_shader_pruned_unused(), ntree_shader_shader_to_rgba_branch(), ntree_shader_unlink_hidden_value_sockets(), ntree_shader_weight_tree_invert(), and MaterialNode::update_material_nodetree().

◆ BKE_ntree_update_tag_active_output_changed()

void BKE_ntree_update_tag_active_output_changed ( struct bNodeTree ntree)

Used when the a new output node becomes active and therefore changes the output.

Definition at line 1693 of file node_tree_update.cc.

References add_tree_tag(), ntree, and NTREE_CHANGED_ANY.

Referenced by ED_node_set_active().

◆ BKE_ntree_update_tag_all()

void BKE_ntree_update_tag_all ( struct bNodeTree ntree)

Tag tree as changed without providing any more information about what has changed exactly. The update process has to assume that everything may have changed.

Using one of the methods below to tag the tree after changes is preferred when possible.

Definition at line 1618 of file node_tree_update.cc.

References add_tree_tag(), ntree, and NTREE_CHANGED_ANY.

Referenced by blo_do_versions_250(), flatten_group_do(), blender::ed::space_node::node_group_separate_selected(), ntree_set_typeinfo(), and ntreeUpdateAllNew().

◆ BKE_ntree_update_tag_id_changed()

void BKE_ntree_update_tag_id_changed ( struct Main bmain,
struct ID id 
)

Used when an id data block changed that might be used by nodes that need to be updated.

Definition at line 1708 of file node_tree_update.cc.

References add_node_tag(), FOREACH_NODETREE_BEGIN, FOREACH_NODETREE_END, LISTBASE_FOREACH, node, NODE_UPDATE_ID, bNodeTree::nodes, ntree, and NTREE_CHANGED_NODE_PROPERTY.

Referenced by BKE_image_signal(), BKE_movieclip_reload(), render_endjob(), and special_aftertrans_update__movieclip().

◆ BKE_ntree_update_tag_image_user_changed()

void BKE_ntree_update_tag_image_user_changed ( struct bNodeTree ntree,
struct ImageUser iuser 
)

Used when an image user is updated that is used by any part of the node tree.

◆ BKE_ntree_update_tag_interface()

void BKE_ntree_update_tag_interface ( struct bNodeTree ntree)

◆ BKE_ntree_update_tag_link_added()

void BKE_ntree_update_tag_link_added ( struct bNodeTree ntree,
struct bNodeLink link 
)

◆ BKE_ntree_update_tag_link_changed()

void BKE_ntree_update_tag_link_changed ( struct bNodeTree ntree)

◆ BKE_ntree_update_tag_link_mute()

void BKE_ntree_update_tag_link_mute ( struct bNodeTree ntree,
struct bNodeLink link 
)

Referenced by nodeMuteLinkToggle().

◆ BKE_ntree_update_tag_link_removed()

void BKE_ntree_update_tag_link_removed ( struct bNodeTree ntree)

Definition at line 1678 of file node_tree_update.cc.

References add_tree_tag(), ntree, and NTREE_CHANGED_LINK.

Referenced by nodeRemLink().

◆ BKE_ntree_update_tag_missing_runtime_data()

void BKE_ntree_update_tag_missing_runtime_data ( struct bNodeTree ntree)

Used after file loading when run-time data on the tree has not been initialized yet.

Definition at line 1698 of file node_tree_update.cc.

References add_tree_tag(), ntree, and NTREE_CHANGED_ALL.

Referenced by ntreeBlendReadData().

◆ BKE_ntree_update_tag_node_internal_link()

void BKE_ntree_update_tag_node_internal_link ( struct bNodeTree ntree,
struct bNode node 
)

Definition at line 1668 of file node_tree_update.cc.

References add_node_tag(), node, ntree, and NTREE_CHANGED_INTERNAL_LINK.

Referenced by nodeRemoveSocketEx().

◆ BKE_ntree_update_tag_node_mute()

void BKE_ntree_update_tag_node_mute ( struct bNodeTree ntree,
struct bNode node 
)

◆ BKE_ntree_update_tag_node_new()

void BKE_ntree_update_tag_node_new ( struct bNodeTree ntree,
struct bNode node 
)

◆ BKE_ntree_update_tag_node_property()

void BKE_ntree_update_tag_node_property ( struct bNodeTree ntree,
struct bNode node 
)

◆ BKE_ntree_update_tag_node_removed()

void BKE_ntree_update_tag_node_removed ( struct bNodeTree ntree)

◆ BKE_ntree_update_tag_socket_availability()

void BKE_ntree_update_tag_socket_availability ( struct bNodeTree ntree,
struct bNodeSocket socket 
)

Definition at line 1653 of file node_tree_update.cc.

References add_socket_tag(), ntree, and NTREE_CHANGED_SOCKET_PROPERTY.

Referenced by nodeSetSocketAvailability().

◆ BKE_ntree_update_tag_socket_new()

void BKE_ntree_update_tag_socket_new ( struct bNodeTree ntree,
struct bNodeSocket socket 
)

Definition at line 1638 of file node_tree_update.cc.

References add_socket_tag(), ntree, and NTREE_CHANGED_SOCKET_PROPERTY.

Referenced by nodeAddSocket().

◆ BKE_ntree_update_tag_socket_property()

void BKE_ntree_update_tag_socket_property ( struct bNodeTree ntree,
struct bNodeSocket socket 
)

Definition at line 1633 of file node_tree_update.cc.

References add_socket_tag(), ntree, and NTREE_CHANGED_SOCKET_PROPERTY.

◆ BKE_ntree_update_tag_socket_removed()

void BKE_ntree_update_tag_socket_removed ( struct bNodeTree ntree)

◆ BKE_ntree_update_tag_socket_type()

void BKE_ntree_update_tag_socket_type ( struct bNodeTree ntree,
struct bNodeSocket socket 
)

Definition at line 1648 of file node_tree_update.cc.

References add_socket_tag(), ntree, and NTREE_CHANGED_SOCKET_PROPERTY.

Referenced by node_socket_set_typeinfo().