Blender
V3.3
|
#include "BLI_sys_types.h"
Go to the source code of this file.
Typedefs | |
typedef enum eDepsSceneComponentType | eDepsSceneComponentType |
typedef enum eDepsObjectComponentType | eDepsObjectComponentType |
Functions | |
void | DEG_graph_build_from_view_layer (struct Depsgraph *graph) |
void | DEG_graph_build_for_all_objects (struct Depsgraph *graph) |
void | DEG_graph_build_for_render_pipeline (struct Depsgraph *graph) |
void | DEG_graph_build_for_compositor_preview (struct Depsgraph *graph, struct bNodeTree *nodetree) |
void | DEG_graph_build_from_ids (struct Depsgraph *graph, struct ID **ids, int num_ids) |
void | DEG_graph_tag_relations_update (struct Depsgraph *graph) |
void | DEG_graph_relations_update (struct Depsgraph *graph) |
void | DEG_relations_tag_update (struct Main *bmain) |
void | DEG_add_scene_relation (struct DepsNodeHandle *node_handle, struct Scene *scene, eDepsSceneComponentType component, const char *description) |
void | DEG_add_object_relation (struct DepsNodeHandle *node_handle, struct Object *object, eDepsObjectComponentType component, const char *description) |
void | DEG_add_collection_geometry_relation (struct DepsNodeHandle *node_handle, struct Collection *collection, const char *description) |
void | DEG_add_collection_geometry_customdata_mask (struct DepsNodeHandle *node_handle, struct Collection *collection, const struct CustomData_MeshMasks *masks) |
void | DEG_add_simulation_relation (struct DepsNodeHandle *node_handle, struct Simulation *simulation, const char *description) |
void | DEG_add_node_tree_output_relation (struct DepsNodeHandle *node_handle, struct bNodeTree *node_tree, const char *description) |
void | DEG_add_bone_relation (struct DepsNodeHandle *handle, struct Object *object, const char *bone_name, eDepsObjectComponentType component, const char *description) |
void | DEG_add_object_cache_relation (struct DepsNodeHandle *handle, struct CacheFile *cache_file, eDepsObjectComponentType component, const char *description) |
void | DEG_add_generic_id_relation (struct DepsNodeHandle *node_handle, struct ID *id, const char *description) |
void | DEG_add_modifier_to_transform_relation (struct DepsNodeHandle *node_handle, const char *description) |
void | DEG_add_object_pointcache_relation (struct DepsNodeHandle *node_handle, struct Object *object, eDepsObjectComponentType component, const char *description) |
void | DEG_add_special_eval_flag (struct DepsNodeHandle *handle, struct ID *id, uint32_t flag) |
void | DEG_add_customdata_mask (struct DepsNodeHandle *handle, struct Object *object, const struct CustomData_MeshMasks *masks) |
struct ID * | DEG_get_id_from_handle (struct DepsNodeHandle *node_handle) |
struct Depsgraph * | DEG_get_graph_from_handle (struct DepsNodeHandle *node_handle) |
bool | DEG_object_has_geometry_component (struct Object *object) |
Public API for Depsgraph
Definition in file DEG_depsgraph_build.h.
typedef enum eDepsObjectComponentType eDepsObjectComponentType |
typedef enum eDepsSceneComponentType eDepsSceneComponentType |
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 91 of file DEG_depsgraph_build.h.
Enumerator | |
---|---|
DEG_SCENE_COMP_PARAMETERS | |
DEG_SCENE_COMP_ANIMATION | |
DEG_SCENE_COMP_SEQUENCER |
Definition at line 80 of file DEG_depsgraph_build.h.
void DEG_add_bone_relation | ( | struct DepsNodeHandle * | handle, |
struct Object * | object, | ||
const char * | bone_name, | ||
eDepsObjectComponentType | component, | ||
const char * | description | ||
) |
Definition at line 157 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_node_handle_relation(), blender::deg::DepsNodeHandle::builder, component(), get_node_handle(), Object::id, blender::deg::nodeTypeFromObjectComponent(), and type.
Referenced by updateDepsgraph().
void DEG_add_collection_geometry_customdata_mask | ( | struct DepsNodeHandle * | node_handle, |
struct Collection * | collection, | ||
const struct CustomData_MeshMasks * | masks | ||
) |
Referenced by add_collection_relation().
void DEG_add_collection_geometry_relation | ( | struct DepsNodeHandle * | node_handle, |
struct Collection * | collection, | ||
const char * | description | ||
) |
Definition at line 102 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_node_handle_relation(), blender::deg::DepsNodeHandle::builder, get_node_handle(), and Collection::id.
Referenced by add_collection_relation(), and updateDepsgraph().
void DEG_add_customdata_mask | ( | struct DepsNodeHandle * | handle, |
struct Object * | object, | ||
const struct CustomData_MeshMasks * | masks | ||
) |
Referenced by add_object_relation(), and updateDepsgraph().
void DEG_add_generic_id_relation | ( | struct DepsNodeHandle * | node_handle, |
struct 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 192 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_node_handle_relation(), blender::deg::DepsNodeHandle::builder, and get_node_handle().
Referenced by updateDepsgraph().
void DEG_add_modifier_to_transform_relation | ( | struct DepsNodeHandle * | node_handle, |
const char * | description | ||
) |
Special function which is used from modifiers' updateDepsgraph() callback to indicate that the modifier needs to know transformation of the object which that modifier belongs to. This function will take care of checking which operation is required to have transformation for the modifier, taking into account possible simulation solvers.
Definition at line 202 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_modifier_to_transform_relation(), blender::deg::DepsNodeHandle::builder, and get_node_handle().
Referenced by updateDepsgraph().
void DEG_add_node_tree_output_relation | ( | struct DepsNodeHandle * | node_handle, |
struct bNodeTree * | node_tree, | ||
const char * | description | ||
) |
Definition at line 135 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_node_handle_relation(), blender::deg::DepsNodeHandle::builder, and get_node_handle().
Referenced by updateDepsgraph().
void DEG_add_object_cache_relation | ( | struct DepsNodeHandle * | handle, |
struct CacheFile * | cache_file, | ||
eDepsObjectComponentType | component, | ||
const char * | description | ||
) |
Definition at line 146 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_node_handle_relation(), blender::deg::DepsNodeHandle::builder, component(), get_node_handle(), CacheFile::id, blender::deg::nodeTypeFromObjectComponent(), and type.
Referenced by updateDepsgraph().
void DEG_add_object_pointcache_relation | ( | struct DepsNodeHandle * | node_handle, |
struct Object * | object, | ||
eDepsObjectComponentType | component, | ||
const char * | description | ||
) |
Adds relations from the given component of a given object to the given node handle AND the component to the point cache component of the node's ID.
Definition at line 169 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_node_handle_relation(), blender::deg::DepsgraphRelationBuilder::add_relation(), blender::deg::DepsNodeHandle::builder, component(), DEG_get_id_from_handle(), blender::deg::Relation::flag, get_node_handle(), id, Object::id, ID::name, blender::deg::nodeTypeFromObjectComponent(), blender::deg::RELATION_FLAG_FLUSH_USER_EDIT_ONLY, and type.
Referenced by DEG_add_collision_relations(), and DEG_add_forcefield_relations().
void DEG_add_object_relation | ( | struct DepsNodeHandle * | node_handle, |
struct Object * | object, | ||
eDepsObjectComponentType | component, | ||
const char * | description | ||
) |
Definition at line 86 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_node_handle_relation(), blender::deg::DepsNodeHandle::builder, component(), get_node_handle(), Object::id, blender::deg::nodeTypeFromObjectComponent(), and type.
Referenced by add_object_relation(), add_this_collection(), MOD_depsgraph_update_object_bone_relation(), and updateDepsgraph().
void DEG_add_scene_relation | ( | struct DepsNodeHandle * | node_handle, |
struct Scene * | scene, | ||
eDepsSceneComponentType | component, | ||
const char * | description | ||
) |
Definition at line 75 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_node_handle_relation(), blender::deg::DepsNodeHandle::builder, component(), deg_build_scene_component_type(), get_node_handle(), Scene::id, scene, and type.
void DEG_add_simulation_relation | ( | struct DepsNodeHandle * | node_handle, |
struct Simulation * | simulation, | ||
const char * | description | ||
) |
Definition at line 125 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_node_handle_relation(), blender::deg::DepsNodeHandle::builder, get_node_handle(), Simulation::id, and simulation.
Definition at line 209 of file depsgraph_build.cc.
References blender::deg::DepsgraphRelationBuilder::add_special_eval_flag(), blender::deg::DepsNodeHandle::builder, and get_node_handle().
Referenced by updateDepsgraph().
struct Depsgraph* DEG_get_graph_from_handle | ( | struct DepsNodeHandle * | node_handle | ) |
Definition at line 229 of file depsgraph_build.cc.
References blender::deg::DepsNodeHandle::builder, get_node_handle(), and blender::deg::DepsgraphRelationBuilder::getGraph().
Referenced by DEG_add_collision_relations(), and DEG_add_forcefield_relations().
struct ID* DEG_get_id_from_handle | ( | struct DepsNodeHandle * | node_handle | ) |
Definition at line 223 of file depsgraph_build.cc.
References get_node_handle(), blender::deg::IDNode::id_orig, blender::deg::DepsNodeHandle::node, blender::deg::ComponentNode::owner, and blender::deg::OperationNode::owner.
Referenced by DEG_add_object_pointcache_relation().
Build depsgraph for all objects (so also invisible ones) in the given view layer.
Definition at line 245 of file depsgraph_build.cc.
References blender::deg::AbstractBuilderPipeline::build(), and graph.
Referenced by blender::io::alembic::build_depsgraph(), blender::io::AbstractHierarchyIteratorInvisibleTest::depsgraph_create(), blender::io::obj::OBJDepsgraph::OBJDepsgraph(), and USD_export().
void DEG_graph_build_for_compositor_preview | ( | struct Depsgraph * | graph, |
struct 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 257 of file depsgraph_build.cc.
References blender::deg::AbstractBuilderPipeline::build(), and graph.
Referenced by blender::ed::space_node::compo_initjob().
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 251 of file depsgraph_build.cc.
References blender::deg::AbstractBuilderPipeline::build(), and graph.
Referenced by render_init_depsgraph(), and seq_prefetch_init_depsgraph().
Definition at line 263 of file depsgraph_build.cc.
References blender::deg::AbstractBuilderPipeline::build(), and graph.
Referenced by animviz_depsgraph_build().
Build depsgraph for the given scene layer, and dump results in given graph container.
Definition at line 239 of file depsgraph_build.cc.
References blender::deg::AbstractBuilderPipeline::build(), and graph.
Referenced by bake(), blender::io::alembic::build_depsgraph(), DEG_debug_graph_relations_validate(), DEG_graph_relations_update(), BlendfileLoadingBaseTest::depsgraph_create(), object_preview_scene_create(), and USD_export().
Create or update relations in the specified graph.
Definition at line 286 of file depsgraph_build.cc.
References DEG_graph_build_from_view_layer(), graph, and blender::deg::Depsgraph::need_update_relations.
Referenced by BKE_scene_graph_update_for_newframe_ex(), ED_scene_change_update(), EEVEE_lightbake_job(), engine_depsgraph_init(), Freestyle::BlenderStrokeRenderer::RenderScene(), scene_graph_update_tagged(), and set_trans_object_base_flags().
Tag relations from the given graph for update.
Definition at line 269 of file depsgraph_build.cc.
References DEG_DEBUG_PRINTF, blender::deg::DEG_UPDATE_SOURCE_RELATIONS, blender::deg::Depsgraph::find_id_node(), graph, Scene::id, id_node, blender::deg::Depsgraph::need_update_relations, and blender::deg::Depsgraph::scene.
Referenced by BKE_scene_undo_depsgraphs_restore(), Freestyle::BlenderStrokeRenderer::BlenderStrokeRenderer(), copy_particle_systems_exec(), DEG_relations_tag_update(), duplibase_for_convert(), engine_depsgraph_init(), and Freestyle::BlenderStrokeRenderer::NewMesh().
Definition at line 97 of file depsgraph_build.cc.
References blender::deg::geometry_tag_to_component(), Object::id, and blender::deg::UNDEFINED.
Referenced by add_object_relation().
Tag all relations in the database for update.
Definition at line 296 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 add_driver_button_invoke(), add_driver_button_none(), add_hook_object(), animchannels_delete_exec(), apply_objects_internal(), 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_mask_new(), BKE_object_material_resize(), BKE_pose_rebuild(), BKE_pose_tag_recalc(), brush_draw_apply(), clip_delete_plane_track(), clip_delete_track(), collection_add_exec(), collection_create_exec(), collection_drop_exec(), collection_drop_invoke(), collection_duplicate_exec(), collection_flag_exec(), collection_hierarchy_delete_exec(), collection_instance_exec(), collection_link_exec(), collection_new_exec(), collection_objects_remove_all_exec(), collection_objects_remove_exec(), collection_remove_exec(), collection_unlink_exec(), collection_view_layer_exec(), constraint_add_exec(), constraint_apply_exec(), constraint_copy_exec(), constraint_copy_to_selected_exec(), constraint_delete_exec(), copy_particle_systems_to_object(), copybuffer_append(), blender::ed::curves::convert_from_particle_system::curves_convert_from_particle_system_exec(), data_transfer_exec(), datalayout_transfer_exec(), deg_tag_after_keyframe_delete(), do_graph_region_driver_buttons(), driverdropper_sample(), drop_world_exec(), duplicate_exec(), ED_action_fcurve_ensure(), ED_armature_join_objects_exec(), ED_curve_join_objects_exec(), ED_curve_updateAnimPaths(), ED_gpencil_join_objects_exec(), ED_id_action_ensure(), ED_mesh_join_objects_exec(), ED_object_add_type_with_obdata(), ED_object_constraint_dependency_tag_update(), ED_object_constraint_dependency_update(), ED_object_editmode_load_free_ex(), ED_object_gpencil_modifier_add(), ED_object_gpencil_modifier_clear(), ED_object_gpencil_modifier_remove(), ED_object_modifier_add(), ED_object_modifier_clear(), ED_object_modifier_convert_psys_to_mesh(), ED_object_modifier_copy_to_object(), ED_object_modifier_link(), ED_object_modifier_remove(), ED_object_shaderfx_add(), ED_object_shaderfx_clear(), ED_object_shaderfx_remove(), ED_render_engine_changed(), ED_rigidbody_constraint_add(), ED_rigidbody_constraint_remove(), ED_rigidbody_object_remove(), ED_scene_sequencer_add(), ED_scene_view_layer_delete(), ED_text_to_object(), ED_wpaint_ensure_data(), edbm_separate_exec(), eyedropper_add_material(), DocumentImporter::finish(), Freestyle::BlenderStrokeRenderer::GenerateStrokeMesh(), geometry_extract_apply(), geometry_node_tree_copy_assign_exec(), blender::io::obj::geometry_to_blender_objects(), gpencil_bake_grease_pencil_animation_exec(), gpencil_brush_reset_all_exec(), gpencil_convert_old_files_exec(), gpencil_layer_to_curve(), gpencil_object_modifier_remove(), gpencil_object_vgroup_calc_from_armature(), gpencil_stroke_separate_exec(), graph_driver_delete_invalid_exec(), graph_driver_vars_paste_exec(), image_to_gpencil_exec(), blender::io::usd::import_endjob(), import_endjob(), blender::io::usd::import_startjob(), blender::io::stl::importer_main(), libblock_remap_foreach_idpair_cb(), make_links_data_exec(), make_links_scene_exec(), make_single_user_exec(), modifier_apply_exec_ex(), modifier_copy_to_selected_exec(), 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_object_exec(), blender::ed::space_node::node_clipboard_paste_exec(), blender::ed::space_node::node_group_make_exec(), nodeAddNode(), nodeRemoveNode(), object_add_named_exec(), object_add_or_copy_particle_system(), object_constraint_copy_exec(), object_constraints_clear_exec(), object_convert_exec(), object_delete_exec(), object_duplicates_make_real_exec(), object_remove_particle_system(), object_shaderfx_remove(), object_track_clear_exec(), objects_add_active_exec(), objects_remove_active_exec(), open_exec(), outliner_animdata_operation_exec(), outliner_collection_set_flag_recursive_fn(), outliner_delete_exec(), outliner_id_remap_exec(), outliner_object_set_flag_recursive_fn(), outliner_orphans_purge_exec(), output_toggle_exec(), paint_mask_slice_exec(), parent_clear_exec(), parent_clear_invoke(), parent_drop_set_parents(), parent_noinv_set_exec(), parent_set_exec(), paste_driver_button_exec(), pose_constraint_copy_exec(), 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(), scene_drop_invoke(), separate_armature_exec(), separate_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_delete_exec(), sequencer_paste_exec(), shape_key_add_exec(), shape_key_remove_exec(), skin_armature_create_exec(), state_del_exec(), blender::ed::curves::surface_set::surface_set_exec(), template_id_cb(), trace_end_job(), track_set_exec(), transform_autoik_update(), tree_element_camera_activate(), type_toggle_exec(), ui_but_anim_expression_create(), ui_but_anim_expression_set(), unlink_collection_fn(), unlink_object_fn(), update_deg_with_temporary_ik(), vertex_group_add_exec(), vertex_group_copy_exec(), vertex_group_copy_to_selected_exec(), vertex_group_mirror_exec(), vertex_group_remove_exec(), vertex_parent_set_exec(), view3d_collection_drop_copy_external_asset(), view3d_ob_drop_copy_external_asset(), 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().