Blender V5.0
DEG_depsgraph_build.hh File Reference
#include "BLI_span.hh"

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 95 of file DEG_depsgraph_build.hh.

◆ eDepsSceneComponentType

Enumerator
DEG_SCENE_COMP_PARAMETERS 
DEG_SCENE_COMP_ANIMATION 
DEG_SCENE_COMP_SEQUENCER 

Definition at line 84 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 )

◆ DEG_add_node_tree_output_relation()

◆ 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 )

◆ DEG_add_scene_relation()

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

◆ DEG_add_special_eval_flag()

void DEG_add_special_eval_flag ( DepsNodeHandle * handle,
ID * id,
uint32_t 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)

Build depsgraph for all objects (so also invisible ones) in the given view layer.

Definition at line 270 of file depsgraph_build.cc.

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

Referenced by blender::io::AbstractHierarchyIteratorInvisibleTest::depsgraph_create(), and blender::io::obj::OBJDepsgraph::OBJDepsgraph().

◆ 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 282 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 276 of file depsgraph_build.cc.

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

Referenced by render_init_depsgraph(), and blender::seq::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 288 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 331 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 acf_nlatrack_setting_post_update(), blender::animrig::action_fcurve_ensure_legacy(), 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_assign(), 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(), BKE_rigidbody_object_copy(), 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_shapes_join_objects_exec(), ED_rigidbody_constraint_add(), ED_rigidbody_constraint_remove(), 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::animrig::Channelbag::fcurve_create_many(), blender::bke::greasepencil::convert::AnimDataConvertor::fcurves_convert_finalize(), 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::ed::curves::join_objects_exec(), blender::ed::mesh::join_objects_exec(), blender::ed::pointcloud::join_objects_exec(), blender::bke::greasepencil::convert::legacy_object_modifier_opacity(), 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(), blender::ed::outliner::namebutton_fn(), 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_group_exec(), blender::ed::space_node::node_add_image_exec(), blender::ed::space_node::node_add_mask_exec(), blender::ed::space_node::node_add_material_exec(), 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::space_node::node_swap_group_asset_invoke(), 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(), object_material_assign(), 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(), blender::ed::transform::pose_grab_with_ik_clear(), proj_paint_add_slot(), 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(), scene_new_sequencer_exec(), blender::ed::space_node::search_link_ops_for_asset_metadata(), separate_armature_exec(), separate_exec(), separate_slots_exec(), blender::ed::vse::sequencer_add_duplicate_exec(), blender::ed::vse::sequencer_add_movie_strip_exec(), blender::ed::vse::sequencer_add_scene_asset_invoke(), blender::ed::vse::sequencer_add_scene_strip_exec(), blender::ed::vse::sequencer_add_scene_strip_new_exec(), blender::ed::vse::sequencer_add_sound_strip_exec(), blender::ed::vse::sequencer_change_scene_exec(), blender::ed::vse::sequencer_clipboard_paste_exec(), blender::ed::vse::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_copy_exec(), blender::ed::object::shape_key_remove_exec(), blender::ed::object::skin_armature_create_exec(), slot_channels_move_to_new_action_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(), blender::ed::transform::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(), blender::ed::transform::update_deg_with_temporary_ik(), blender::bke::NodeTreeMainUpdater::update_rooted(), 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(), blender::ed::object::visual_geometry_to_objects_exec(), weight_from_bones_exec(), wm_id_linked_relocate_exec(), WM_lib_reload(), wm_lib_relocate_exec_do(), and wm_link_append_exec().