Blender V4.3
BKE_node_tree_update.hh File Reference

Go to the source code of this file.

Classes

struct  NodeTreeUpdateExtraParams
 

Functions

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

Function Documentation

◆ BKE_ntree_update_main()

◆ BKE_ntree_update_main_tree()

void BKE_ntree_update_main_tree ( Main * bmain,
bNodeTree * ntree,
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 1824 of file node_tree_update.cc.

References BKE_ntree_update_main(), is_updating, and params.

Referenced by blender::bke::add_auto_smooth_node_tree(), BKE_linestyle_default_shader(), blender::ed::space_node::connect_nested_node_to_node(), blender::ed::space_node::connect_node_to_surface_output(), blender::ed::space_node::connect_nodes_to_aovs(), blender::io::usd::dome_light_to_world_material(), 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_branches(), ntree_shader_unlink_hidden_value_sockets(), ntree_shader_weight_tree_invert(), blender::io::usd::USDPointInstancerReader::read_object_data(), blender::io::usd::USDPointInstancerReader::set_collection(), and MaterialNode::update_material_nodetree().

◆ BKE_ntree_update_tag_active_output_changed()

void BKE_ntree_update_tag_active_output_changed ( bNodeTree * ntree)

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

Definition at line 1759 of file node_tree_update.cc.

References add_tree_tag(), and NTREE_CHANGED_ANY.

Referenced by ED_node_set_active().

◆ BKE_ntree_update_tag_all()

void BKE_ntree_update_tag_all ( 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 1684 of file node_tree_update.cc.

References add_tree_tag(), and NTREE_CHANGED_ANY.

Referenced by blo_do_versions_250(), flatten_group_do(), foreach_libblock_remap_callback_apply(), blender::ed::space_node::node_group_separate_selected(), blender::bke::node_tree_update_all_new(), blender::bke::ntree_set_typeinfo(), and paste_material_exec().

◆ BKE_ntree_update_tag_id_changed()

void BKE_ntree_update_tag_id_changed ( Main * bmain,
ID * id )

◆ BKE_ntree_update_tag_image_user_changed()

void BKE_ntree_update_tag_image_user_changed ( bNodeTree * ntree,
ImageUser * iuser )

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

Definition at line 1787 of file node_tree_update.cc.

References add_tree_tag(), and NTREE_CHANGED_ANY.

◆ BKE_ntree_update_tag_link_added()

◆ BKE_ntree_update_tag_link_changed()

◆ BKE_ntree_update_tag_link_mute()

void BKE_ntree_update_tag_link_mute ( bNodeTree * ntree,
bNodeLink * link )

Definition at line 1754 of file node_tree_update.cc.

References add_tree_tag(), and NTREE_CHANGED_LINK.

Referenced by blender::bke::node_link_set_mute().

◆ BKE_ntree_update_tag_link_removed()

◆ BKE_ntree_update_tag_missing_runtime_data()

void BKE_ntree_update_tag_missing_runtime_data ( bNodeTree * ntree)

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

Definition at line 1764 of file node_tree_update.cc.

References add_tree_tag(), and NTREE_CHANGED_ALL.

Referenced by blender::bke::node_tree_blend_read_data().

◆ BKE_ntree_update_tag_node_internal_link()

void BKE_ntree_update_tag_node_internal_link ( bNodeTree * ntree,
bNode * node )

◆ BKE_ntree_update_tag_node_mute()

void BKE_ntree_update_tag_node_mute ( bNodeTree * ntree,
bNode * node )

◆ BKE_ntree_update_tag_node_new()

◆ BKE_ntree_update_tag_node_property()

◆ BKE_ntree_update_tag_node_removed()

void BKE_ntree_update_tag_node_removed ( bNodeTree * ntree)

◆ BKE_ntree_update_tag_parent_change()

void BKE_ntree_update_tag_parent_change ( bNodeTree * ntree,
bNode * node )

Used when change parent node.

Definition at line 1769 of file node_tree_update.cc.

References add_node_tag(), and NTREE_CHANGED_PARENT.

Referenced by blender::bke::node_attach_node(), and blender::bke::node_detach_node().

◆ BKE_ntree_update_tag_socket_availability()

void BKE_ntree_update_tag_socket_availability ( bNodeTree * ntree,
bNodeSocket * socket )

◆ BKE_ntree_update_tag_socket_new()

◆ BKE_ntree_update_tag_socket_property()

void BKE_ntree_update_tag_socket_property ( bNodeTree * ntree,
bNodeSocket * socket )

◆ BKE_ntree_update_tag_socket_removed()

void BKE_ntree_update_tag_socket_removed ( bNodeTree * ntree)

◆ BKE_ntree_update_tag_socket_type()

void BKE_ntree_update_tag_socket_type ( bNodeTree * ntree,
bNodeSocket * socket )