Blender V5.0
blender::deg::Depsgraph Struct Reference

#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 ()
TimeSourceNodeadd_time_source ()
TimeSourceNodefind_time_source () const
void tag_time_source ()
IDNodefind_id_node (const ID *id) const
IDNodeadd_id_node (ID *id, ID *id_cow_hint=nullptr)
void clear_id_nodes ()
Relationadd_new_relation (Node *from, Node *to, const char *description, int flags=0)
Relationcheck_nodes_connected (const Node *from, const Node *to, const char *description)
void add_entry_tag (OperationNode *node)
void clear_all_nodes ()
IDget_cow_id (const ID *id_orig) const
 MEM_CXX_CLASS_ALLOC_FUNCS ("Depsgraph")

Public Attributes

LinearAllocator build_allocator
Map< const ID *, IDNode * > id_hash
IDDepsNodes id_nodes
TimeSourceNodetime_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
Mainbmain
Scenescene
ViewLayerview_layer
eEvaluationMode mode
float frame
float ctime
Scenescene_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
DepsgraphEvaluateSyncWriteback sync_writeback
Vector< std::function< void()> > sync_writeback_callbacks
Mutex sync_writeback_callbacks_mutex

Detailed Description

Definition at line 48 of file depsgraph.hh.

Member Typedef Documentation

◆ IDDepsNodes

Definition at line 50 of file depsgraph.hh.

◆ OperationNodes

Constructor & Destructor Documentation

◆ Depsgraph()

◆ ~Depsgraph()

blender::deg::Depsgraph::~Depsgraph ( )

Definition at line 73 of file depsgraph.cc.

References BLI_spin_end(), clear_id_nodes(), lock, and time_source.

Member Function Documentation

◆ add_entry_tag()

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().

◆ add_id_node()

◆ add_new_relation()

◆ add_time_source()

TimeSourceNode * blender::deg::Depsgraph::add_time_source ( )

◆ check_nodes_connected()

Relation * blender::deg::Depsgraph::check_nodes_connected ( const Node * from,
const Node * to,
const char * description )

◆ clear_all_nodes()

void blender::deg::Depsgraph::clear_all_nodes ( )

Definition at line 237 of file depsgraph.cc.

References build_allocator, clear_id_nodes(), and time_source.

◆ clear_id_nodes()

void blender::deg::Depsgraph::clear_id_nodes ( )

◆ find_id_node()

◆ find_time_source()

TimeSourceNode * blender::deg::Depsgraph::find_time_source ( ) const

◆ get_cow_id()

ID * blender::deg::Depsgraph::get_cow_id ( const ID * id_orig) const

◆ MEM_CXX_CLASS_ALLOC_FUNCS()

blender::deg::Depsgraph::MEM_CXX_CLASS_ALLOC_FUNCS ( "Depsgraph" )

◆ tag_time_source()

void blender::deg::Depsgraph::tag_time_source ( )

Member Data Documentation

◆ bmain

◆ build_allocator

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().

◆ ctime

float blender::deg::Depsgraph::ctime

◆ debug

◆ entry_tags

◆ frame

float blender::deg::Depsgraph::frame

◆ has_animated_visibility

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().

◆ id_hash

Map<const ID *, IDNode *> blender::deg::Depsgraph::id_hash

Definition at line 92 of file depsgraph.hh.

Referenced by add_id_node(), clear_id_nodes(), and find_id_node().

◆ id_nodes

◆ id_type_exist

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().

◆ id_type_updated

char blender::deg::Depsgraph::id_type_updated[INDEX_ID_MAX]

◆ id_type_updated_backup

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().

◆ is_active

◆ is_evaluating

bool blender::deg::Depsgraph::is_evaluating

◆ is_render_pipeline_depsgraph

bool blender::deg::Depsgraph::is_render_pipeline_depsgraph

Definition at line 174 of file depsgraph.hh.

Referenced by Depsgraph().

◆ light_linking_cache

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().

◆ lock

SpinLock blender::deg::Depsgraph::lock

Definition at line 137 of file depsgraph.hh.

Referenced by Depsgraph(), and ~Depsgraph().

◆ mode

◆ need_tag_id_on_graph_visibility_time_update

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().

◆ need_tag_id_on_graph_visibility_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().

◆ need_update_nodes_visibility

◆ need_update_relations

bool blender::deg::Depsgraph::need_update_relations

◆ operations

◆ physics_relations

◆ scene

◆ scene_cow

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().

◆ sync_writeback

DepsgraphEvaluateSyncWriteback blender::deg::Depsgraph::sync_writeback

◆ sync_writeback_callbacks

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().

◆ sync_writeback_callbacks_mutex

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().

◆ time_source

◆ update_count

uint64_t blender::deg::Depsgraph::update_count

◆ use_editors_update

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().

◆ use_visibility_optimization

◆ view_layer


The documentation for this struct was generated from the following files: