Blender V4.5
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()

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

◆ ~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, and node.

◆ 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 205 of file depsgraph.cc.

References BLI_assert, from, and STREQ.

Referenced by add_new_relation().

◆ clear_all_nodes()

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

◆ 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

◆ 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

◆ light_linking_cache

◆ 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 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 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

◆ 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

Definition at line 186 of file depsgraph.hh.

Referenced by blender::deg::deg_evaluate_on_refresh(), and DEG_get_update_count().

◆ use_editors_update

bool blender::deg::Depsgraph::use_editors_update

Definition at line 177 of file depsgraph.hh.

Referenced by DEG_enable_editors_update().

◆ use_visibility_optimization

◆ view_layer


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