Blender
V3.3
|
#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") | |
Definition at line 43 of file depsgraph.h.
Definition at line 45 of file depsgraph.h.
typedef Vector<OperationNode *> blender::deg::Depsgraph::OperationNodes |
Definition at line 44 of file depsgraph.h.
blender::deg::Depsgraph::Depsgraph | ( | Main * | bmain, |
Scene * | scene, | ||
ViewLayer * | view_layer, | ||
eEvaluationMode | mode | ||
) |
Definition at line 46 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 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 216 of file depsgraph.cc.
References entry_tags, and node.
Definition at line 106 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 |
||
) |
Add new relationship between two nodes.
Definition at line 171 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 82 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 197 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 229 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 153 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 101 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(), DEG_get_customdata_mask_for_object(), DEG_get_eval_flags_for_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::get_evaluated_id(), blender::deg::DepsgraphRelationBuilder::get_node(), and blender::deg::graph_id_tag_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 236 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 96 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 127 of file depsgraph.h.
Referenced by DEG_get_bmain(), blender::deg::deg_graph_flush_updates(), DEG_graph_replace_owners(), blender::deg::graph_tag_ids_for_visible_update(), blender::deg::register_graph(), and blender::deg::unregister_graph().
float blender::deg::Depsgraph::ctime |
Definition at line 135 of file depsgraph.h.
Referenced by DEG_evaluate_on_framechange(), DEG_evaluate_on_refresh(), and DEG_get_ctime().
DepsgraphDebug blender::deg::Depsgraph::debug |
Definition at line 150 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 114 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().
float blender::deg::Depsgraph::frame |
Definition at line 134 of file depsgraph.h.
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 92 of file depsgraph.h.
Referenced by blender::deg::DepsgraphNodeBuilder::build_view_layer(), and blender::deg::deg_evaluate_on_refresh().
Definition at line 81 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 86 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(), blender::deg::deg_graph_flush_visibility_flags(), DEG_ids_clear_recalc(), DEG_ids_restore_recalc(), DEG_iterator_ids_begin(), DEG_iterator_objects_begin(), DEG_stats_simple(), blender::deg::graph_tag_ids_for_visible_update(), and blender::deg::DepsgraphNodeBuilder::update_invalid_cow_pointers().
char blender::deg::Depsgraph::id_type_exist[INDEX_ID_MAX] |
Definition at line 109 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 106 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 148 of file depsgraph.h.
Referenced by DEG_ids_clear_recalc(), DEG_is_active(), DEG_make_active(), DEG_make_inactive(), and blender::deg::GPencilBackup::restore_to_gpencil().
bool blender::deg::Depsgraph::is_evaluating |
Definition at line 152 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 158 of file depsgraph.h.
Referenced by blender::deg::CompositorBuilderPipeline::CompositorBuilderPipeline(), and blender::deg::RenderBuilderPipeline::RenderBuilderPipeline().
SpinLock blender::deg::Depsgraph::lock |
Definition at line 124 of file depsgraph.h.
Referenced by Depsgraph(), and ~Depsgraph().
eEvaluationMode blender::deg::Depsgraph::mode |
Definition at line 130 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(), blender::deg::deg_evaluate_object_node_visibility(), DEG_get_mode(), 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 103 of file depsgraph.h.
Referenced by blender::deg::graph_tag_ids_for_visible_update().
bool blender::deg::Depsgraph::need_tag_id_on_graph_visibility_update |
Definition at line 102 of file depsgraph.h.
Referenced by blender::deg::graph_tag_ids_for_visible_update().
bool blender::deg::Depsgraph::need_update_nodes_visibility |
Definition at line 98 of file depsgraph.h.
Referenced by blender::deg::deg_evaluate_object_node_visibility(), blender::deg::deg_graph_flush_visibility_flags(), and blender::deg::deg_graph_flush_visibility_flags_if_needed().
bool blender::deg::Depsgraph::need_update_relations |
Definition at line 95 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 120 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_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 165 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 128 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 139 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 89 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 161 of file depsgraph.h.
ViewLayer* blender::deg::Depsgraph::view_layer |