32 switch (linked_state) {
55 const int type_as_int =
static_cast<int>(
type);
88 if (id_cow_hint !=
nullptr) {
138 char orig_ptr[24], cow_ptr[24];
142 ", eval: " + cow_ptr +
", is_visible_on_build " +
149 return components.lookup_default(key,
nullptr);
162 comp_node->
owner =
this;
175 comp_node->tag_update(
graph, source);
183 comp_node->finalize_build(
graph);
192 if (comp_node->possibly_affects_visible_id) {
193 const int component_type_as_int =
static_cast<int>(comp_node->type);
195 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)
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
ID and Library types, which are fundamental for sdna.
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
#define DEG_COW_PRINT(format,...)
void(* MEM_freeN)(void *vmemh)
bool deg_copy_on_write_is_needed(const ID *id_orig)
const char * linkedStateAsString(eDepsNode_LinkedState_Type linked_state)
DepsNodeFactory * type_get_factory(const NodeType type)
void deg_tag_copy_on_write_id(ID *id_cow, const ID *id_orig)
uint64_t IDComponentsMask
eDepsNode_LinkedState_Type
@ DEG_ID_LINKED_INDIRECTLY
void deg_free_copy_on_write_datablock(ID *id_cow)
@ DEG_UPDATE_SOURCE_RELATIONS
const char * nodeTypeAsString(NodeType type)
unsigned __int64 uint64_t
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
void init_copy_on_write(ID *id_cow_hint=nullptr)
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
virtual void init(const ID *id, const char *subdata) override
Map< ComponentIDKey, ComponentNode * > components
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
uint id_orig_session_uuid
virtual void tag_update(Depsgraph *graph, eUpdateSource source) override
uint32_t previous_eval_flags