|
Blender V5.0
|
#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") | |
Definition at line 48 of file depsgraph.hh.
| using blender::deg::Depsgraph::IDDepsNodes = Vector<IDNode *> |
Definition at line 50 of file depsgraph.hh.
Definition at line 49 of file depsgraph.hh.
| blender::deg::Depsgraph::Depsgraph | ( | Main * | bmain, |
| Scene * | scene, | ||
| ViewLayer * | view_layer, | ||
| eEvaluationMode | mode ) |
Definition at line 42 of file depsgraph.cc.
References add_time_source(), BKE_scene_ctime_get(), BKE_scene_frame_get(), BLI_spin_init(), bmain, ctime, DEG_EVALUATE_SYNC_WRITEBACK_NO, false, frame, has_animated_visibility, id_type_exist, id_type_updated, id_type_updated_backup, is_active, is_evaluating, is_render_pipeline_depsgraph, lock, mode, need_tag_id_on_graph_visibility_time_update, need_tag_id_on_graph_visibility_update, need_update_nodes_visibility, need_update_relations, nullptr, physics_relations, scene, scene_cow, sync_writeback, time_source, true, update_count, use_editors_update, use_visibility_optimization, and view_layer.
| blender::deg::Depsgraph::~Depsgraph | ( | ) |
Definition at line 73 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 224 of file depsgraph.cc.
References entry_tags.
Referenced by blender::deg::OperationNode::tag_update().
Definition at line 106 of file depsgraph.cc.
References BKE_idtype_idcode_to_index(), BLI_assert, blender::deg::DepsNodeFactory::create_node(), find_id_node(), GS, id_hash, id_nodes, blender::deg::ID_REF, ID_TAG_COPIED_ON_EVAL, id_type_exist, blender::deg::IDNode::init_copy_on_write(), ID::name, ID::tag, and blender::deg::type_get_factory().
| 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 173 of file depsgraph.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert, build_allocator, check_nodes_connected(), blender::deg::COPY_ON_EVAL, blender::deg::Relation::flag, blender::deg::Node::inlinks, blender::deg::OPERATION, blender::deg::Node::outlinks, blender::deg::OperationNode::owner, blender::deg::RELATION_CHECK_BEFORE_ADD, and blender::deg::Node::type.
| TimeSourceNode * blender::deg::Depsgraph::add_time_source | ( | ) |
Definition at line 82 of file depsgraph.cc.
References blender::deg::DepsNodeFactory::create_node(), time_source, blender::deg::TIMESOURCE, and blender::deg::type_get_factory().
Referenced by Depsgraph().
| Relation * blender::deg::Depsgraph::check_nodes_connected | ( | const Node * | from, |
| const Node * | to, | ||
| const char * | description ) |
Definition at line 205 of file depsgraph.cc.
References BLI_assert, blender::deg::Relation::from, blender::deg::Relation::name, blender::deg::Node::outlinks, STREQ, and blender::deg::Relation::to.
Referenced by add_new_relation().
| void blender::deg::Depsgraph::clear_all_nodes | ( | ) |
Definition at line 237 of file depsgraph.cc.
References build_allocator, clear_id_nodes(), and time_source.
| void blender::deg::Depsgraph::clear_id_nodes | ( | ) |
Definition at line 153 of file depsgraph.cc.
References blender::deg::clear_id_nodes_conditional(), blender::deg::clear_physics_relations(), id_hash, id_nodes, ID_PA, ID_SCE, and light_linking_cache.
Referenced by clear_all_nodes(), and ~Depsgraph().
Definition at line 101 of file depsgraph.cc.
References id_hash.
Referenced by add_id_node(), blender::deg::deg_check_base_in_depsgraph(), blender::deg::deg_check_id_in_depsgraph(), DEG_get_customdata_mask_for_object(), DEG_get_eval_flags_for_id(), DEG_graph_tag_relations_update(), DEG_id_is_fully_evaluated(), get_cow_id(), blender::deg::get_evaluated_id(), blender::deg::graph_id_tag_update(), and operation_needs_update().
| TimeSourceNode * blender::deg::Depsgraph::find_time_source | ( | ) | const |
Definition at line 91 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 247 of file depsgraph.cc.
References find_id_node(), blender::deg::IDNode::id_cow, ID_TAG_COPIED_ON_EVAL, and ID::tag.
| blender::deg::Depsgraph::MEM_CXX_CLASS_ALLOC_FUNCS | ( | "Depsgraph" | ) |
| void blender::deg::Depsgraph::tag_time_source | ( | ) |
Definition at line 96 of file depsgraph.cc.
References blender::deg::DEG_UPDATE_SOURCE_TIME, 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 140 of file depsgraph.hh.
Referenced by DEG_get_bmain(), blender::deg::deg_graph_flush_updates(), DEG_graph_replace_owners(), DEG_graph_tag_relations_update(), Depsgraph(), and blender::deg::graph_tag_ids_for_visible_update().
| LinearAllocator blender::deg::Depsgraph::build_allocator |
Used to decrease the cost of allocating many small structs when building the graph. This is a viable strategy because the graph is rebuilt from scratch rather than changed in-place.
Definition at line 88 of file depsgraph.hh.
Referenced by add_new_relation(), and clear_all_nodes().
| float blender::deg::Depsgraph::ctime |
Definition at line 148 of file depsgraph.hh.
Referenced by DEG_evaluate_on_framechange(), DEG_evaluate_on_refresh(), DEG_get_ctime(), and Depsgraph().
| DepsgraphDebug blender::deg::Depsgraph::debug |
Definition at line 166 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 127 of file depsgraph.hh.
Referenced by add_entry_tag(), blender::deg::deg_evaluate_on_refresh(), blender::deg::deg_graph_clear_tags(), blender::deg::deg_graph_flush_updates(), and DEG_is_fully_evaluated().
| float blender::deg::Depsgraph::frame |
Definition at line 147 of file depsgraph.hh.
Referenced by DEG_evaluate_on_framechange(), DEG_evaluate_on_refresh(), deg_flush_updates_and_refresh(), and Depsgraph().
| bool blender::deg::Depsgraph::has_animated_visibility |
Definition at line 103 of file depsgraph.hh.
Referenced by blender::deg::deg_evaluate_on_refresh(), and Depsgraph().
Definition at line 92 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 97 of file depsgraph.hh.
Referenced by add_id_node(), 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(), blender::deg::deg_graph_flush_visibility_flags(), 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::graph_tag_ids_for_visible_update().
| char blender::deg::Depsgraph::id_type_exist[INDEX_ID_MAX] |
Definition at line 122 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 117 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 119 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 161 of file depsgraph.hh.
Referenced by blender::deg::sync_writeback::add(), deg_flush_updates_and_refresh(), blender::deg::deg_graph_build_finalize(), DEG_ids_clear_recalc(), DEG_is_active(), DEG_make_active(), DEG_make_inactive(), and Depsgraph().
| bool blender::deg::Depsgraph::is_evaluating |
Definition at line 168 of file depsgraph.hh.
Referenced by blender::deg::deg_evaluate_on_refresh(), DEG_is_evaluating(), Depsgraph(), and blender::deg::graph_id_tag_update().
| bool blender::deg::Depsgraph::is_render_pipeline_depsgraph |
Definition at line 174 of file depsgraph.hh.
Referenced by Depsgraph().
| light_linking::Cache blender::deg::Depsgraph::light_linking_cache |
Definition at line 183 of file depsgraph.hh.
Referenced by clear_id_nodes(), and blender::deg::light_linking::eval_runtime_data().
| SpinLock blender::deg::Depsgraph::lock |
Definition at line 137 of file depsgraph.hh.
Referenced by Depsgraph(), and ~Depsgraph().
| eEvaluationMode blender::deg::Depsgraph::mode |
Definition at line 143 of file depsgraph.hh.
Referenced by blender::deg::deg_evaluate_object_modifiers_mode_node_visibility(), blender::deg::deg_evaluate_object_node_visibility(), DEG_get_mode(), and Depsgraph().
| bool blender::deg::Depsgraph::need_tag_id_on_graph_visibility_time_update |
Definition at line 114 of file depsgraph.hh.
Referenced by Depsgraph(), and blender::deg::graph_tag_ids_for_visible_update().
| bool blender::deg::Depsgraph::need_tag_id_on_graph_visibility_update |
Definition at line 113 of file depsgraph.hh.
Referenced by Depsgraph(), and blender::deg::graph_tag_ids_for_visible_update().
| bool blender::deg::Depsgraph::need_update_nodes_visibility |
Definition at line 109 of file depsgraph.hh.
Referenced by blender::deg::deg_evaluate_object_modifiers_mode_node_visibility(), blender::deg::deg_evaluate_object_node_visibility(), blender::deg::deg_evaluate_on_refresh(), blender::deg::deg_graph_flush_visibility_flags(), blender::deg::deg_graph_flush_visibility_flags_if_needed(), Depsgraph(), and blender::deg::OperationNode::tag_update().
| bool blender::deg::Depsgraph::need_update_relations |
Definition at line 106 of file depsgraph.hh.
Referenced by DEG_graph_relations_update(), DEG_graph_tag_relations_update(), DEG_is_fully_evaluated(), and Depsgraph().
| OperationNodes blender::deg::Depsgraph::operations |
Definition at line 133 of file depsgraph.hh.
Referenced by DEG_debug_compare(), DEG_debug_consistency_check(), blender::deg::deg_eval_stats_aggregate(), blender::deg::deg_graph_flush_visibility_flags(), 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 181 of file depsgraph.hh.
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 141 of file depsgraph.hh.
Referenced by blender::deg::build_effector_relations(), DEG_get_input_scene(), blender::deg::deg_graph_flush_updates(), DEG_graph_replace_owners(), DEG_graph_tag_relations_update(), and Depsgraph().
| Scene* blender::deg::Depsgraph::scene_cow |
Definition at line 152 of file depsgraph.hh.
Referenced by deg_flush_updates_and_refresh(), DEG_get_evaluated_scene(), and Depsgraph().
| DepsgraphEvaluateSyncWriteback blender::deg::Depsgraph::sync_writeback |
Definition at line 189 of file depsgraph.hh.
Referenced by blender::deg::sync_writeback::add(), deg_flush_updates_and_refresh(), and Depsgraph().
| 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 194 of file depsgraph.hh.
Referenced by blender::deg::sync_writeback::add(), and deg_flush_updates_and_refresh().
| Mutex blender::deg::Depsgraph::sync_writeback_callbacks_mutex |
Needs to be locked when adding a writeback callback during evaluation.
Definition at line 196 of file depsgraph.hh.
Referenced by blender::deg::sync_writeback::add().
| TimeSourceNode* blender::deg::Depsgraph::time_source |
Definition at line 100 of file depsgraph.hh.
Referenced by add_time_source(), clear_all_nodes(), blender::deg::deg_graph_clear_tags(), blender::deg::deg_graph_flush_updates(), Depsgraph(), find_time_source(), tag_time_source(), and ~Depsgraph().
| uint64_t blender::deg::Depsgraph::update_count |
Definition at line 186 of file depsgraph.hh.
Referenced by blender::deg::deg_evaluate_on_refresh(), DEG_get_update_count(), and Depsgraph().
| bool blender::deg::Depsgraph::use_editors_update |
Definition at line 177 of file depsgraph.hh.
Referenced by DEG_editors_update(), DEG_enable_editors_update(), and Depsgraph().
| bool blender::deg::Depsgraph::use_visibility_optimization |
Definition at line 164 of file depsgraph.hh.
Referenced by DEG_disable_visibility_optimization(), blender::deg::deg_evaluate_object_modifiers_mode_node_visibility(), blender::deg::deg_evaluate_object_node_visibility(), and Depsgraph().
| ViewLayer* blender::deg::Depsgraph::view_layer |
Definition at line 142 of file depsgraph.hh.
Referenced by blender::deg::build_effector_relations(), DEG_get_evaluated_view_layer(), DEG_get_input_view_layer(), blender::deg::deg_graph_flush_updates(), DEG_graph_replace_owners(), and Depsgraph().