33 switch (linked_state) {
49 return type == other.type &&
STREQ(name, other.name);
54 const int type_as_int =
int(type);
87 if (id_cow_hint !=
nullptr) {
138 char orig_ptr[24], cow_ptr[24];
141 return string(
nodeTypeAsString(type)) +
" : " + name +
" (orig: " + orig_ptr +
142 ", eval: " + cow_ptr +
", is_visible_on_build " +
149 return components.lookup_default(key,
nullptr);
162 components.add_new(key, comp_node);
163 comp_node->
owner =
this;
184 comp_node->finalize_build(graph);
193 if (comp_node->possibly_affects_visible_id) {
194 const int component_type_as_int =
int(comp_node->type);
196 result |= (1ULL << component_type_as_int);
void * BKE_libblock_alloc_notest(short type) ATTR_WARN_UNUSED_RESULT
#define BLI_assert_msg(a, msg)
size_t BLI_ghashutil_combine_hash(size_t hash_a, size_t hash_b)
unsigned int BLI_ghashutil_uinthash(unsigned int key)
unsigned int BLI_ghashutil_strhash_p(const void *ptr)
#define SNPRINTF(dst, format,...)
ID and Library types, which are fundamental for SDNA.
const Depsgraph * depsgraph
#define DEG_COW_PRINT(format,...)
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
void MEM_freeN(void *vmemh)
uint64_t IDComponentsMask
void deg_tag_eval_copy_id(deg::Depsgraph &depsgraph, ID *id_cow, const ID *id_orig)
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)
unsigned __int64 uint64_t
virtual void tag_update(Depsgraph *graph, eUpdateSource source) override
virtual Node * create_node(const ID *id, const char *subdata, const char *name) const =0
bool operator==(const ComponentIDKey &other) const
ComponentIDKey(NodeType type, const char *name="")
IDComponentsMask previously_visible_components_mask
DEGCustomDataMeshMasks customdata_masks
DEGCustomDataMeshMasks previous_customdata_masks
ComponentNode * add_component(NodeType type, const char *name="")
virtual string identifier() const override
IDComponentsMask visible_components_mask
bool is_collection_fully_expanded
void init_copy_on_write(Depsgraph &depsgraph, ID *id_cow_hint=nullptr)
virtual void init(const ID *id, const char *subdata) override
IDComponentsMask get_visible_components_mask() const
void finalize_build(Depsgraph *graph)
ComponentNode * find_component(NodeType type, const char *name="") const
eDepsNode_LinkedState_Type linked_state
virtual void tag_update(Depsgraph *graph, eUpdateSource source) override
uint32_t previous_eval_flags