|
Blender V5.0
|
Go to the source code of this file.
Classes | |
| struct | NodeTreeUpdateExtraParams |
| void BKE_ntree_update | ( | Main & | bmain, |
| std::optional< blender::Span< bNodeTree * > > | modified_trees = std::nullopt, | ||
| const NodeTreeUpdateExtraParams & | params = {} ) |
Updates the given bmain to ensure invariants related to node trees (for example that group nodes have sockets that correspond to the referenced node tree).
| bmain | Used to e.g. find node trees that depend on a modified node tree and thus have to be modified too. |
| modified_trees | Optional filter for node trees that have been modified. Passing this in may make the update faster by avoiding having to iterate over all node trees. |
| params | Additional parameters that allow the caller to properly tag the depsgraph and sent notifiers. |
References params.
Referenced by BKE_image_signal(), blender::bke::node_tree_update_all_new(), blender::bke::node_tree_update_all_users(), ntreeCompositTagRender(), propagate_node_tree_changes(), render_endjob(), blender::ed::transform::special_aftertrans_update__movieclip(), and blender::ed::transform::special_aftertrans_update__movieclip_for_curves().
| void BKE_ntree_update_after_single_tree_change | ( | Main & | bmain, |
| bNodeTree & | modified_tree, | ||
| const NodeTreeUpdateExtraParams & | params = {} ) |
Same as BKE_ntree_update but with a simpler API for the case when only a single tree has been modified.
Definition at line 2185 of file node_tree_update.cc.
References BKE_ntree_update(), 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(), blender::ed::space_node::duplicate_compositing_node_group_exec(), ED_node_composit_default(), ED_node_composit_default_init(), ED_node_shader_default(), ED_node_texture_default(), blender::io::obj::get_or_create_material(), Freestyle::BlenderStrokeRenderer::GetStrokeShader(), blender::io::fbx::import_material(), blender::io::usd::USDMaterialReader::import_usd_preview_nodes(), blender::ed::space_node::initialize_compositor_sequencer_node_group(), blender::ed::space_node::new_compositing_node_group_exec(), blender::ed::space_node::new_compositor_sequencer_node_group_exec(), ntree_exec_begin(), blender::io::usd::USDPointInstancerReader::read_object_data(), and blender::io::usd::USDPointInstancerReader::set_collection().
| 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 2113 of file node_tree_update.cc.
References add_tree_tag(), and NTREE_CHANGED_ANY.
Referenced by ED_node_set_active(), blender::ed::space_node::viewer_linking::finalize_viewer_link(), and blender::ed::space_node::node_activate_viewer_exec().
| 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 2033 of file node_tree_update.cc.
References add_tree_tag(), and NTREE_CHANGED_ANY.
Referenced by blo_do_versions_250(), 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().
Used when an id data block changed that might be used by nodes that need to be updated.
Definition at line 2128 of file node_tree_update.cc.
References add_node_tag(), FOREACH_NODETREE_BEGIN, FOREACH_NODETREE_END, bNode::id, NODE_UPDATE_ID, NTREE_CHANGED_NODE_PROPERTY, and bNode::runtime.
Referenced by BKE_image_signal(), BKE_movieclip_reload(), render_endjob(), render_view_add_exec(), render_view_remove_exec(), blender::ed::transform::special_aftertrans_update__movieclip(), and blender::ed::transform::special_aftertrans_update__movieclip_for_curves().
Used when an image user is updated that is used by any part of the node tree.
Definition at line 2141 of file node_tree_update.cc.
References add_tree_tag(), and NTREE_CHANGED_ANY.
Definition at line 2103 of file node_tree_update.cc.
References add_tree_tag(), and NTREE_CHANGED_LINK.
Referenced by blender::ed::space_node::add_dragged_links_to_tree(), blo_do_versions_250(), blender::bke::node_add_link(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_group_ungroup(), and version_node_add_link().
| void BKE_ntree_update_tag_link_changed | ( | bNodeTree * | ntree | ) |
Definition at line 2093 of file node_tree_update.cc.
References add_tree_tag(), and NTREE_CHANGED_LINK.
Referenced by blender::ed::space_node::add_reroute_exec(), blender::ed::space_node::displace_links(), blender::ed::space_node::join_group_inputs(), blender::ed::space_node::node_insert_on_link_flags(), blender::bke::node_internal_relink(), blender::ed::space_node::node_swap_links(), and blender::ed::space_node::viewer_linking::view_socket().
Definition at line 2108 of file node_tree_update.cc.
References add_tree_tag(), and NTREE_CHANGED_LINK.
Referenced by blender::bke::node_link_set_mute().
| void BKE_ntree_update_tag_link_removed | ( | bNodeTree * | ntree | ) |
Definition at line 2098 of file node_tree_update.cc.
References add_tree_tag(), and NTREE_CHANGED_LINK.
Referenced by blender::ed::space_node::displace_links(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_link_cancel(), and blender::bke::node_remove_link().
| 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 2118 of file node_tree_update.cc.
References add_tree_tag(), and NTREE_CHANGED_ALL.
Referenced by blender::bke::node_tree_blend_read_data().
Definition at line 2088 of file node_tree_update.cc.
References add_node_tag(), and NTREE_CHANGED_INTERNAL_LINK.
Referenced by blender::bke::node_remove_socket_ex().
Definition at line 2083 of file node_tree_update.cc.
References add_node_tag(), and NTREE_CHANGED_NODE_PROPERTY.
Referenced by blender::ed::space_node::node_mute_exec().
Definition at line 2043 of file node_tree_update.cc.
References add_node_tag(), and NTREE_CHANGED_NODE_PROPERTY.
Referenced by blender::bke::node_add_node(), blender::bke::node_copy_with_mapping(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_group_ungroup(), version_add_group_in_out_node(), and version_node_add_empty().
More specialized tag functions that may result in a more efficient update.
Definition at line 2038 of file node_tree_update.cc.
References add_node_tag(), and NTREE_CHANGED_NODE_PROPERTY.
Referenced by blender::ed::space_node::add_node_group_asset(), blender::ed::space_node::attribute_search_exec_fn(), BLO_update_defaults_startup_blend(), blender::ed::space_node::connect_nested_node_to_node(), blender::ed::space_node::node_add_group_exec(), blender::ed::space_node::node_add_image_exec(), blender::ed::space_node::node_deactivate_viewer_exec(), blender::ed::space_node::node_flag_toggle_exec(), blender::ed::space_node::node_group_make_from_node_declaration(), blender::ed::space_node::node_link_init(), blender::ed::space_node::node_link_item_apply(), blender::ed::space_node::node_property_update_default(), blender::ed::space_node::node_socket_add_replace(), blender::ed::space_node::node_socket_disconnect(), blender::ed::space_node::node_socket_remove(), blender::ed::space_node::node_swap_group_asset_invoke(), blender::bke::node_tree_update_all_users(), ntreeCompositTagRender(), blender::ed::space_node::pick_link(), blender::ed::space_node::search_link_ops_for_asset_metadata(), blender::nodes::sync_sockets_closure(), blender::nodes::sync_sockets_combine_bundle(), blender::nodes::sync_sockets_evaluate_closure(), blender::nodes::sync_sockets_separate_bundle(), blender::nodes::socket_items::try_add_item_via_extend_socket(), and blender::nodes::socket_items::ops::update_after_node_change().
| void BKE_ntree_update_tag_node_removed | ( | bNodeTree * | ntree | ) |
Definition at line 2078 of file node_tree_update.cc.
References add_tree_tag(), and NTREE_CHANGED_REMOVED_NODE.
Referenced by blender::bke::node_free_node(), and blender::ed::space_node::node_group_make_insert_selected().
Definition at line 2048 of file node_tree_update.cc.
References add_node_tag(), and NTREE_CHANGED_NODE_PROPERTY.
Referenced by blender::bke::node_set_typeinfo().
Used when change parent node.
Definition at line 2123 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().
| void BKE_ntree_update_tag_socket_availability | ( | bNodeTree * | ntree, |
| bNodeSocket * | socket ) |
Definition at line 2073 of file node_tree_update.cc.
References add_socket_tag(), and NTREE_CHANGED_SOCKET_PROPERTY.
Referenced by blender::bke::node_set_socket_availability().
| void BKE_ntree_update_tag_socket_new | ( | bNodeTree * | ntree, |
| bNodeSocket * | socket ) |
Definition at line 2058 of file node_tree_update.cc.
References add_socket_tag(), and NTREE_CHANGED_SOCKET_PROPERTY.
Referenced by blender::bke::node_add_socket(), blender::nodes::refresh_node_socket(), version_add_group_in_out_node(), and version_node_add_socket().
| void BKE_ntree_update_tag_socket_property | ( | bNodeTree * | ntree, |
| bNodeSocket * | socket ) |
Definition at line 2053 of file node_tree_update.cc.
References add_socket_tag(), and NTREE_CHANGED_SOCKET_PROPERTY.
Referenced by blender::ed::space_node::node_add_collection_exec(), blender::ed::space_node::node_add_image_exec(), blender::ed::space_node::node_add_object_exec(), and blender::io::usd::USDPointInstancerReader::set_collection().
| void BKE_ntree_update_tag_socket_removed | ( | bNodeTree * | ntree | ) |
Definition at line 2063 of file node_tree_update.cc.
References add_tree_tag(), and NTREE_CHANGED_REMOVED_SOCKET.
Referenced by blender::bke::node_remove_socket_ex().
| void BKE_ntree_update_tag_socket_type | ( | bNodeTree * | ntree, |
| bNodeSocket * | socket ) |
Definition at line 2068 of file node_tree_update.cc.
References add_socket_tag(), and NTREE_CHANGED_SOCKET_PROPERTY.
Referenced by blender::bke::node_socket_set_typeinfo(), and version_add_group_in_out_node().
| void BKE_ntree_update_without_main | ( | bNodeTree & | tree | ) |
Can be used to update trees locally, without affecting other trees. For example, when building a temporary node tree that is not in bmain.
Definition at line 2192 of file node_tree_update.cc.
References BLI_assert, ID_TAG_NO_MAIN, is_updating, params, tree, and blender::bke::NodeTreeMainUpdater::update_rooted().
Referenced by ntree_shader_implicit_closure_cast(), ntree_shader_pruned_unused(), ntree_shader_shader_to_rgba_branches(), and ntree_shader_weight_tree_invert().