Blender V4.3
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

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
 
Vector< std::function< void()> > sync_writeback_callbacks
 
std::mutex sync_writeback_callbacks_mutex
 

Detailed Description

Definition at line 47 of file depsgraph.hh.

Member Typedef Documentation

◆ IDDepsNodes

Definition at line 49 of file depsgraph.hh.

◆ OperationNodes

Constructor & Destructor Documentation

◆ Depsgraph()

blender::deg::Depsgraph::Depsgraph ( Main * bmain,
Scene * scene,
ViewLayer * view_layer,
eEvaluationMode mode )

◆ ~Depsgraph()

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

Definition at line 77 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 222 of file depsgraph.cc.

References entry_tags.

◆ add_id_node()

◆ add_new_relation()

◆ add_time_source()

◆ check_nodes_connected()

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

◆ clear_all_nodes()

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

◆ clear_id_nodes()

◆ find_id_node()

◆ find_time_source()

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

Definition at line 95 of file depsgraph.cc.

References time_source.

Referenced by DEG_stats_simple().

◆ 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

◆ ctime

float blender::deg::Depsgraph::ctime

◆ debug

◆ entry_tags

Set<OperationNode *> blender::deg::Depsgraph::entry_tags

◆ frame

float blender::deg::Depsgraph::frame

◆ has_animated_visibility

bool blender::deg::Depsgraph::has_animated_visibility

◆ id_hash

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

Definition at line 85 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 115 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 112 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

Definition at line 161 of file depsgraph.hh.

Referenced by DEG_is_evaluating().

◆ is_render_pipeline_depsgraph

◆ light_linking_cache

◆ lock

SpinLock blender::deg::Depsgraph::lock

Definition at line 130 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 107 of file depsgraph.hh.

◆ need_tag_id_on_graph_visibility_update

bool blender::deg::Depsgraph::need_tag_id_on_graph_visibility_update

Definition at line 106 of file depsgraph.hh.

◆ need_update_nodes_visibility

bool blender::deg::Depsgraph::need_update_nodes_visibility

Definition at line 102 of file depsgraph.hh.

◆ need_update_relations

bool blender::deg::Depsgraph::need_update_relations

◆ operations

◆ physics_relations

Map<const ID *, ListBase *>* blender::deg::Depsgraph::physics_relations[DEG_PHYSICS_RELATIONS_NUM]

◆ scene

◆ scene_cow

Scene* blender::deg::Depsgraph::scene_cow

◆ 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 185 of file depsgraph.hh.

Referenced by blender::deg::sync_writeback::add(), and deg_flush_updates_and_refresh().

◆ sync_writeback_callbacks_mutex

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

◆ time_source

◆ update_count

uint64_t blender::deg::Depsgraph::update_count

Definition at line 179 of file depsgraph.hh.

Referenced by DEG_get_update_count().

◆ use_editors_update

bool blender::deg::Depsgraph::use_editors_update

Definition at line 170 of file depsgraph.hh.

Referenced by DEG_enable_editors_update().

◆ use_visibility_optimization

bool blender::deg::Depsgraph::use_visibility_optimization

Definition at line 157 of file depsgraph.hh.

Referenced by DEG_disable_visibility_optimization().

◆ view_layer


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