|
Blender
V2.93
|
#include <depsgraph.h>
Public Types | |
| typedef Vector< OperationNode * > | OperationNodes |
| typedef Vector< IDNode * > | IDDepsNodes |
Public Member Functions | |
| Depsgraph (Main *bmain, Scene *scene, ViewLayer *view_layer, eEvaluationMode mode) | |
| ~Depsgraph () | |
| TimeSourceNode * | add_time_source () |
| TimeSourceNode * | find_time_source () const |
| void | tag_time_source () |
| IDNode * | find_id_node (const ID *id) const |
| IDNode * | add_id_node (ID *id, ID *id_cow_hint=nullptr) |
| void | clear_id_nodes () |
| Relation * | add_new_relation (Node *from, Node *to, const char *description, int flags=0) |
| Relation * | check_nodes_connected (const Node *from, const Node *to, const char *description) |
| void | add_entry_tag (OperationNode *node) |
| void | clear_all_nodes () |
| ID * | get_cow_id (const ID *id_orig) const |
| MEM_CXX_CLASS_ALLOC_FUNCS ("Depsgraph") | |
Public Attributes | |
| Map< const ID *, IDNode * > | id_hash |
| IDDepsNodes | id_nodes |
| TimeSourceNode * | time_source |
| bool | need_update |
| char | id_type_updated [INDEX_ID_MAX] |
| char | id_type_exist [INDEX_ID_MAX] |
| Set< OperationNode * > | entry_tags |
| OperationNodes | operations |
| SpinLock | lock |
| Main * | bmain |
| Scene * | scene |
| ViewLayer * | view_layer |
| eEvaluationMode | mode |
| float | ctime |
| Scene * | scene_cow |
| bool | is_active |
| DepsgraphDebug | debug |
| bool | is_evaluating |
| bool | is_render_pipeline_depsgraph |
| bool | use_editors_update |
| Map< const ID *, ListBase * > * | physics_relations [DEG_PHYSICS_RELATIONS_NUM] |
Definition at line 60 of file depsgraph.h.
Definition at line 62 of file depsgraph.h.
| typedef Vector<OperationNode *> blender::deg::Depsgraph::OperationNodes |
Definition at line 61 of file depsgraph.h.
| blender::deg::Depsgraph::Depsgraph | ( | Main * | bmain, |
| Scene * | scene, | ||
| ViewLayer * | view_layer, | ||
| eEvaluationMode | mode | ||
| ) |
Definition at line 62 of file depsgraph.cc.
References add_time_source(), BLI_spin_init(), id_type_exist, id_type_updated, lock, and physics_relations.
| blender::deg::Depsgraph::~Depsgraph | ( | ) |
Definition at line 84 of file depsgraph.cc.
References BLI_spin_end(), clear_id_nodes(), lock, and time_source.
| void blender::deg::Depsgraph::add_entry_tag | ( | OperationNode * | node | ) |
Definition at line 229 of file depsgraph.cc.
References entry_tags, and node.
Definition at line 117 of file depsgraph.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_idtype_idcode_to_index(), BLI_assert, blender::deg::DepsNodeFactory::create_node(), find_id_node(), GS, id, id_hash, id_node, id_nodes, blender::deg::ID_REF, id_type_exist, LIB_TAG_COPIED_ON_WRITE, ID::name, ID::tag, and blender::deg::type_get_factory().
Referenced by blender::deg::DepsgraphNodeBuilder::add_id_node().
| Relation * blender::deg::Depsgraph::add_new_relation | ( | Node * | from, |
| Node * | to, | ||
| const char * | description, | ||
| int | flags = 0 |
||
| ) |
Definition at line 183 of file depsgraph.cc.
References BLI_assert, check_nodes_connected(), blender::deg::COPY_ON_WRITE, blender::deg::Relation::flag, from, blender::deg::OPERATION, blender::deg::OperationNode::owner, blender::deg::RELATION_CHECK_BEFORE_ADD, and blender::deg::Node::type.
Referenced by blender::deg::DepsgraphRelationBuilder::add_operation_relation(), blender::deg::DepsgraphRelationBuilder::add_time_relation(), blender::deg::DepsgraphRelationBuilder::build_animdata_curves_targets(), and blender::deg::DepsgraphRelationBuilder::build_copy_on_write_relations().
| TimeSourceNode * blender::deg::Depsgraph::add_time_source | ( | ) |
Definition at line 93 of file depsgraph.cc.
References blender::deg::DepsNodeFactory::create_node(), time_source, blender::deg::TIMESOURCE, and blender::deg::type_get_factory().
Referenced by blender::deg::DepsgraphNodeBuilder::add_time_source(), and Depsgraph().
| Relation * blender::deg::Depsgraph::check_nodes_connected | ( | const Node * | from, |
| const Node * | to, | ||
| const char * | description | ||
| ) |
Definition at line 209 of file depsgraph.cc.
References BLI_assert, from, blender::deg::Relation::from, blender::deg::Relation::name, STREQ, and blender::deg::Relation::to.
Referenced by add_new_relation().
| void blender::deg::Depsgraph::clear_all_nodes | ( | ) |
Definition at line 242 of file depsgraph.cc.
References clear_id_nodes(), and time_source.
Referenced by blender::deg::DepsgraphNodeBuilder::begin_build().
| void blender::deg::Depsgraph::clear_id_nodes | ( | ) |
Definition at line 164 of file depsgraph.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::clear(), blender::deg::clear_id_nodes_conditional(), blender::deg::clear_physics_relations(), id_hash, id_node, id_nodes, ID_PA, and ID_SCE.
Referenced by clear_all_nodes(), and ~Depsgraph().
Definition at line 112 of file depsgraph.cc.
References id_hash.
Referenced by blender::deg::DepsgraphRelationBuilder::add_customdata_mask(), add_id_node(), blender::deg::DepsgraphRelationBuilder::add_special_eval_flag(), blender::deg::deg_check_base_in_depsgraph(), blender::deg::deg_check_id_in_depsgraph(), blender::deg::deg_expand_copy_on_write_datablock(), DEG_get_customdata_mask_for_object(), DEG_get_eval_flags_for_id(), DEG_get_evaluated_id(), DEG_graph_tag_relations_update(), blender::deg::deg_update_copy_on_write_datablock(), blender::deg::DepsgraphNodeBuilder::find_id_node(), blender::deg::DepsgraphRelationBuilder::find_node(), blender::deg::RNANodeQuery::find_node(), get_cow_id(), blender::deg::DepsgraphRelationBuilder::get_node(), and blender::deg::graph_id_tag_update().
| TimeSourceNode * blender::deg::Depsgraph::find_time_source | ( | ) | const |
Definition at line 102 of file depsgraph.cc.
References time_source.
Referenced by blender::deg::deg_debug_graphviz_graph_nodes(), blender::deg::deg_debug_graphviz_graph_relations(), and DEG_stats_simple().
Definition at line 249 of file depsgraph.cc.
References find_id_node(), id_node, LIB_TAG_COPIED_ON_WRITE, and ID::tag.
Referenced by blender::deg::AbstractBuilderPipeline::build_step_finalize(), and blender::deg::DepsgraphNodeBuilder::get_cow_id().
| blender::deg::Depsgraph::MEM_CXX_CLASS_ALLOC_FUNCS | ( | "Depsgraph" | ) |
| void blender::deg::Depsgraph::tag_time_source | ( | ) |
Definition at line 107 of file depsgraph.cc.
References blender::deg::DEG_UPDATE_SOURCE_TIME, blender::deg::TimeSourceNode::tag_update(), and time_source.
Referenced by DEG_evaluate_on_framechange(), DEG_evaluate_on_refresh(), and DEG_graph_time_tag_update().
| Main* blender::deg::Depsgraph::bmain |
Definition at line 133 of file depsgraph.h.
Referenced by DEG_get_bmain(), blender::deg::deg_graph_flush_updates(), DEG_graph_replace_owners(), blender::deg::register_graph(), and blender::deg::unregister_graph().
| float blender::deg::Depsgraph::ctime |
Definition at line 139 of file depsgraph.h.
Referenced by DEG_evaluate_on_framechange(), DEG_evaluate_on_refresh(), deg_flush_updates_and_refresh(), and DEG_get_ctime().
| DepsgraphDebug blender::deg::Depsgraph::debug |
Definition at line 154 of file depsgraph.h.
Referenced by DEG_debug_flags_get(), DEG_debug_flags_set(), DEG_debug_name_get(), DEG_debug_name_set(), and blender::deg::deg_evaluate_on_refresh().
| Set<OperationNode *> blender::deg::Depsgraph::entry_tags |
Definition at line 120 of file depsgraph.h.
Referenced by add_entry_tag(), blender::deg::DepsgraphNodeBuilder::begin_build(), blender::deg::deg_evaluate_on_refresh(), blender::deg::deg_graph_clear_tags(), blender::deg::deg_graph_flush_updates(), and DEG_is_fully_evaluated().
Definition at line 98 of file depsgraph.h.
Referenced by add_id_node(), clear_id_nodes(), and find_id_node().
| IDDepsNodes blender::deg::Depsgraph::id_nodes |
Definition at line 103 of file depsgraph.h.
Referenced by add_id_node(), blender::deg::DepsgraphNodeBuilder::begin_build(), blender::deg::DepsgraphRelationBuilder::build_copy_on_write_relations(), blender::deg::DepsgraphRelationBuilder::build_driver_data(), blender::deg::DepsgraphRelationBuilder::build_driver_relations(), clear_id_nodes(), blender::deg::deg_debug_graphviz_graph_nodes(), blender::deg::deg_debug_graphviz_graph_relations(), blender::deg::deg_eval_stats_aggregate(), blender::deg::deg_graph_build_finalize(), DEG_ids_clear_recalc(), DEG_ids_restore_recalc(), DEG_iterator_ids_begin(), DEG_iterator_objects_begin(), and DEG_stats_simple().
| char blender::deg::Depsgraph::id_type_exist[INDEX_ID_MAX] |
Definition at line 115 of file depsgraph.h.
Referenced by add_id_node(), DEG_id_type_any_exists(), and Depsgraph().
| char blender::deg::Depsgraph::id_type_updated[INDEX_ID_MAX] |
Definition at line 112 of file depsgraph.h.
Referenced by DEG_graph_id_type_tag(), DEG_id_type_any_updated(), DEG_id_type_updated(), DEG_ids_clear_recalc(), and Depsgraph().
| bool blender::deg::Depsgraph::is_active |
Definition at line 152 of file depsgraph.h.
Referenced by DEG_ids_clear_recalc(), DEG_is_active(), DEG_make_active(), and DEG_make_inactive().
| bool blender::deg::Depsgraph::is_evaluating |
Definition at line 156 of file depsgraph.h.
Referenced by blender::deg::deg_evaluate_on_refresh(), DEG_is_evaluating(), and blender::deg::graph_id_tag_update().
| bool blender::deg::Depsgraph::is_render_pipeline_depsgraph |
Definition at line 162 of file depsgraph.h.
Referenced by blender::deg::CompositorBuilderPipeline::CompositorBuilderPipeline(), and blender::deg::RenderBuilderPipeline::RenderBuilderPipeline().
| SpinLock blender::deg::Depsgraph::lock |
Definition at line 130 of file depsgraph.h.
Referenced by Depsgraph(), and ~Depsgraph().
| eEvaluationMode blender::deg::Depsgraph::mode |
Definition at line 136 of file depsgraph.h.
Referenced by blender::deg::DepsgraphNodeBuilder::build_collection(), blender::deg::DepsgraphRelationBuilder::build_collection(), blender::deg::DepsgraphNodeBuilder::build_layer_collections(), blender::deg::DepsgraphRelationBuilder::build_layer_collections(), blender::deg::DepsgraphRelationBuilder::build_object_data_geometry(), DEG_get_mode(), and blender::deg::DepsgraphBuilder::need_pull_base_into_graph().
| bool blender::deg::Depsgraph::need_update |
Definition at line 109 of file depsgraph.h.
Referenced by blender::deg::AbstractBuilderPipeline::build_step_finalize(), DEG_graph_relations_update(), DEG_graph_tag_relations_update(), and DEG_is_fully_evaluated().
| OperationNodes blender::deg::Depsgraph::operations |
Definition at line 126 of file depsgraph.h.
Referenced by blender::deg::DepsgraphNodeBuilder::add_id_node(), blender::deg::DepsgraphNodeBuilder::add_operation_node(), blender::deg::DepsgraphNodeBuilder::begin_build(), DEG_debug_compare(), DEG_debug_consistency_check(), blender::deg::deg_eval_stats_aggregate(), blender::deg::deg_graph_clear_tags(), blender::deg::deg_graph_remove_unused_noops(), blender::deg::deg_graph_transitive_reduction(), and DEG_stats_simple().
| Map<const ID *, ListBase *>* blender::deg::Depsgraph::physics_relations[DEG_PHYSICS_RELATIONS_NUM] |
Definition at line 169 of file depsgraph.h.
Referenced by blender::deg::build_collision_relations(), blender::deg::build_effector_relations(), blender::deg::clear_physics_relations(), DEG_get_collision_relations(), DEG_get_effector_relations(), and Depsgraph().
| Scene* blender::deg::Depsgraph::scene |
Definition at line 134 of file depsgraph.h.
Referenced by blender::deg::AbstractBuilderPipeline::build_step_finalize(), blender::deg::AbstractBuilderPipeline::build_step_sanity_check(), blender::deg::deg_evaluate_copy_on_write(), DEG_get_input_scene(), blender::deg::deg_graph_flush_updates(), DEG_graph_replace_owners(), and DEG_graph_tag_relations_update().
| Scene* blender::deg::Depsgraph::scene_cow |
Definition at line 143 of file depsgraph.h.
Referenced by blender::deg::AbstractBuilderPipeline::build_step_finalize(), deg_flush_updates_and_refresh(), and DEG_get_evaluated_scene().
| TimeSourceNode* blender::deg::Depsgraph::time_source |
Definition at line 106 of file depsgraph.h.
Referenced by add_time_source(), clear_all_nodes(), blender::deg::deg_graph_clear_tags(), blender::deg::deg_graph_flush_updates(), find_time_source(), blender::deg::DepsgraphRelationBuilder::get_node(), tag_time_source(), and ~Depsgraph().
| bool blender::deg::Depsgraph::use_editors_update |
Definition at line 165 of file depsgraph.h.
| ViewLayer* blender::deg::Depsgraph::view_layer |