|
Blender V4.3
|
#include <depsgraph.hh>
Public Types | |
| using | OperationNodes = Vector<OperationNode *> |
| using | IDDepsNodes = Vector<IDNode *> |
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 | has_animated_visibility |
| bool | need_update_relations |
| bool | need_update_nodes_visibility |
| bool | need_tag_id_on_graph_visibility_update |
| bool | need_tag_id_on_graph_visibility_time_update |
| char | id_type_updated [INDEX_ID_MAX] |
| char | id_type_updated_backup [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 | frame |
| float | ctime |
| Scene * | scene_cow |
| bool | is_active |
| bool | use_visibility_optimization |
| DepsgraphDebug | debug |
| bool | is_evaluating |
| bool | is_render_pipeline_depsgraph |
| bool | use_editors_update |
| Map< const ID *, ListBase * > * | physics_relations [DEG_PHYSICS_RELATIONS_NUM] |
| light_linking::Cache | light_linking_cache |
| uint64_t | update_count |
| Vector< std::function< void()> > | sync_writeback_callbacks |
| std::mutex | sync_writeback_callbacks_mutex |
Definition at line 47 of file depsgraph.hh.
| using blender::deg::Depsgraph::IDDepsNodes = Vector<IDNode *> |
Definition at line 49 of file depsgraph.hh.
Definition at line 48 of file depsgraph.hh.
| blender::deg::Depsgraph::Depsgraph | ( | Main * | bmain, |
| Scene * | scene, | ||
| ViewLayer * | view_layer, | ||
| eEvaluationMode | mode ) |
Definition at line 47 of file depsgraph.cc.
References add_time_source(), BLI_spin_init(), id_type_exist, id_type_updated, id_type_updated_backup, lock, and physics_relations.
| blender::deg::Depsgraph::~Depsgraph | ( | ) |
Definition at line 77 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 222 of file depsgraph.cc.
References entry_tags.
Definition at line 110 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_hash, id_node, id_nodes, blender::deg::ID_REF, ID_TAG_COPIED_ON_EVAL, id_type_exist, 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 ) |
Add new relationship between two nodes.
Definition at line 177 of file depsgraph.cc.
References BLI_assert, check_nodes_connected(), blender::deg::COPY_ON_EVAL, 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_fcurve_target(), and blender::deg::DepsgraphRelationBuilder::build_copy_on_write_relations().
| TimeSourceNode * blender::deg::Depsgraph::add_time_source | ( | ) |
Definition at line 86 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 203 of file depsgraph.cc.
References BLI_assert, and STREQ.
Referenced by add_new_relation().
| void blender::deg::Depsgraph::clear_all_nodes | ( | ) |
Definition at line 235 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 157 of file depsgraph.cc.
References blender::deg::light_linking::Cache::clear(), 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, ID_SCE, and light_linking_cache.
Referenced by clear_all_nodes(), and ~Depsgraph().
Definition at line 105 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(), DEG_get_customdata_mask_for_object(), DEG_get_eval_flags_for_id(), DEG_graph_tag_relations_update(), DEG_id_is_fully_evaluated(), blender::deg::deg_update_eval_copy_datablock(), blender::deg::DepsgraphNodeBuilder::find_id_node(), blender::deg::DepsgraphRelationBuilder::find_node(), blender::deg::DepsgraphRelationBuilder::find_node(), blender::deg::RNANodeQuery::find_node(), get_cow_id(), blender::deg::get_evaluated_id(), blender::deg::DepsgraphRelationBuilder::get_node(), and operation_needs_update().
| TimeSourceNode * blender::deg::Depsgraph::find_time_source | ( | ) | const |
Definition at line 95 of file depsgraph.cc.
References time_source.
Referenced by DEG_stats_simple().
Definition at line 242 of file depsgraph.cc.
References find_id_node(), id_node, ID_TAG_COPIED_ON_EVAL, 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 100 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.hh.
Referenced by DEG_get_bmain(), DEG_graph_replace_owners(), DEG_graph_tag_relations_update(), blender::deg::register_graph(), and blender::deg::unregister_graph().
| float blender::deg::Depsgraph::ctime |
Definition at line 141 of file depsgraph.hh.
Referenced by DEG_evaluate_on_framechange(), DEG_evaluate_on_refresh(), and DEG_get_ctime().
| DepsgraphDebug blender::deg::Depsgraph::debug |
Definition at line 159 of file depsgraph.hh.
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.hh.
Referenced by add_entry_tag(), blender::deg::DepsgraphNodeBuilder::begin_build(), and DEG_is_fully_evaluated().
| float blender::deg::Depsgraph::frame |
Definition at line 140 of file depsgraph.hh.
Referenced by DEG_evaluate_on_framechange(), DEG_evaluate_on_refresh(), and deg_flush_updates_and_refresh().
| bool blender::deg::Depsgraph::has_animated_visibility |
Definition at line 96 of file depsgraph.hh.
Referenced by blender::deg::DepsgraphNodeBuilder::build_object_modifiers(), and blender::deg::DepsgraphNodeBuilder::build_view_layer().
Definition at line 85 of file depsgraph.hh.
Referenced by add_id_node(), clear_id_nodes(), and find_id_node().
| IDDepsNodes blender::deg::Depsgraph::id_nodes |
Definition at line 90 of file depsgraph.hh.
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(), DEG_ids_clear_recalc(), DEG_ids_restore_recalc(), DEG_iterator_ids_begin(), DEG_iterator_ids_next(), DEG_iterator_objects_begin(), DEG_stats_simple(), and blender::deg::DepsgraphNodeBuilder::update_invalid_cow_pointers().
| char blender::deg::Depsgraph::id_type_exist[INDEX_ID_MAX] |
Definition at line 115 of file depsgraph.hh.
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 110 of file depsgraph.hh.
Referenced by DEG_graph_id_type_tag(), DEG_id_type_any_updated(), DEG_id_type_updated(), DEG_ids_clear_recalc(), DEG_ids_restore_recalc(), and Depsgraph().
| char blender::deg::Depsgraph::id_type_updated_backup[INDEX_ID_MAX] |
Definition at line 112 of file depsgraph.hh.
Referenced by DEG_ids_clear_recalc(), DEG_ids_restore_recalc(), and Depsgraph().
| bool blender::deg::Depsgraph::is_active |
Definition at line 154 of file depsgraph.hh.
Referenced by blender::deg::sync_writeback::add(), deg_flush_updates_and_refresh(), DEG_ids_clear_recalc(), DEG_is_active(), DEG_make_active(), and DEG_make_inactive().
| bool blender::deg::Depsgraph::is_evaluating |
Definition at line 161 of file depsgraph.hh.
Referenced by DEG_is_evaluating().
| bool blender::deg::Depsgraph::is_render_pipeline_depsgraph |
Definition at line 167 of file depsgraph.hh.
Referenced by blender::deg::DepsgraphRelationBuilder::build_object_pointcache(), blender::deg::CompositorBuilderPipeline::CompositorBuilderPipeline(), and blender::deg::RenderBuilderPipeline::RenderBuilderPipeline().
| light_linking::Cache blender::deg::Depsgraph::light_linking_cache |
Definition at line 176 of file depsgraph.hh.
Referenced by blender::deg::DepsgraphNodeBuilder::build_object_light_linking(), clear_id_nodes(), blender::deg::DepsgraphNodeBuilder::end_build(), and blender::deg::light_linking::eval_runtime_data().
| SpinLock blender::deg::Depsgraph::lock |
Definition at line 130 of file depsgraph.hh.
Referenced by Depsgraph(), and ~Depsgraph().
| eEvaluationMode blender::deg::Depsgraph::mode |
Definition at line 136 of file depsgraph.hh.
Referenced by blender::deg::DepsgraphNodeBuilder::build_collection(), blender::deg::DepsgraphRelationBuilder::build_layer_collection(), blender::deg::DepsgraphNodeBuilder::build_layer_collections(), blender::deg::DepsgraphRelationBuilder::build_object_instance_collection(), blender::deg::DepsgraphNodeBuilder::build_object_modifiers(), DEG_get_mode(), blender::deg::FromCollectionBuilderPipeline::FromCollectionBuilderPipeline(), blender::deg::DepsgraphBuilder::is_modifier_visibility_animated(), blender::deg::DepsgraphBuilder::is_object_visibility_animated(), and blender::deg::DepsgraphBuilder::need_pull_base_into_graph().
| bool blender::deg::Depsgraph::need_tag_id_on_graph_visibility_time_update |
Definition at line 107 of file depsgraph.hh.
| bool blender::deg::Depsgraph::need_tag_id_on_graph_visibility_update |
Definition at line 106 of file depsgraph.hh.
| bool blender::deg::Depsgraph::need_update_nodes_visibility |
Definition at line 102 of file depsgraph.hh.
| bool blender::deg::Depsgraph::need_update_relations |
Definition at line 99 of file depsgraph.hh.
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.hh.
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(), and DEG_stats_simple().
| Map<const ID *, ListBase *>* blender::deg::Depsgraph::physics_relations[DEG_PHYSICS_RELATIONS_NUM] |
Definition at line 174 of file depsgraph.hh.
Referenced by DEG_get_collision_relations(), DEG_get_effector_relations(), and Depsgraph().
| Scene* blender::deg::Depsgraph::scene |
Definition at line 134 of file depsgraph.hh.
Referenced by blender::deg::DepsgraphNodeBuilder::build_driver_variables(), blender::deg::DepsgraphRelationBuilder::build_driver_variables(), blender::deg::build_effector_relations(), blender::deg::DepsgraphNodeBuilder::build_object_light_linking(), blender::deg::AbstractBuilderPipeline::build_step_finalize(), blender::deg::AbstractBuilderPipeline::build_step_sanity_check(), blender::deg::deg_create_eval_copy(), DEG_get_input_scene(), DEG_graph_replace_owners(), DEG_graph_tag_relations_update(), and blender::deg::DepsgraphNodeBuilder::end_build().
| Scene* blender::deg::Depsgraph::scene_cow |
Definition at line 145 of file depsgraph.hh.
Referenced by blender::deg::AbstractBuilderPipeline::build_step_finalize(), deg_flush_updates_and_refresh(), and DEG_get_evaluated_scene().
| Vector<std::function<void()> > blender::deg::Depsgraph::sync_writeback_callbacks |
Stores functions that can be called after depsgraph evaluation to writeback some changes to original data. Also see DEG_depsgraph_writeback_sync.hh.
Definition at line 185 of file depsgraph.hh.
Referenced by blender::deg::sync_writeback::add(), and deg_flush_updates_and_refresh().
| std::mutex blender::deg::Depsgraph::sync_writeback_callbacks_mutex |
Needs to be locked when adding a writeback callback during evaluation.
Definition at line 187 of file depsgraph.hh.
Referenced by blender::deg::sync_writeback::add().
| TimeSourceNode* blender::deg::Depsgraph::time_source |
Definition at line 93 of file depsgraph.hh.
Referenced by add_time_source(), clear_all_nodes(), find_time_source(), blender::deg::DepsgraphRelationBuilder::get_node(), tag_time_source(), and ~Depsgraph().
| uint64_t blender::deg::Depsgraph::update_count |
Definition at line 179 of file depsgraph.hh.
Referenced by DEG_get_update_count().
| bool blender::deg::Depsgraph::use_editors_update |
Definition at line 170 of file depsgraph.hh.
Referenced by DEG_enable_editors_update().
| bool blender::deg::Depsgraph::use_visibility_optimization |
Definition at line 157 of file depsgraph.hh.
Referenced by DEG_disable_visibility_optimization().
| ViewLayer* blender::deg::Depsgraph::view_layer |
Definition at line 135 of file depsgraph.hh.
Referenced by blender::deg::DepsgraphNodeBuilder::build_driver_variables(), blender::deg::DepsgraphRelationBuilder::build_driver_variables(), blender::deg::AbstractBuilderPipeline::build_step_sanity_check(), DEG_get_evaluated_view_layer(), DEG_get_input_view_layer(), and DEG_graph_replace_owners().