Blender V4.3
DEG_depsgraph_build.hh File Reference
#include "BLI_span.hh"
#include "BLI_sys_types.h"

Go to the source code of this file.

Enumerations

enum  eDepsSceneComponentType { DEG_SCENE_COMP_PARAMETERS , DEG_SCENE_COMP_ANIMATION , DEG_SCENE_COMP_SEQUENCER }
 
enum  eDepsObjectComponentType {
  DEG_OB_COMP_ANY , DEG_OB_COMP_PARAMETERS , DEG_OB_COMP_ANIMATION , DEG_OB_COMP_TRANSFORM ,
  DEG_OB_COMP_GEOMETRY , DEG_OB_COMP_EVAL_POSE , DEG_OB_COMP_BONE , DEG_OB_COMP_SHADING ,
  DEG_OB_COMP_CACHE
}
 

Functions

void DEG_graph_build_from_view_layer (Depsgraph *graph)
 
void DEG_graph_build_for_all_objects (Depsgraph *graph)
 
void DEG_graph_build_for_render_pipeline (Depsgraph *graph)
 
void DEG_graph_build_for_compositor_preview (Depsgraph *graph, bNodeTree *nodetree)
 
void DEG_graph_build_from_collection (Depsgraph *graph, Collection *collection)
 
void DEG_graph_build_from_ids (Depsgraph *graph, blender::Span< ID * > ids)
 
void DEG_graph_tag_relations_update (Depsgraph *graph)
 
void DEG_graph_relations_update (Depsgraph *graph)
 
void DEG_relations_tag_update (Main *bmain)
 
void DEG_add_scene_relation (DepsNodeHandle *node_handle, Scene *scene, eDepsSceneComponentType component, const char *description)
 
void DEG_add_scene_camera_relation (DepsNodeHandle *node_handle, Scene *scene, eDepsObjectComponentType component, const char *description)
 
void DEG_add_object_relation (DepsNodeHandle *node_handle, Object *object, eDepsObjectComponentType component, const char *description)
 
void DEG_add_collection_geometry_relation (DepsNodeHandle *node_handle, Collection *collection, const char *description)
 
void DEG_add_collection_geometry_customdata_mask (DepsNodeHandle *node_handle, Collection *collection, const CustomData_MeshMasks *masks)
 
void DEG_add_node_tree_output_relation (DepsNodeHandle *node_handle, bNodeTree *node_tree, const char *description)
 
void DEG_add_bone_relation (DepsNodeHandle *handle, Object *object, const char *bone_name, eDepsObjectComponentType component, const char *description)
 
void DEG_add_object_cache_relation (DepsNodeHandle *handle, CacheFile *cache_file, eDepsObjectComponentType component, const char *description)
 
void DEG_add_generic_id_relation (DepsNodeHandle *node_handle, ID *id, const char *description)
 
void DEG_add_depends_on_transform_relation (DepsNodeHandle *node_handle, const char *description)
 
void DEG_add_object_pointcache_relation (DepsNodeHandle *node_handle, Object *object, eDepsObjectComponentType component, const char *description)
 
void DEG_add_special_eval_flag (DepsNodeHandle *handle, ID *id, uint32_t flag)
 
void DEG_add_customdata_mask (DepsNodeHandle *handle, Object *object, const CustomData_MeshMasks *masks)
 
IDDEG_get_id_from_handle (DepsNodeHandle *node_handle)
 
Depsgraph * DEG_get_graph_from_handle (DepsNodeHandle *node_handle)
 
bool DEG_object_has_geometry_component (Object *object)
 

Detailed Description

Public API for Depsgraph

Definition in file DEG_depsgraph_build.hh.

Enumeration Type Documentation

◆ eDepsObjectComponentType

Enumerator
DEG_OB_COMP_ANY 
DEG_OB_COMP_PARAMETERS 
DEG_OB_COMP_ANIMATION 
DEG_OB_COMP_TRANSFORM 
DEG_OB_COMP_GEOMETRY 
DEG_OB_COMP_EVAL_POSE 
DEG_OB_COMP_BONE 
DEG_OB_COMP_SHADING 
DEG_OB_COMP_CACHE 

Definition at line 96 of file DEG_depsgraph_build.hh.

◆ eDepsSceneComponentType

Enumerator
DEG_SCENE_COMP_PARAMETERS 
DEG_SCENE_COMP_ANIMATION 
DEG_SCENE_COMP_SEQUENCER 

Definition at line 85 of file DEG_depsgraph_build.hh.

Function Documentation

◆ DEG_add_bone_relation()

void DEG_add_bone_relation ( DepsNodeHandle * handle,
Object * object,
const char * bone_name,
eDepsObjectComponentType component,
const char * description )

◆ DEG_add_collection_geometry_customdata_mask()

void DEG_add_collection_geometry_customdata_mask ( DepsNodeHandle * node_handle,
Collection * collection,
const CustomData_MeshMasks * masks )

◆ DEG_add_collection_geometry_relation()

void DEG_add_collection_geometry_relation ( DepsNodeHandle * node_handle,
Collection * collection,
const char * description )

◆ DEG_add_customdata_mask()

◆ DEG_add_depends_on_transform_relation()

void DEG_add_depends_on_transform_relation ( DepsNodeHandle * node_handle,
const char * description )

◆ DEG_add_generic_id_relation()

void DEG_add_generic_id_relation ( DepsNodeHandle * node_handle,
ID * id,
const char * description )

Adds relation from #DEG_OPCODE_GENERIC_DATABLOCK_UPDATE of a given ID. Is used for such entities as textures and images.

Definition at line 206 of file depsgraph_build.cc.

References blender::deg::DepsgraphRelationBuilder::add_node_handle_relation(), blender::deg::DepsNodeHandle::builder, and get_node_handle().

Referenced by blender::update_depsgraph(), update_depsgraph(), update_depsgraph(), update_depsgraph(), update_depsgraph(), update_depsgraph(), update_depsgraph(), and update_depsgraph().

◆ DEG_add_node_tree_output_relation()

void DEG_add_node_tree_output_relation ( DepsNodeHandle * node_handle,
bNodeTree * node_tree,
const char * description )

◆ DEG_add_object_cache_relation()

void DEG_add_object_cache_relation ( DepsNodeHandle * handle,
CacheFile * cache_file,
eDepsObjectComponentType component,
const char * description )

◆ DEG_add_object_pointcache_relation()

void DEG_add_object_pointcache_relation ( DepsNodeHandle * node_handle,
Object * object,
eDepsObjectComponentType component,
const char * description )

◆ DEG_add_object_relation()

◆ DEG_add_scene_camera_relation()

void DEG_add_scene_camera_relation ( DepsNodeHandle * node_handle,
Scene * scene,
eDepsObjectComponentType component,
const char * description )

Definition at line 87 of file depsgraph_build.cc.

References DEG_add_object_relation(), ELEM, and LISTBASE_FOREACH.

Referenced by blender::update_depsgraph().

◆ DEG_add_scene_relation()

void DEG_add_scene_relation ( DepsNodeHandle * node_handle,
Scene * scene,
eDepsSceneComponentType component,
const char * description )

◆ DEG_add_special_eval_flag()

◆ DEG_get_graph_from_handle()

Depsgraph * DEG_get_graph_from_handle ( DepsNodeHandle * node_handle)

◆ DEG_get_id_from_handle()

◆ DEG_graph_build_for_all_objects()

void DEG_graph_build_for_all_objects ( Depsgraph * graph)

◆ DEG_graph_build_for_compositor_preview()

void DEG_graph_build_for_compositor_preview ( Depsgraph * graph,
bNodeTree * nodetree )

Builds minimal dependency graph for compositor preview.

Note that compositor editor might have pinned node tree, which is different from scene's node tree.

Definition at line 268 of file depsgraph_build.cc.

References blender::deg::AbstractBuilderPipeline::build().

Referenced by blender::ed::space_node::compo_initjob().

◆ DEG_graph_build_for_render_pipeline()

void DEG_graph_build_for_render_pipeline ( Depsgraph * graph)

Special version of builder which produces dependency graph suitable for the render pipeline. It will contain sequencer and compositor (if needed) and all their dependencies.

Definition at line 262 of file depsgraph_build.cc.

References blender::deg::AbstractBuilderPipeline::build().

Referenced by render_init_depsgraph(), and seq_prefetch_init_depsgraph().

◆ DEG_graph_build_from_collection()

void DEG_graph_build_from_collection ( Depsgraph * graph,
Collection * collection )

◆ DEG_graph_build_from_ids()

void DEG_graph_build_from_ids ( Depsgraph * graph,
blender::Span< ID * > ids )

Builds the minimal dependency graph needed for evaluation of the given IDs.

Definition at line 274 of file depsgraph_build.cc.

References blender::deg::AbstractBuilderPipeline::build().

Referenced by animviz_depsgraph_build(), blender::ed::geometry::build_extra_depsgraph(), and blender::ed::object::modifier_apply().

◆ DEG_graph_build_from_view_layer()

void DEG_graph_build_from_view_layer ( Depsgraph * graph)

◆ DEG_graph_relations_update()

◆ DEG_graph_tag_relations_update()

◆ DEG_object_has_geometry_component()

bool DEG_object_has_geometry_component ( Object * object)

◆ DEG_relations_tag_update()

void DEG_relations_tag_update ( Main * bmain)

Tag all relations in the database for update.

Definition at line 317 of file depsgraph_build.cc.

References DEG_GLOBAL_DEBUG_PRINTF, DEG_graph_tag_relations_update(), depsgraph, and blender::deg::get_all_registered_graphs().

Referenced by blender::animrig::action_fcurve_ensure(), add_driver_button_invoke(), add_driver_button_none(), blender::ed::object::add_hook_object(), blender::ed::space_node::add_node_group_asset(), blender::ed::object::add_type_with_obdata(), animchannels_delete_exec(), blender::ed::object::apply_objects_internal(), blender::bke::asset_reload(), BKE_id_material_append(), BKE_id_material_clear(), BKE_id_material_pop(), BKE_id_material_resize(), BKE_id_materials_copy(), BKE_lib_id_clear_library_data(), BKE_lib_override_library_update(), BKE_libblock_relink_multiple(), BKE_libblock_remap_multiple_locked(), BKE_light_linking_add_receiver_to_collection(), BKE_light_linking_collection_assign(), BKE_light_linking_unlink_id_from_collection(), BKE_mask_new(), BKE_object_material_resize(), BKE_pose_rebuild(), BKE_pose_tag_recalc(), clip_delete_plane_track(), clip_delete_track(), blender::ed::object::collection_add_exec(), blender::ed::object::collection_create_exec(), blender::ed::object::collection_drop_exec(), blender::ed::outliner::collection_drop_invoke(), blender::ed::outliner::collection_duplicate_exec(), blender::ed::outliner::collection_flag_exec(), blender::ed::outliner::collection_hierarchy_delete_exec(), blender::ed::outliner::collection_instance_exec(), blender::ed::object::collection_link_exec(), blender::ed::outliner::collection_link_exec(), blender::ed::outliner::collection_new_exec(), blender::ed::object::collection_objects_remove_all_exec(), blender::ed::object::collection_objects_remove_exec(), blender::ed::object::collection_remove_exec(), blender::ed::object::collection_unlink_exec(), blender::ed::outliner::collection_view_layer_exec(), blender::ed::object::constraint_add_exec(), blender::ed::object::constraint_apply_exec(), blender::ed::object::constraint_copy_exec(), blender::ed::object::constraint_copy_to_selected_exec(), blender::ed::object::constraint_delete_exec(), blender::ed::object::constraint_dependency_tag_update(), blender::ed::object::constraint_dependency_update(), convert_action_exec(), blender::ed::object::convert_psys_to_mesh(), copy_driver_to_selected_button_exec(), copy_particle_systems_exec(), copy_particle_systems_to_object(), copybuffer_append(), blender::ed::curves::convert_from_particle_system::curves_convert_from_particle_system_exec(), blender::ed::object::data_transfer_exec(), blender::ed::object::datalayout_transfer_exec(), blender::animrig::deg_tag_after_keyframe_delete(), do_graph_region_driver_buttons(), driverdropper_sample(), drop_world_exec(), blender::ed::object::duplicate_exec(), ED_armature_join_objects_exec(), ED_curve_join_objects_exec(), ED_curve_updateAnimPaths(), ED_grease_pencil_join_objects_exec(), ed_marker_camera_bind_exec(), ED_mesh_join_objects_exec(), ED_render_engine_changed(), ED_rigidbody_constraint_add(), ED_rigidbody_constraint_remove(), ED_scene_sequencer_add(), ED_scene_view_layer_delete(), ED_text_to_object(), ED_wpaint_ensure_data(), edbm_separate_exec(), blender::ed::object::editmode_load_free_ex(), blender::ui::greasepencil::eyedropper_add_material(), blender::animrig::ChannelBag::fcurve_create(), blender::bke::greasepencil::convert::AnimDataConvertor::fcurves_convert_finalize(), DocumentImporter::finish(), Freestyle::BlenderStrokeRenderer::GenerateStrokeMesh(), geometry_extract_apply(), blender::ed::object::geometry_node_tree_copy_assign_exec(), blender::io::obj::geometry_to_blender_objects(), graph_driver_delete_invalid_exec(), graph_driver_vars_paste_exec(), blender::animrig::id_action_ensure(), blender::io::usd::import_endjob(), import_endjob(), blender::io::usd::import_startjob(), blender::io::ply::importer_main(), blender::io::stl::importer_main(), blender::bke::greasepencil::convert::legacy_object_thickness_modifier_thickness_anim(), libblock_remap_foreach_idpair(), blender::ed::object::make_links_data_exec(), blender::ed::object::make_links_scene_exec(), blender::ed::object::make_single_user_exec(), merge_actions_selection_exec(), blender::ed::object::modifier_add(), blender::ed::object::modifier_apply_exec_ex(), blender::ed::object::modifier_copy_exec(), blender::ed::object::modifier_copy_to_object(), blender::ed::object::modifier_copy_to_selected_exec(), blender::ed::outliner::modifier_fn(), blender::ed::object::modifier_link(), blender::ed::object::modifier_remove(), blender::ed::object::modifiers_clear(), blender::ed::object::move_to_collection_exec(), new_particle_settings_exec(), new_particle_target_exec(), nlaedit_add_actionclip_exec(), nlaedit_add_tracks_exec(), nlaedit_apply_scale_exec(), nlaedit_delete_exec(), nlaedit_delete_tracks_exec(), nlaedit_duplicate_exec(), nlaedit_make_single_user_exec(), blender::ed::space_node::node_add_collection_exec(), blender::ed::space_node::node_add_file_exec(), blender::ed::space_node::node_add_group_exec(), blender::ed::space_node::node_add_mask_exec(), blender::ed::space_node::node_add_material_exec(), blender::bke::node_add_node(), blender::ed::space_node::node_add_object_exec(), blender::ed::space_node::node_clipboard_paste_exec(), blender::ed::space_node::node_group_make_exec(), blender::bke::node_remove_node(), blender::ed::object::object_add_named_exec(), object_add_or_copy_particle_system(), blender::ed::object::object_constraint_copy_exec(), blender::ed::object::object_constraints_clear_exec(), blender::ed::object::object_convert_exec(), blender::ed::object::object_delete_exec(), blender::ed::object::object_duplicates_make_real_exec(), blender::ed::object::object_hook_remove_exec(), blender::ed::object::object_modifiers_copy_exec(), object_remove_particle_system(), blender::ed::object::object_shaderfx_remove(), blender::ed::object::object_track_clear_exec(), blender::ed::object::objects_add_active_exec(), blender::ed::object::objects_remove_active_exec(), open_exec(), blender::ed::outliner::outliner_animdata_operation_exec(), blender::ed::outliner::outliner_collection_set_flag_recursive_fn(), blender::ed::outliner::outliner_delete_exec(), blender::ed::outliner::outliner_id_remap_exec(), blender::ed::outliner::outliner_object_set_flag_recursive_fn(), blender::ed::outliner::outliner_orphans_purge_exec(), output_toggle_exec(), paint_mask_slice_exec(), blender::ed::object::parent_clear_exec(), blender::ed::outliner::parent_clear_invoke(), blender::ed::outliner::parent_drop_set_parents(), blender::ed::object::parent_noinv_set_exec(), blender::ed::object::parent_set_exec(), paste_driver_button_exec(), paste_material_exec(), blender::ed::object::pose_constraint_copy_exec(), blender::ed::object::pose_constraints_clear_exec(), pose_grab_with_ik_clear(), pyrna_struct_driver_add(), pyrna_struct_driver_remove(), remove_driver_button_exec(), remove_particle_target_exec(), rigidbody_world_add_exec(), rigidbody_world_remove_exec(), rna_property_update(), rule_del_exec(), blender::ed::outliner::scene_drop_invoke(), blender::ed::space_node::search_link_ops_for_asset_metadata(), separate_armature_exec(), separate_exec(), sequencer_add_duplicate_exec(), sequencer_add_movie_strip_exec(), sequencer_add_scene_strip_exec(), sequencer_add_scene_strip_new_exec(), sequencer_add_sound_strip_exec(), sequencer_change_scene_exec(), sequencer_clipboard_paste_exec(), sequencer_delete_exec(), blender::ed::object::shaderfx_add(), blender::ed::object::shaderfx_clear(), blender::ed::object::shaderfx_remove(), blender::ed::object::shape_key_add_exec(), blender::ed::object::shape_key_remove_exec(), blender::ed::object::skin_armature_create_exec(), slot_new_for_object_exec(), state_del_exec(), blender::ed::greasepencil::undo::step_decode(), blender::ed::curves::surface_set::surface_set_exec(), template_id_cb(), blender::ed::object::track_set_exec(), transform_autoik_update(), blender::ed::outliner::tree_element_camera_activate(), type_toggle_exec(), ui_but_anim_expression_create(), ui_but_anim_expression_set(), blender::ed::outliner::unlink_collection_fn(), blender::ed::outliner::unlink_object_fn(), update_deg_with_temporary_ik(), blender::ed::object::vertex_group_add_exec(), blender::ed::object::vertex_group_copy_exec(), blender::ed::object::vertex_group_copy_to_selected_exec(), blender::ed::object::vertex_group_mirror_exec(), blender::ed::object::vertex_group_remove_exec(), blender::ed::object::vertex_parent_set_exec(), view3d_collection_drop_copy_external_asset(), view3d_ob_drop_copy_external_asset(), view3d_ruler_gpencil_ensure(), view3d_setobjectascamera_exec(), view_layer_add_aov_exec(), view_layer_add_exec(), view_layer_add_lightgroup_exec(), view_layer_add_used_lightgroups_exec(), view_layer_remove_aov_exec(), view_layer_remove_lightgroup_exec(), view_layer_remove_unused_lightgroups_exec(), weight_from_bones_exec(), WM_lib_reload(), wm_lib_relocate_exec_do(), and wm_link_append_exec().