26 switch (linked_state) {
66 if (id_cow_hint !=
nullptr) {
125 char orig_ptr[24], cow_ptr[24];
129 ", eval: " + cow_ptr +
", is_visible_on_build " +
136 return components.lookup_default(key,
nullptr);
150 comp_node->
owner =
this;
163 comp_node->tag_update(graph, source);
171 comp_node->finalize_build(graph);
180 if (comp_node->possibly_affects_visible_id) {
181 const int component_type_as_int = int(comp_node->type);
183 result |= (1ULL << component_type_as_int);
ID * BKE_libblock_alloc_notest(short type) ATTR_WARN_UNUSED_RESULT
#define BLI_assert_msg(a, msg)
#define SNPRINTF(dst, format,...)
ID and Library types, which are fundamental for SDNA.
#define DEG_COW_PRINT(format,...)
void MEM_freeN(void *vmemh)
uint64_t IDComponentsMask
void deg_free_eval_copy_datablock(ID *id_cow)
const char * linkedStateAsString(eDepsNode_LinkedState_Type linked_state)
bool deg_eval_copy_is_needed(const ID *id_orig)
DepsNodeFactory * type_get_factory(const NodeType type)
eDepsNode_LinkedState_Type
@ DEG_ID_LINKED_INDIRECTLY
@ DEG_UPDATE_SOURCE_RELATIONS
const char * nodeTypeAsString(NodeType type)
virtual Node * create_node(const ID *id, const char *subdata, StringRef name) const =0
IDComponentsMask previously_visible_components_mask
void init_copy_on_write(ID *id_cow_hint=nullptr)
DEGCustomDataMeshMasks customdata_masks
DEGCustomDataMeshMasks previous_customdata_masks
ComponentNode * add_component(NodeType type, StringRef name="")
IDComponentsMask visible_components_mask
bool is_collection_fully_expanded
void init(const ID *id, const char *subdata) override
Map< ComponentIDKey, ComponentNode * > components
IDComponentsMask get_visible_components_mask() const
void finalize_build(Depsgraph *graph)
std::string identifier() const override
eDepsNode_LinkedState_Type linked_state
ComponentNode * find_component(NodeType type, StringRef name="") const
void tag_update(Depsgraph *graph, eUpdateSource source) override
uint32_t previous_eval_flags