62 return deg::NodeType::PARAMETERS;
64 return deg::NodeType::ANIMATION;
66 return deg::NodeType::SEQUENCER;
68 return deg::NodeType::UNDEFINED;
79 const char *description)
90 const char *description)
92 if (scene->camera !=
nullptr) {
99 if (!
ELEM(marker->camera,
nullptr, scene->camera)) {
108 const char *description)
123 const char *description)
126 &collection->
id, deg::NodeType::GEOMETRY, deg::OperationCode::GEOMETRY_EVAL_DONE};
137 if (ob->type ==
OB_EMPTY && ob->instance_collection !=
nullptr) {
146 const char *description)
149 &
node_tree->id, deg::NodeType::NTREE_OUTPUT, deg::OperationCode::NTREE_OUTPUT);
151 deg::NodeType::NTREE_GEOMETRY_PREPROCESS,
152 deg::OperationCode::NTREE_GEOMETRY_PREPROCESS);
155 ntree_output_key, deg_node_handle, description);
163 const char *description)
173 const char *bone_name,
175 const char *description)
186 const char *description)
198 if (rel !=
nullptr) {
202 fprintf(stderr,
"Error in point cache relation from %s to ^%s.\n", object->id.name, id->name);
209 id, deg::NodeType::GENERIC_DATABLOCK, deg::OperationCode::GENERIC_DATABLOCK_UPDATE);
244 return reinterpret_cast<Depsgraph *
>(relation_builder->
getGraph());
288 DEG_DEBUG_PRINTF(graph, TAG,
"%s: Tagging relations for update.\n", __func__);
299 graph_id_tag_update(deg_graph->
bmain,
#define FOREACH_COLLECTION_OBJECT_RECURSIVE_END
#define FOREACH_COLLECTION_OBJECT_RECURSIVE_BEGIN(_collection, _object)
#define LISTBASE_FOREACH(type, var, list)
Platform independent time functions.
Utility defines for timing/benchmarks.
@ DEG_SCENE_COMP_ANIMATION
@ DEG_SCENE_COMP_PARAMETERS
@ DEG_SCENE_COMP_SEQUENCER
Object groups, one object can be in many groups at once.
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
Relation * add_depends_on_transform_relation(ID *id, const KeyTo &key_to, const char *description, int flags=0)
void add_customdata_mask(Object *object, const DEGCustomDataMeshMasks &customdata_masks)
Relation * add_node_handle_relation(const KeyType &key_from, const DepsNodeHandle *handle, const char *description, int flags=0)
void add_special_eval_flag(ID *id, uint32_t flag)
Relation * add_relation(const KeyFrom &key_from, const KeyTo &key_to, const char *description, int flags=0)
#define DEG_GLOBAL_DEBUG_PRINTF(type,...)
#define DEG_DEBUG_PRINTF(depsgraph, type,...)
const Depsgraph * depsgraph
void DEG_add_scene_camera_relation(DepsNodeHandle *node_handle, Scene *scene, eDepsObjectComponentType component, const char *description)
void DEG_add_generic_id_relation(DepsNodeHandle *node_handle, ID *id, const char *description)
ID * DEG_get_id_from_handle(DepsNodeHandle *node_handle)
void DEG_relations_tag_update(Main *bmain)
void DEG_add_customdata_mask(DepsNodeHandle *node_handle, Object *object, const CustomData_MeshMasks *masks)
void DEG_graph_build_for_compositor_preview(Depsgraph *graph, bNodeTree *nodetree)
void DEG_add_special_eval_flag(DepsNodeHandle *node_handle, ID *id, uint32_t flag)
static deg::DepsNodeHandle * get_node_handle(DepsNodeHandle *node_handle)
void DEG_add_depends_on_transform_relation(DepsNodeHandle *node_handle, const char *description)
void DEG_graph_build_from_collection(Depsgraph *graph, Collection *collection)
void DEG_add_collection_geometry_relation(DepsNodeHandle *node_handle, Collection *collection, const char *description)
void DEG_add_object_cache_relation(DepsNodeHandle *node_handle, CacheFile *cache_file, eDepsObjectComponentType component, const char *description)
void DEG_graph_build_from_ids(Depsgraph *graph, blender::Span< ID * > ids)
void DEG_graph_tag_relations_update(Depsgraph *graph)
void DEG_add_scene_relation(DepsNodeHandle *node_handle, Scene *scene, eDepsSceneComponentType component, const char *description)
void DEG_add_object_pointcache_relation(DepsNodeHandle *node_handle, Object *object, eDepsObjectComponentType component, const char *description)
bool DEG_object_has_geometry_component(Object *object)
void DEG_add_object_relation(DepsNodeHandle *node_handle, Object *object, eDepsObjectComponentType component, const char *description)
void DEG_graph_build_for_all_objects(Depsgraph *graph)
void DEG_add_bone_relation(DepsNodeHandle *node_handle, Object *object, const char *bone_name, eDepsObjectComponentType component, const char *description)
void DEG_graph_build_for_render_pipeline(Depsgraph *graph)
Depsgraph * DEG_get_graph_from_handle(DepsNodeHandle *node_handle)
void DEG_graph_relations_update(Depsgraph *graph)
void DEG_add_collection_geometry_customdata_mask(DepsNodeHandle *node_handle, Collection *collection, const CustomData_MeshMasks *masks)
void DEG_graph_build_from_view_layer(Depsgraph *graph)
void DEG_add_node_tree_output_relation(DepsNodeHandle *node_handle, bNodeTree *node_tree, const char *description)
static deg::NodeType deg_build_scene_component_type(eDepsSceneComponentType component)
Span< Depsgraph * > get_all_registered_graphs(Main *bmain)
NodeType geometry_tag_to_component(const ID *id)
@ RELATION_FLAG_FLUSH_USER_EDIT_ONLY
NodeType nodeTypeFromObjectComponent(eDepsObjectComponentType component_type)
@ DEG_UPDATE_SOURCE_RELATIONS
DepsgraphRelationBuilder * builder
IDNode * find_id_node(const ID *id) const
bool need_update_relations