Blender V4.3
blender::deg Namespace Reference

Namespaces

namespace  light_linking
 
namespace  sync_writeback
 
namespace  tests
 

Classes

class  AbstractBuilderPipeline
 
class  AllObjectsBuilderPipeline
 
class  AnimatedPropertyID
 
class  AnimatedPropertyStorage
 
class  AnimationBackup
 
class  AnimationValueBackup
 
struct  AudioComponentNode
 
struct  BoneComponentNode
 
class  BuilderMap
 
class  BuilderStack
 
struct  ComponentKey
 
struct  ComponentNode
 
class  CompositorBuilderPipeline
 
struct  DEGCustomDataMeshMasks
 
struct  Depsgraph
 
class  DepsgraphBuilder
 
class  DepsgraphBuilderCache
 
class  DepsgraphDebug
 
class  DepsgraphNodeBuilder
 
class  DepsgraphRelationBuilder
 
struct  DepsNodeFactory
 
struct  DepsNodeFactoryImpl
 
struct  DepsNodeHandle
 
struct  DotExportContext
 
class  DriverDescriptor
 
class  FromCollectionBuilderPipeline
 
class  FromIDsBuilderPipeline
 
struct  GraphRegistry
 
struct  IDNode
 
class  ModifierDataBackup
 
class  MovieClipBackup
 
struct  Node
 
class  ObjectRuntimeBackup
 
struct  OperationKey
 
struct  OperationNode
 
struct  ParametersComponentNode
 
struct  PersistentOperationKey
 
struct  Relation
 
class  RenderBuilderPipeline
 
class  RNANodeIdentifier
 
class  RNANodeQuery
 
class  RNANodeQueryIDData
 
struct  RNAPathKey
 
struct  RootPChanMap
 
class  RuntimeBackup
 
class  SceneBackup
 
struct  Seq_build_prop_cb_data
 
class  SequenceBackup
 
class  SequencerBackup
 
class  SoundBackup
 
struct  TimeSourceKey
 
struct  TimeSourceNode
 
class  ViewLayerBuilderPipeline
 
class  VolumeBackup
 

Typedefs

using GraphSetPtr = std::unique_ptr<VectorSet<Depsgraph *>>
 
using FlushQueue = deque<OperationNode *>
 
using IDComponentsMask = uint64_t
 
using DepsEvalOperationCb = function<void(::Depsgraph *)>
 

Enumerations

enum class  RNAPointerSource { ENTRY , EXIT }
 
enum  { OP_VISITED = 1 , OP_REACHABLE = 2 }
 
enum  RelationFlag {
  RELATION_FLAG_CYCLIC = (1 << 0) , RELATION_FLAG_NO_FLUSH = (1 << 1) , RELATION_FLAG_FLUSH_USER_EDIT_ONLY = (1 << 2) , RELATION_FLAG_GODMODE = (1 << 4) ,
  RELATION_CHECK_BEFORE_ADD = (1 << 5) , RELATION_NO_VISIBILITY_CHANGE = (1 << 6)
}
 
enum  eUpdateSource {
  DEG_UPDATE_SOURCE_TIME = (1 << 0) , DEG_UPDATE_SOURCE_USER_EDIT = (1 << 1) , DEG_UPDATE_SOURCE_RELATIONS = (1 << 2) , DEG_UPDATE_SOURCE_VISIBILITY = (1 << 3) ,
  DEG_UPDATE_SOURCE_SIDE_EFFECT_REQUEST = (1 << 4)
}
 
enum  { ID_STATE_NONE = 0 , ID_STATE_MODIFIED = 1 }
 
enum  { COMPONENT_STATE_NONE = 0 , COMPONENT_STATE_SCHEDULED = 1 , COMPONENT_STATE_DONE = 2 }
 
enum class  NodeClass { GENERIC = 0 , COMPONENT = 1 , OPERATION = 2 }
 
enum class  NodeType {
  UNDEFINED = 0 , OPERATION , TIMESOURCE , ID_REF ,
  PARAMETERS , ANIMATION , TRANSFORM , GEOMETRY ,
  SEQUENCER , LAYER_COLLECTIONS , COPY_ON_EVAL , OBJECT_FROM_LAYER ,
  HIERARCHY , AUDIO , ARMATURE , GENERIC_DATABLOCK ,
  SCENE , VISIBILITY , EVAL_POSE , BONE ,
  PARTICLE_SYSTEM , PARTICLE_SETTINGS , SHADING , POINT_CACHE ,
  IMAGE_ANIMATION , CACHE , BATCH_CACHE , INSTANCING ,
  SYNCHRONIZATION , NTREE_OUTPUT , NTREE_GEOMETRY_PREPROCESS , NUM_TYPES
}
 
enum  eDepsNode_LinkedState_Type { DEG_ID_LINKED_INDIRECTLY = 0 , DEG_ID_LINKED_VIA_SET = 1 , DEG_ID_LINKED_DIRECTLY = 2 }
 
enum class  OperationCode {
  OPERATION = 0 , ID_PROPERTY , PARAMETERS_ENTRY , PARAMETERS_EVAL ,
  PARAMETERS_EXIT , VISIBILITY , HIERARCHY , ANIMATION_ENTRY ,
  ANIMATION_EVAL , ANIMATION_EXIT , DRIVER , SCENE_EVAL ,
  AUDIO_ENTRY , AUDIO_VOLUME , OBJECT_FROM_LAYER_ENTRY , OBJECT_BASE_FLAGS ,
  OBJECT_FROM_LAYER_EXIT , DIMENSIONS , TRANSFORM_INIT , TRANSFORM_LOCAL ,
  TRANSFORM_PARENT , TRANSFORM_CONSTRAINTS , TRANSFORM_EVAL , TRANSFORM_SIMULATION_INIT ,
  TRANSFORM_FINAL , RIGIDBODY_REBUILD , RIGIDBODY_SIM , RIGIDBODY_TRANSFORM_COPY ,
  GEOMETRY_EVAL_INIT , MODIFIER , GEOMETRY_EVAL , GEOMETRY_EVAL_DONE ,
  GEOMETRY_SHAPEKEY , LIGHT_PROBE_EVAL , SPEAKER_EVAL , SOUND_EVAL ,
  ARMATURE_EVAL , POSE_INIT , POSE_INIT_IK , POSE_CLEANUP ,
  POSE_DONE , POSE_IK_SOLVER , POSE_SPLINE_IK_SOLVER , BONE_LOCAL ,
  BONE_POSE_PARENT , BONE_CONSTRAINTS , BONE_READY , BONE_DONE ,
  BONE_SEGMENTS , PARTICLE_SYSTEM_INIT , PARTICLE_SYSTEM_EVAL , PARTICLE_SYSTEM_DONE ,
  PARTICLE_SETTINGS_INIT , PARTICLE_SETTINGS_EVAL , PARTICLE_SETTINGS_RESET , POINT_CACHE_RESET ,
  FILE_CACHE_UPDATE , VIEW_LAYER_EVAL , COPY_ON_EVAL , SHADING ,
  SHADING_DONE , MATERIAL_UPDATE , LIGHT_UPDATE , WORLD_UPDATE ,
  LIGHT_LINKING_UPDATE , NTREE_OUTPUT , NTREE_GEOMETRY_PREPROCESS , GEOMETRY_SELECT_UPDATE ,
  MASK_ANIMATION , MASK_EVAL , MOVIECLIP_EVAL , IMAGE_ANIMATION ,
  SYNCHRONIZE_TO_ORIGINAL , GENERIC_DATABLOCK_UPDATE , SEQUENCES_EVAL , INSTANCER ,
  INSTANCE , INSTANCE_GEOMETRY
}
 
enum  OperationFlag {
  DEPSOP_FLAG_NEEDS_UPDATE = (1 << 0) , DEPSOP_FLAG_DIRECTLY_MODIFIED = (1 << 1) , DEPSOP_FLAG_USER_MODIFIED = (1 << 2) , DEPSOP_FLAG_PINNED = (1 << 3) ,
  DEPSOP_FLAG_AFFECTS_VISIBILITY = (1 << 4) , DEPSOP_FLAG_MUTE = (1 << 5) , DEPSOP_FLAG_FLUSH = (DEPSOP_FLAG_USER_MODIFIED) , DEPSOP_FLAG_CLEAR_ON_EVAL
}
 

Functions

bool deg_check_id_in_depsgraph (const Depsgraph *graph, ID *id_orig)
 
bool deg_check_base_in_depsgraph (const Depsgraph *graph, Base *base)
 
bool operator== (const AnimatedPropertyID &a, const AnimatedPropertyID &b)
 
void deg_graph_detect_cycles (Depsgraph *graph)
 
static int foreach_id_cow_detect_need_for_update_callback (LibraryIDLinkCallbackData *cb_data)
 
static bool seq_node_build_cb (Sequence *seq, void *user_data)
 
static const ModifierDataget_latter_modifier (const ModifierData *md1, const ModifierData *md2)
 
static bool seq_build_prop_cb (Sequence *seq, void *user_data)
 
static bool is_reachable (const Node *const from, const Node *const to)
 
static bool rigidbody_object_depends_on_evaluated_geometry (const RigidBodyOb *rbo)
 
static bool is_unused_noop (OperationNode *op_node)
 
static bool is_removable_relation (const Relation *relation)
 
void deg_graph_remove_unused_noops (Depsgraph *graph)
 
bool rna_prop_affects_parameters_node (const PointerRNA *ptr, const PropertyRNA *prop)
 
static void deg_graph_tag_paths_recursive (Node *node)
 
void deg_graph_transitive_reduction (Depsgraph *graph)
 
bool terminal_do_color ()
 
string color_for_pointer (const void *pointer)
 
string color_end ()
 
static int deg_debug_node_color_index (const Node *node)
 
static void deg_debug_graphviz_legend_color (const char *name, const char *color, std::stringstream &ss)
 
static void deg_debug_graphviz_legend (DotExportContext &ctx)
 
static void deg_debug_graphviz_node_color (DotExportContext &ctx, const Node *node, dot::Attributes &dot_attributes)
 
static void deg_debug_graphviz_node_penwidth (DotExportContext &ctx, const Node *node, dot::Attributes &dot_attributes)
 
static void deg_debug_graphviz_node_fillcolor (const Node *node, dot::Attributes &dot_attributes)
 
static void deg_debug_graphviz_relation_color (const Relation *rel, dot::DirectedEdge &edge)
 
static void deg_debug_graphviz_relation_style (const Relation *rel, dot::DirectedEdge &edge)
 
static void deg_debug_graphviz_relation_arrowhead (const Relation *rel, dot::DirectedEdge &edge)
 
static void deg_debug_graphviz_node_style (DotExportContext &ctx, const Node *node, dot::Attributes &dot_attributes)
 
static void deg_debug_graphviz_node_single (DotExportContext &ctx, const Node *node, dot::Cluster *parent_cluster)
 
static dot::Clusterdeg_debug_graphviz_node_cluster_create (DotExportContext &ctx, const Node *node, dot::Cluster *parent_cluster)
 
static void deg_debug_graphviz_graph_nodes (DotExportContext &ctx, const Depsgraph *graph)
 
static void deg_debug_graphviz_graph_relations (DotExportContext &ctx, const Depsgraph *graph)
 
static void deg_debug_graphviz_node (DotExportContext &ctx, const Node *node, dot::Cluster *parent_cluster)
 
static void deg_debug_graphviz_node_relations (DotExportContext &ctx, const Node *node)
 
template<typename FilterFunc >
static void clear_id_nodes_conditional (Depsgraph::IDDepsNodes *id_nodes, const FilterFunc &filter)
 
ListBasebuild_effector_relations (Depsgraph *graph, Collection *collection)
 
ListBasebuild_collision_relations (Depsgraph *graph, Collection *collection, uint modifier_type)
 
void clear_physics_relations (Depsgraph *graph)
 
static const IDget_original_id (const ID *id)
 
static IDget_original_id (ID *id)
 
static const IDget_evaluated_id (const Depsgraph *deg_graph, const ID *id)
 
static IDget_evaluated_id (const Depsgraph *deg_graph, ID *id)
 
static GraphRegistryget_graph_registry ()
 
void register_graph (Depsgraph *depsgraph)
 
void unregister_graph (Depsgraph *depsgraph)
 
Span< Depsgraph * > get_all_registered_graphs (Main *bmain)
 
void graph_tag_ids_for_visible_update (Depsgraph *graph)
 
NodeType geometry_tag_to_component (const ID *id)
 
void id_tag_update (Main *bmain, ID *id, uint flags, eUpdateSource update_source)
 
void graph_id_tag_update (Main *bmain, Depsgraph *graph, ID *id, uint flags, eUpdateSource update_source)
 
void deg_editors_id_update (const DEGEditorUpdateContext *update_ctx, ID *id)
 
void deg_editors_scene_update (const DEGEditorUpdateContext *update_ctx, bool updated)
 
void deg_evaluate_on_refresh (Depsgraph *graph)
 
IDdeg_update_eval_copy_datablock (const Depsgraph *depsgraph, const IDNode *id_node)
 
IDdeg_update_eval_copy_datablock (const Depsgraph *depsgraph, ID *id_orig)
 
void deg_free_eval_copy_datablock (ID *id_cow)
 
void deg_create_eval_copy (::Depsgraph *graph, const IDNode *id_node)
 
bool deg_validate_eval_copy_datablock (ID *id_cow)
 
void deg_tag_eval_copy_id (deg::Depsgraph &depsgraph, ID *id_cow, const ID *id_orig)
 
bool deg_eval_copy_is_expanded (const ID *id_cow)
 
bool deg_eval_copy_is_needed (const ID *id_orig)
 
bool deg_eval_copy_is_needed (const ID_Type id_type)
 
IDdeg_update_eval_copy_datablock (const struct Depsgraph *depsgraph, const IDNode *id_node)
 
IDdeg_update_eval_copy_datablock (const struct Depsgraph *depsgraph, struct ID *id_orig)
 
void deg_create_eval_copy (struct ::Depsgraph *depsgraph, const struct IDNode *id_node)
 
void deg_tag_eval_copy_id (Depsgraph &depsgraph, struct ID *id_cow, const struct ID *id_orig)
 
bool deg_eval_copy_is_expanded (const struct ID *id_cow)
 
void deg_graph_flush_updates (Depsgraph *graph)
 
void deg_graph_clear_tags (Depsgraph *graph)
 
static bool seq_init_cb (Sequence *seq, void *user_data)
 
static bool seq_restore_cb (Sequence *seq, void *user_data)
 
void deg_eval_stats_aggregate (Depsgraph *graph)
 
void deg_evaluate_object_node_visibility (::Depsgraph *depsgraph, IDNode *id_node)
 
void deg_evaluate_object_modifiers_mode_node_visibility (::Depsgraph *depsgraph, IDNode *id_node)
 
void deg_graph_flush_visibility_flags (Depsgraph *graph)
 
void deg_graph_flush_visibility_flags_if_needed (Depsgraph *graph)
 
const char * nodeClassAsString (NodeClass node_class)
 
const char * nodeTypeAsString (NodeType type)
 
NodeType nodeTypeFromSceneComponent (eDepsSceneComponentType component)
 
eDepsSceneComponentType nodeTypeToSceneComponent (NodeType type)
 
NodeType nodeTypeFromObjectComponent (eDepsObjectComponentType component_type)
 
eDepsObjectComponentType nodeTypeToObjectComponent (NodeType type)
 
 DEG_DEPSNODE_DEFINE (TimeSourceNode, NodeType::TIMESOURCE, "Time Source")
 
 DEG_DEPSNODE_DEFINE (IDNode, NodeType::ID_REF, "ID Node")
 
void deg_register_base_depsnodes ()
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Animation)
 
 DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE (BatchCache)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Cache)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (CopyOnWrite)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Geometry)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (ImageAnimation)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (LayerCollections)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Particles)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (ParticleSettings)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Pose)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (PointCache)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Sequencer)
 
 DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE (Shading)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (ShadingParameters)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Transform)
 
 DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE (ObjectFromLayer)
 
 DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE (Hierarchy)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Instancing)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Synchronization)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Armature)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (GenericDatablock)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Scene)
 
 DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE (Visibility)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (Simulation)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (NTreeOutput)
 
 DEG_COMPONENT_NODE_DECLARE_GENERIC (NTreeGeometryPreprocess)
 
void register_node_typeinfo (DepsNodeFactory *factory)
 
DepsNodeFactorytype_get_factory (const NodeType type)
 
const char * linkedStateAsString (eDepsNode_LinkedState_Type linked_state)
 
const char * operationCodeAsString (OperationCode opcode)
 
 DEG_DEPSNODE_DEFINE (OperationNode, NodeType::OPERATION, "Operation")
 
void deg_register_operation_depsnodes ()
 
Builder Finalizer.
void deg_graph_build_finalize (Main *bmain, Depsgraph *graph)
 
Register All Components
 DEG_COMPONENT_NODE_DEFINE (Animation, ANIMATION, ID_RECALC_ANIMATION)
 
 DEG_COMPONENT_NODE_DEFINE (BatchCache, BATCH_CACHE, ID_RECALC_SHADING)
 
 DEG_COMPONENT_NODE_DEFINE (Bone, BONE, ID_RECALC_GEOMETRY)
 
 DEG_COMPONENT_NODE_DEFINE (Cache, CACHE, 0)
 
 DEG_COMPONENT_NODE_DEFINE (CopyOnWrite, COPY_ON_EVAL, ID_RECALC_SYNC_TO_EVAL)
 
 DEG_COMPONENT_NODE_DEFINE (ImageAnimation, IMAGE_ANIMATION, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Geometry, GEOMETRY, ID_RECALC_GEOMETRY)
 
 DEG_COMPONENT_NODE_DEFINE (LayerCollections, LAYER_COLLECTIONS, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Parameters, PARAMETERS, ID_RECALC_PARAMETERS)
 
 DEG_COMPONENT_NODE_DEFINE (Particles, PARTICLE_SYSTEM, ID_RECALC_GEOMETRY)
 
 DEG_COMPONENT_NODE_DEFINE (ParticleSettings, PARTICLE_SETTINGS, 0)
 
 DEG_COMPONENT_NODE_DEFINE (PointCache, POINT_CACHE, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Pose, EVAL_POSE, ID_RECALC_GEOMETRY)
 
 DEG_COMPONENT_NODE_DEFINE (Sequencer, SEQUENCER, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Shading, SHADING, ID_RECALC_SHADING)
 
 DEG_COMPONENT_NODE_DEFINE (Transform, TRANSFORM, ID_RECALC_TRANSFORM)
 
 DEG_COMPONENT_NODE_DEFINE (ObjectFromLayer, OBJECT_FROM_LAYER, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Hierarchy, HIERARCHY, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Instancing, INSTANCING, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Synchronization, SYNCHRONIZATION, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Audio, AUDIO, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Armature, ARMATURE, 0)
 
 DEG_COMPONENT_NODE_DEFINE (GenericDatablock, GENERIC_DATABLOCK, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Scene, SCENE, 0)
 
 DEG_COMPONENT_NODE_DEFINE (Visibility, VISIBILITY, 0)
 
 DEG_COMPONENT_NODE_DEFINE (NTreeOutput, NTREE_OUTPUT, ID_RECALC_NTREE_OUTPUT)
 
 DEG_COMPONENT_NODE_DEFINE (NTreeGeometryPreprocess, NTREE_GEOMETRY_PREPROCESS, 0)
 
Node Types Register
void deg_register_component_depsnodes ()
 

Variables

constexpr int kColumnSpacing = 4
 
constexpr int kPrintDepthWidth = 5 + kColumnSpacing
 
constexpr int kPrintTypeWidth = 21 + kColumnSpacing
 
static const char * deg_debug_graphviz_fontname = "helvetica"
 
static float deg_debug_graphviz_graph_label_size = 20.0f
 
static float deg_debug_graphviz_node_label_size = 14.0f
 
static const int deg_debug_max_colors = 12
 
static const char * deg_debug_colors_light []
 
static DEG_EditorUpdateIDCb deg_editor_update_id_cb = nullptr
 
static DEG_EditorUpdateSceneCb deg_editor_update_scene_cb = nullptr
 
static DepsNodeFactoryImpl< TimeSourceNodeDNTI_TIMESOURCE
 
static DepsNodeFactoryImpl< IDNodeDNTI_ID_REF
 
static DepsNodeFactorynode_typeinfo_registry [int(NodeType::NUM_TYPES)] = {nullptr}
 
static DepsNodeFactoryImpl< OperationNodeDNTI_OPERATION
 

Typedef Documentation

◆ DepsEvalOperationCb

using blender::deg::DepsEvalOperationCb = function<void(::Depsgraph *)>

Definition at line 23 of file deg_node_operation.hh.

◆ FlushQueue

Definition at line 70 of file deg_eval_flush.cc.

◆ GraphSetPtr

using blender::deg::GraphSetPtr = std::unique_ptr<VectorSet<Depsgraph *>>

Definition at line 27 of file depsgraph_registry.cc.

◆ IDComponentsMask

Definition at line 20 of file deg_node_id.hh.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
OP_VISITED 
OP_REACHABLE 

Definition at line 38 of file deg_builder_transitive.cc.

◆ anonymous enum

anonymous enum
Enumerator
ID_STATE_NONE 
ID_STATE_MODIFIED 

Definition at line 59 of file deg_eval_flush.cc.

◆ anonymous enum

anonymous enum
Enumerator
COMPONENT_STATE_NONE 
COMPONENT_STATE_SCHEDULED 
COMPONENT_STATE_DONE 

Definition at line 64 of file deg_eval_flush.cc.

◆ eDepsNode_LinkedState_Type

Enumerator
DEG_ID_LINKED_INDIRECTLY 
DEG_ID_LINKED_VIA_SET 
DEG_ID_LINKED_DIRECTLY 

Definition at line 24 of file deg_node_id.hh.

◆ eUpdateSource

Enumerator
DEG_UPDATE_SOURCE_TIME 
DEG_UPDATE_SOURCE_USER_EDIT 
DEG_UPDATE_SOURCE_RELATIONS 
DEG_UPDATE_SOURCE_VISIBILITY 
DEG_UPDATE_SOURCE_SIDE_EFFECT_REQUEST 

Update is happening because some side effect of the reevaluation is necessary. For example, baking intermediate geometry nodes happens during normal evaluation but does not actually change the final result. For baking we still want to reevaluate it.

Definition at line 61 of file depsgraph_type.hh.

◆ NodeClass

enum class blender::deg::NodeClass
strong
Enumerator
GENERIC 
COMPONENT 
OPERATION 

Definition at line 30 of file deg_node.hh.

◆ NodeType

enum class blender::deg::NodeType
strong
Enumerator
UNDEFINED 
OPERATION 
TIMESOURCE 
ID_REF 
PARAMETERS 
ANIMATION 
TRANSFORM 
GEOMETRY 
SEQUENCER 
LAYER_COLLECTIONS 
COPY_ON_EVAL 
OBJECT_FROM_LAYER 
HIERARCHY 
AUDIO 
ARMATURE 
GENERIC_DATABLOCK 
SCENE 
VISIBILITY 
EVAL_POSE 
BONE 
PARTICLE_SYSTEM 
PARTICLE_SETTINGS 
SHADING 
POINT_CACHE 
IMAGE_ANIMATION 
CACHE 
BATCH_CACHE 
INSTANCING 
SYNCHRONIZATION 
NTREE_OUTPUT 
NTREE_GEOMETRY_PREPROCESS 
NUM_TYPES 

Definition at line 45 of file deg_node.hh.

◆ OperationCode

enum class blender::deg::OperationCode
strong
Enumerator
OPERATION 
ID_PROPERTY 
PARAMETERS_ENTRY 
PARAMETERS_EVAL 
PARAMETERS_EXIT 
VISIBILITY 
HIERARCHY 
ANIMATION_ENTRY 
ANIMATION_EVAL 
ANIMATION_EXIT 
DRIVER 
SCENE_EVAL 
AUDIO_ENTRY 
AUDIO_VOLUME 
OBJECT_FROM_LAYER_ENTRY 
OBJECT_BASE_FLAGS 
OBJECT_FROM_LAYER_EXIT 
DIMENSIONS 
TRANSFORM_INIT 
TRANSFORM_LOCAL 
TRANSFORM_PARENT 
TRANSFORM_CONSTRAINTS 
TRANSFORM_EVAL 
TRANSFORM_SIMULATION_INIT 
TRANSFORM_FINAL 
RIGIDBODY_REBUILD 
RIGIDBODY_SIM 
RIGIDBODY_TRANSFORM_COPY 
GEOMETRY_EVAL_INIT 
MODIFIER 
GEOMETRY_EVAL 
GEOMETRY_EVAL_DONE 
GEOMETRY_SHAPEKEY 
LIGHT_PROBE_EVAL 
SPEAKER_EVAL 
SOUND_EVAL 
ARMATURE_EVAL 
POSE_INIT 
POSE_INIT_IK 
POSE_CLEANUP 
POSE_DONE 
POSE_IK_SOLVER 
POSE_SPLINE_IK_SOLVER 
BONE_LOCAL 
BONE_POSE_PARENT 
BONE_CONSTRAINTS 
BONE_READY 
BONE_DONE 
BONE_SEGMENTS 
PARTICLE_SYSTEM_INIT 
PARTICLE_SYSTEM_EVAL 
PARTICLE_SYSTEM_DONE 
PARTICLE_SETTINGS_INIT 
PARTICLE_SETTINGS_EVAL 
PARTICLE_SETTINGS_RESET 
POINT_CACHE_RESET 
FILE_CACHE_UPDATE 
VIEW_LAYER_EVAL 
COPY_ON_EVAL 
SHADING 
SHADING_DONE 
MATERIAL_UPDATE 
LIGHT_UPDATE 
WORLD_UPDATE 
LIGHT_LINKING_UPDATE 
NTREE_OUTPUT 
NTREE_GEOMETRY_PREPROCESS 
GEOMETRY_SELECT_UPDATE 
MASK_ANIMATION 
MASK_EVAL 
MOVIECLIP_EVAL 
IMAGE_ANIMATION 
SYNCHRONIZE_TO_ORIGINAL 
GENERIC_DATABLOCK_UPDATE 
SEQUENCES_EVAL 
INSTANCER 
INSTANCE 
INSTANCE_GEOMETRY 

Definition at line 26 of file deg_node_operation.hh.

◆ OperationFlag

Enumerator
DEPSOP_FLAG_NEEDS_UPDATE 
DEPSOP_FLAG_DIRECTLY_MODIFIED 
DEPSOP_FLAG_USER_MODIFIED 
DEPSOP_FLAG_PINNED 
DEPSOP_FLAG_AFFECTS_VISIBILITY 
DEPSOP_FLAG_MUTE 
DEPSOP_FLAG_FLUSH 
DEPSOP_FLAG_CLEAR_ON_EVAL 

Definition at line 215 of file deg_node_operation.hh.

◆ RelationFlag

Enumerator
RELATION_FLAG_CYCLIC 
RELATION_FLAG_NO_FLUSH 
RELATION_FLAG_FLUSH_USER_EDIT_ONLY 
RELATION_FLAG_GODMODE 
RELATION_CHECK_BEFORE_ADD 
RELATION_NO_VISIBILITY_CHANGE 

Definition at line 19 of file depsgraph_relation.hh.

◆ RNAPointerSource

enum class blender::deg::RNAPointerSource
strong
Enumerator
ENTRY 
EXIT 

Definition at line 28 of file deg_builder_rna.h.

Function Documentation

◆ build_collision_relations()

◆ build_effector_relations()

◆ clear_id_nodes_conditional()

template<typename FilterFunc >
static void blender::deg::clear_id_nodes_conditional ( Depsgraph::IDDepsNodes * id_nodes,
const FilterFunc & filter )
static

◆ clear_physics_relations()

◆ color_end()

◆ color_for_pointer()

◆ deg_check_base_in_depsgraph()

bool blender::deg::deg_check_base_in_depsgraph ( const Depsgraph * graph,
Base * base )

◆ deg_check_id_in_depsgraph()

bool blender::deg::deg_check_id_in_depsgraph ( const Depsgraph * graph,
ID * id_orig )

Definition at line 46 of file deg_builder.cc.

References id_node.

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [1/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Animation )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [2/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Armature )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [3/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Cache )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [4/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( CopyOnWrite )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [5/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( GenericDatablock )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [6/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Geometry )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [7/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( ImageAnimation )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [8/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Instancing )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [9/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( LayerCollections )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [10/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( NTreeGeometryPreprocess )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [11/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( NTreeOutput )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [12/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Particles )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [13/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( ParticleSettings )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [14/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( PointCache )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [15/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Pose )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [16/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Scene )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [17/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Sequencer )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [18/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( ShadingParameters )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [19/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Simulation )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [20/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Synchronization )

◆ DEG_COMPONENT_NODE_DECLARE_GENERIC() [21/21]

blender::deg::DEG_COMPONENT_NODE_DECLARE_GENERIC ( Transform )

◆ DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE() [1/5]

blender::deg::DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE ( BatchCache )

◆ DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE() [2/5]

blender::deg::DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE ( Hierarchy )

◆ DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE() [3/5]

blender::deg::DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE ( ObjectFromLayer )

◆ DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE() [4/5]

blender::deg::DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE ( Shading )

◆ DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE() [5/5]

blender::deg::DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE ( Visibility )

◆ DEG_COMPONENT_NODE_DEFINE() [1/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Animation ,
ANIMATION ,
ID_RECALC_ANIMATION  )

◆ DEG_COMPONENT_NODE_DEFINE() [2/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Armature ,
ARMATURE ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [3/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Audio ,
AUDIO ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [4/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( BatchCache ,
BATCH_CACHE ,
ID_RECALC_SHADING  )

◆ DEG_COMPONENT_NODE_DEFINE() [5/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Bone ,
BONE ,
ID_RECALC_GEOMETRY  )

◆ DEG_COMPONENT_NODE_DEFINE() [6/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Cache ,
CACHE ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [7/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( CopyOnWrite ,
COPY_ON_EVAL ,
ID_RECALC_SYNC_TO_EVAL  )

◆ DEG_COMPONENT_NODE_DEFINE() [8/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( GenericDatablock ,
GENERIC_DATABLOCK ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [9/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Geometry ,
GEOMETRY ,
ID_RECALC_GEOMETRY  )

◆ DEG_COMPONENT_NODE_DEFINE() [10/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Hierarchy ,
HIERARCHY ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [11/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( ImageAnimation ,
IMAGE_ANIMATION ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [12/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Instancing ,
INSTANCING ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [13/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( LayerCollections ,
LAYER_COLLECTIONS ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [14/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( NTreeGeometryPreprocess ,
NTREE_GEOMETRY_PREPROCESS ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [15/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( NTreeOutput ,
NTREE_OUTPUT ,
ID_RECALC_NTREE_OUTPUT  )

◆ DEG_COMPONENT_NODE_DEFINE() [16/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( ObjectFromLayer ,
OBJECT_FROM_LAYER ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [17/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Parameters ,
PARAMETERS ,
ID_RECALC_PARAMETERS  )

◆ DEG_COMPONENT_NODE_DEFINE() [18/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Particles ,
PARTICLE_SYSTEM ,
ID_RECALC_GEOMETRY  )

◆ DEG_COMPONENT_NODE_DEFINE() [19/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( ParticleSettings ,
PARTICLE_SETTINGS ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [20/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( PointCache ,
POINT_CACHE ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [21/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Pose ,
EVAL_POSE ,
ID_RECALC_GEOMETRY  )

◆ DEG_COMPONENT_NODE_DEFINE() [22/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Scene ,
SCENE ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [23/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Sequencer ,
SEQUENCER ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [24/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Shading ,
SHADING ,
ID_RECALC_SHADING  )

◆ DEG_COMPONENT_NODE_DEFINE() [25/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Synchronization ,
SYNCHRONIZATION ,
0  )

◆ DEG_COMPONENT_NODE_DEFINE() [26/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Transform ,
TRANSFORM ,
ID_RECALC_TRANSFORM  )

◆ DEG_COMPONENT_NODE_DEFINE() [27/27]

blender::deg::DEG_COMPONENT_NODE_DEFINE ( Visibility ,
VISIBILITY ,
0  )

◆ deg_create_eval_copy() [1/2]

◆ deg_create_eval_copy() [2/2]

void blender::deg::deg_create_eval_copy ( struct ::Depsgraph * depsgraph,
const struct IDNode * id_node )

Callback function for depsgraph operation node which ensures evaluated data-block is ready for use by further evaluation routines.

◆ deg_debug_graphviz_graph_nodes()

static void blender::deg::deg_debug_graphviz_graph_nodes ( DotExportContext & ctx,
const Depsgraph * graph )
static

Definition at line 476 of file deg_debug_relations_graphviz.cc.

References deg_debug_graphviz_node().

Referenced by DEG_debug_graph_to_dot().

◆ deg_debug_graphviz_graph_relations()

static void blender::deg::deg_debug_graphviz_graph_relations ( DotExportContext & ctx,
const Depsgraph * graph )
static

◆ deg_debug_graphviz_legend()

◆ deg_debug_graphviz_legend_color()

static void blender::deg::deg_debug_graphviz_legend_color ( const char * name,
const char * color,
std::stringstream & ss )
static

Definition at line 152 of file deg_debug_relations_graphviz.cc.

Referenced by deg_debug_graphviz_legend().

◆ deg_debug_graphviz_node()

◆ deg_debug_graphviz_node_cluster_create()

◆ deg_debug_graphviz_node_color()

◆ deg_debug_graphviz_node_fillcolor()

static void blender::deg::deg_debug_graphviz_node_fillcolor ( const Node * node,
dot::Attributes & dot_attributes )
static

◆ deg_debug_graphviz_node_penwidth()

◆ deg_debug_graphviz_node_relations()

◆ deg_debug_graphviz_node_single()

◆ deg_debug_graphviz_node_style()

◆ deg_debug_graphviz_relation_arrowhead()

◆ deg_debug_graphviz_relation_color()

static void blender::deg::deg_debug_graphviz_relation_color ( const Relation * rel,
dot::DirectedEdge & edge )
static

◆ deg_debug_graphviz_relation_style()

static void blender::deg::deg_debug_graphviz_relation_style ( const Relation * rel,
dot::DirectedEdge & edge )
static

◆ deg_debug_node_color_index()

static int blender::deg::deg_debug_node_color_index ( const Node * node)
static

◆ DEG_DEPSNODE_DEFINE() [1/3]

blender::deg::DEG_DEPSNODE_DEFINE ( IDNode ,
NodeType::ID_REF ,
"ID Node"  )

◆ DEG_DEPSNODE_DEFINE() [2/3]

blender::deg::DEG_DEPSNODE_DEFINE ( OperationNode ,
NodeType::OPERATION ,
"Operation"  )

◆ DEG_DEPSNODE_DEFINE() [3/3]

blender::deg::DEG_DEPSNODE_DEFINE ( TimeSourceNode ,
NodeType::TIMESOURCE ,
"Time Source"  )

◆ deg_editors_id_update()

void blender::deg::deg_editors_id_update ( const DEGEditorUpdateContext * update_ctx,
ID * id )

Definition at line 22 of file depsgraph_update.cc.

References deg_editor_update_id_cb.

◆ deg_editors_scene_update()

void blender::deg::deg_editors_scene_update ( const DEGEditorUpdateContext * update_ctx,
bool updated )

Definition at line 29 of file depsgraph_update.cc.

References deg_editor_update_scene_cb.

Referenced by DEG_editors_update().

◆ deg_eval_copy_is_expanded() [1/2]

◆ deg_eval_copy_is_expanded() [2/2]

bool blender::deg::deg_eval_copy_is_expanded ( const struct ID * id_cow)

Check whether ID data-block is expanded.

TODO(sergey): Make it an inline function or a macro.

◆ deg_eval_copy_is_needed() [1/2]

bool blender::deg::deg_eval_copy_is_needed ( const ID * id_orig)

◆ deg_eval_copy_is_needed() [2/2]

bool blender::deg::deg_eval_copy_is_needed ( const ID_Type id_type)

Definition at line 1066 of file deg_eval_copy_on_write.cc.

References ID_TYPE_USE_COPY_ON_EVAL.

◆ deg_eval_stats_aggregate()

◆ deg_evaluate_object_modifiers_mode_node_visibility()

◆ deg_evaluate_object_node_visibility()

void blender::deg::deg_evaluate_object_node_visibility ( ::Depsgraph * depsgraph,
IDNode * id_node )

◆ deg_evaluate_on_refresh()

void blender::deg::deg_evaluate_on_refresh ( Depsgraph * graph)

Evaluate all nodes tagged for updating,

Warning
This is usually done as part of main loop, but may also be called from frame-change update.
Note
Time sources should be all valid!

Definition at line 382 of file deg_eval.cc.

References BLI_task_pool_free(), BPy_BEGIN_ALLOW_THREADS, BPy_END_ALLOW_THREADS, blender::deg::Depsgraph::debug, deg_eval_stats_aggregate(), deg_graph_clear_tags(), deg_graph_flush_visibility_flags_if_needed(), blender::deg::DepsgraphDebug::do_time_debug(), graph, state, and task_pool.

Referenced by deg_flush_updates_and_refresh().

◆ deg_free_eval_copy_datablock()

void blender::deg::deg_free_eval_copy_datablock ( ID * id_cow)

Free content of the evaluated data-block. Notes:

  • Does not recurse into nested ID data-blocks.
  • Does not free data-block itself.

Helper function which frees memory used by copy-on-written data-block.

Definition at line 988 of file deg_eval_copy_on_write.cc.

References BKE_libblock_free_data(), BKE_libblock_free_data_py(), BKE_libblock_free_datablock(), Object::data, GS, ID_OB, ID::name, and Object::sculpt.

Referenced by deg_update_eval_copy_datablock(), blender::deg::IDNode::destroy(), and blender::deg::DepsgraphNodeBuilder::~DepsgraphNodeBuilder().

◆ deg_graph_build_finalize()

◆ deg_graph_clear_tags()

void blender::deg::deg_graph_clear_tags ( struct Depsgraph * graph)

Clear tags from all operation nodes.

Definition at line 368 of file deg_eval_flush.cc.

Referenced by deg_evaluate_on_refresh().

◆ deg_graph_detect_cycles()

void blender::deg::deg_graph_detect_cycles ( Depsgraph * graph)

Definition at line 205 of file deg_builder_cycle.cc.

References state.

Referenced by blender::deg::AbstractBuilderPipeline::build_step_finalize().

◆ deg_graph_flush_updates()

void blender::deg::deg_graph_flush_updates ( struct Depsgraph * graph)

◆ deg_graph_flush_visibility_flags()

◆ deg_graph_flush_visibility_flags_if_needed()

void blender::deg::deg_graph_flush_visibility_flags_if_needed ( Depsgraph * graph)

Definition at line 227 of file deg_eval_visibility.cc.

References deg_graph_flush_visibility_flags().

Referenced by deg_evaluate_on_refresh().

◆ deg_graph_remove_unused_noops()

◆ deg_graph_tag_paths_recursive()

static void blender::deg::deg_graph_tag_paths_recursive ( Node * node)
static

◆ deg_graph_transitive_reduction()

◆ deg_register_base_depsnodes()

void blender::deg::deg_register_base_depsnodes ( )

Definition at line 331 of file deg_node.cc.

References DNTI_ID_REF, DNTI_TIMESOURCE, and register_node_typeinfo().

Referenced by DEG_register_node_types().

◆ deg_register_component_depsnodes()

void blender::deg::deg_register_component_depsnodes ( )

Definition at line 352 of file deg_node_component.cc.

References register_node_typeinfo().

Referenced by DEG_register_node_types().

◆ deg_register_operation_depsnodes()

void blender::deg::deg_register_operation_depsnodes ( )

Definition at line 279 of file deg_node_operation.cc.

References DNTI_OPERATION, and register_node_typeinfo().

Referenced by DEG_register_node_types().

◆ deg_tag_eval_copy_id() [1/2]

void blender::deg::deg_tag_eval_copy_id ( deg::Depsgraph & depsgraph,
ID * id_cow,
const ID * id_orig )

◆ deg_tag_eval_copy_id() [2/2]

void blender::deg::deg_tag_eval_copy_id ( Depsgraph & depsgraph,
struct ID * id_cow,
const struct ID * id_orig )

Tag given ID block as being copy-on-eval.

◆ deg_update_eval_copy_datablock() [1/4]

◆ deg_update_eval_copy_datablock() [2/4]

ID * blender::deg::deg_update_eval_copy_datablock ( const Depsgraph * depsgraph,
ID * id_orig )

◆ deg_update_eval_copy_datablock() [3/4]

ID * blender::deg::deg_update_eval_copy_datablock ( const struct Depsgraph * depsgraph,
const IDNode * id_node )

Makes sure given evaluated data-block is brought back to state of the original data-block.

◆ deg_update_eval_copy_datablock() [4/4]

ID * blender::deg::deg_update_eval_copy_datablock ( const struct Depsgraph * depsgraph,
struct ID * id_orig )

◆ deg_validate_eval_copy_datablock()

bool blender::deg::deg_validate_eval_copy_datablock ( ID * id_cow)

Check that given ID is properly expanded and does not have any shallow copies inside.

Definition at line 1032 of file deg_eval_copy_on_write.cc.

References BKE_library_foreach_ID_link(), data, and IDWALK_NOP.

◆ foreach_id_cow_detect_need_for_update_callback()

◆ geometry_tag_to_component()

◆ get_all_registered_graphs()

◆ get_evaluated_id() [1/2]

static const ID * blender::deg::get_evaluated_id ( const Depsgraph * deg_graph,
const ID * id )
static

◆ get_evaluated_id() [2/2]

static ID * blender::deg::get_evaluated_id ( const Depsgraph * deg_graph,
ID * id )
static

Definition at line 73 of file depsgraph_query.cc.

References get_evaluated_id().

◆ get_graph_registry()

static GraphRegistry & blender::deg::get_graph_registry ( )
static

◆ get_latter_modifier()

static const ModifierData * blender::deg::get_latter_modifier ( const ModifierData * md1,
const ModifierData * md2 )
static

◆ get_original_id() [1/2]

static const ID * blender::deg::get_original_id ( const ID * id)
static

◆ get_original_id() [2/2]

static ID * blender::deg::get_original_id ( ID * id)
static

Definition at line 52 of file depsgraph_query.cc.

References get_original_id().

◆ graph_id_tag_update()

◆ graph_tag_ids_for_visible_update()

◆ id_tag_update()

void blender::deg::id_tag_update ( Main * bmain,
ID * id,
uint flags,
eUpdateSource update_source )

◆ is_reachable()

static bool blender::deg::is_reachable ( const Node *const from,
const Node *const to )
static

◆ is_removable_relation()

static bool blender::deg::is_removable_relation ( const Relation * relation)
inlinestatic

◆ is_unused_noop()

◆ linkedStateAsString()

const char * blender::deg::linkedStateAsString ( eDepsNode_LinkedState_Type linked_state)

◆ nodeClassAsString()

const char * blender::deg::nodeClassAsString ( NodeClass node_class)

Definition at line 26 of file deg_node.cc.

References BLI_assert_msg, COMPONENT, GENERIC, and OPERATION.

◆ nodeTypeAsString()

◆ nodeTypeFromObjectComponent()

◆ nodeTypeFromSceneComponent()

NodeType blender::deg::nodeTypeFromSceneComponent ( eDepsSceneComponentType component)

◆ nodeTypeToObjectComponent()

◆ nodeTypeToSceneComponent()

◆ operationCodeAsString()

const char * blender::deg::operationCodeAsString ( OperationCode opcode)

Definition at line 22 of file deg_node_operation.cc.

References ANIMATION_ENTRY, ANIMATION_EVAL, ANIMATION_EXIT, ARMATURE_EVAL, AUDIO_ENTRY, AUDIO_VOLUME, BLI_assert_msg, BONE_CONSTRAINTS, BONE_DONE, BONE_LOCAL, BONE_POSE_PARENT, BONE_READY, BONE_SEGMENTS, COPY_ON_EVAL, DIMENSIONS, DRIVER, FILE_CACHE_UPDATE, GENERIC_DATABLOCK_UPDATE, GEOMETRY_EVAL, GEOMETRY_EVAL_DONE, GEOMETRY_EVAL_INIT, GEOMETRY_SELECT_UPDATE, GEOMETRY_SHAPEKEY, HIERARCHY, ID_PROPERTY, IMAGE_ANIMATION, INSTANCE, INSTANCE_GEOMETRY, INSTANCER, LIGHT_LINKING_UPDATE, LIGHT_PROBE_EVAL, LIGHT_UPDATE, MASK_ANIMATION, MASK_EVAL, MATERIAL_UPDATE, MODIFIER, MOVIECLIP_EVAL, NTREE_GEOMETRY_PREPROCESS, NTREE_OUTPUT, OBJECT_BASE_FLAGS, OBJECT_FROM_LAYER_ENTRY, OBJECT_FROM_LAYER_EXIT, OPERATION, PARAMETERS_ENTRY, PARAMETERS_EVAL, PARAMETERS_EXIT, PARTICLE_SETTINGS_EVAL, PARTICLE_SETTINGS_INIT, PARTICLE_SETTINGS_RESET, PARTICLE_SYSTEM_DONE, PARTICLE_SYSTEM_EVAL, PARTICLE_SYSTEM_INIT, POINT_CACHE_RESET, POSE_CLEANUP, POSE_DONE, POSE_IK_SOLVER, POSE_INIT, POSE_INIT_IK, POSE_SPLINE_IK_SOLVER, RIGIDBODY_REBUILD, RIGIDBODY_SIM, RIGIDBODY_TRANSFORM_COPY, SCENE_EVAL, SEQUENCES_EVAL, SHADING, SHADING_DONE, SOUND_EVAL, SPEAKER_EVAL, SYNCHRONIZE_TO_ORIGINAL, TRANSFORM_CONSTRAINTS, TRANSFORM_EVAL, TRANSFORM_FINAL, TRANSFORM_INIT, TRANSFORM_LOCAL, TRANSFORM_PARENT, TRANSFORM_SIMULATION_INIT, VIEW_LAYER_EVAL, VISIBILITY, and WORLD_UPDATE.

Referenced by blender::deg::DepsgraphRelationBuilder::get_node(), blender::deg::OperationKey::identifier(), and blender::deg::OperationNode::identifier().

◆ operator==()

bool blender::deg::operator== ( const AnimatedPropertyID & a,
const AnimatedPropertyID & b )

Definition at line 54 of file deg_builder_cache.cc.

◆ register_graph()

◆ register_node_typeinfo()

◆ rigidbody_object_depends_on_evaluated_geometry()

static bool blender::deg::rigidbody_object_depends_on_evaluated_geometry ( const RigidBodyOb * rbo)
inlinestatic

◆ rna_prop_affects_parameters_node()

◆ seq_build_prop_cb()

◆ seq_init_cb()

◆ seq_node_build_cb()

◆ seq_restore_cb()

◆ terminal_do_color()

bool blender::deg::terminal_do_color ( )

Definition at line 58 of file deg_debug.cc.

References G, and G_DEBUG_DEPSGRAPH_PRETTY.

Referenced by color_end(), and color_for_pointer().

◆ type_get_factory()

◆ unregister_graph()

Variable Documentation

◆ deg_debug_colors_light

const char* blender::deg::deg_debug_colors_light[]
static
Initial value:
= {
"#8dd3c7",
"#ffffb3",
"#bebada",
"#fb8072",
"#80b1d3",
"#fdb462",
"#b3de69",
"#fccde5",
"#d9d9d9",
"#bc80bd",
"#ccebc5",
"#ffed6f",
"#ff00ff",
}

Definition at line 66 of file deg_debug_relations_graphviz.cc.

Referenced by deg_debug_graphviz_legend(), and deg_debug_graphviz_node_fillcolor().

◆ deg_debug_graphviz_fontname

const char* blender::deg::deg_debug_graphviz_fontname = "helvetica"
static

◆ deg_debug_graphviz_graph_label_size

float blender::deg::deg_debug_graphviz_graph_label_size = 20.0f
static

Definition at line 46 of file deg_debug_relations_graphviz.cc.

Referenced by DEG_debug_graph_to_dot().

◆ deg_debug_graphviz_node_label_size

float blender::deg::deg_debug_graphviz_node_label_size = 14.0f
static

◆ deg_debug_max_colors

const int blender::deg::deg_debug_max_colors = 12
static

◆ deg_editor_update_id_cb

DEG_EditorUpdateIDCb blender::deg::deg_editor_update_id_cb = nullptr
static

Definition at line 19 of file depsgraph_update.cc.

Referenced by deg_editors_id_update(), and DEG_editors_set_update_cb().

◆ deg_editor_update_scene_cb

DEG_EditorUpdateSceneCb blender::deg::deg_editor_update_scene_cb = nullptr
static

Definition at line 20 of file depsgraph_update.cc.

Referenced by deg_editors_scene_update(), and DEG_editors_set_update_cb().

◆ DNTI_ID_REF

DepsNodeFactoryImpl<IDNode> blender::deg::DNTI_ID_REF
static

Definition at line 329 of file deg_node.cc.

Referenced by deg_register_base_depsnodes().

◆ DNTI_OPERATION

DepsNodeFactoryImpl<OperationNode> blender::deg::DNTI_OPERATION
static

Definition at line 277 of file deg_node_operation.cc.

Referenced by deg_register_operation_depsnodes().

◆ DNTI_TIMESOURCE

DepsNodeFactoryImpl<TimeSourceNode> blender::deg::DNTI_TIMESOURCE
static

Definition at line 326 of file deg_node.cc.

Referenced by deg_register_base_depsnodes().

◆ kColumnSpacing

int blender::deg::kColumnSpacing = 4
constexpr

Definition at line 25 of file deg_builder_stack.cc.

◆ kPrintDepthWidth

int blender::deg::kPrintDepthWidth = 5 + kColumnSpacing
constexpr

Definition at line 29 of file deg_builder_stack.cc.

Referenced by blender::deg::BuilderStack::print_backtrace().

◆ kPrintTypeWidth

int blender::deg::kPrintTypeWidth = 21 + kColumnSpacing
constexpr

Definition at line 30 of file deg_builder_stack.cc.

Referenced by blender::deg::BuilderStack::print_backtrace().

◆ node_typeinfo_registry

DepsNodeFactory* blender::deg::node_typeinfo_registry[int(NodeType::NUM_TYPES)] = {nullptr}
static

Definition at line 14 of file deg_node_factory.cc.

Referenced by register_node_typeinfo(), and type_get_factory().