53 void init(
const ID *
id,
const char *subdata)
override;
62 const char *
name =
"",
63 int name_tag = -1)
const;
69 const char *
name =
"",
70 int name_tag = -1)
const;
94 const char *
name =
"",
154 #define DEG_COMPONENT_NODE_DEFINE_TYPEINFO(NodeType, type_, type_name_, id_recalc_tag) \
155 const Node::TypeInfo NodeType::typeinfo = Node::TypeInfo(type_, type_name_, id_recalc_tag)
157 #define DEG_COMPONENT_NODE_DECLARE DEG_DEPSNODE_DECLARE
159 #define DEG_COMPONENT_NODE_DEFINE(name, NAME, id_recalc_tag) \
160 DEG_COMPONENT_NODE_DEFINE_TYPEINFO( \
161 name##ComponentNode, NodeType::NAME, #name " Component", id_recalc_tag); \
162 static DepsNodeFactoryImpl<name##ComponentNode> DNTI_##NAME
164 #define DEG_COMPONENT_NODE_DECLARE_GENERIC(name) \
165 struct name##ComponentNode : public ComponentNode { \
166 DEG_COMPONENT_NODE_DECLARE; \
169 #define DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE(name) \
170 struct name##ComponentNode : public ComponentNode { \
171 DEG_COMPONENT_NODE_DECLARE; \
172 virtual bool need_tag_cow_before_update() \
178 #define DEG_COMPONENT_NODE_DECLARE_NO_COW(name) \
179 struct name##ComponentNode : public ComponentNode { \
180 DEG_COMPONENT_NODE_DECLARE; \
181 virtual bool depends_on_cow() \
215 void init(
const ID *
id,
const char *subdata);
General operations, lookup, etc. for blender objects.
struct Depsgraph Depsgraph
#define ID_TYPE_SUPPORTS_PARAMS_WITHOUT_COW(id_type)
Object is a sort of wrapper for general info.
DEG_COMPONENT_NODE_DECLARE_GENERIC(Animation)
void deg_register_component_depsnodes()
DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE(BatchCache)
function< void(struct ::Depsgraph *)> DepsEvalOperationCb
unsigned __int64 uint64_t
DEG_COMPONENT_NODE_DECLARE
struct bPoseChannel * pchan
void init(const ID *id, const char *subdata)
bool operator==(const OperationIDKey &other) const
string identifier() const
virtual bool need_tag_cow_before_update()
virtual OperationNode * get_entry_operation() override
bool possibly_affects_visible_id
OperationNode * get_operation(OperationIDKey key) const
void init(const ID *id, const char *subdata) override
virtual void tag_update(Depsgraph *graph, eUpdateSource source) override
OperationNode * exit_operation
Vector< OperationNode * > operations
OperationNode * find_operation(OperationIDKey key) const
virtual OperationNode * get_exit_operation() override
OperationNode * add_operation(const DepsEvalOperationCb &op, OperationCode opcode, const char *name="", int name_tag=-1)
bool has_operation(OperationIDKey key) const
void set_exit_operation(OperationNode *op_node)
void finalize_build(Depsgraph *graph)
OperationNode * entry_operation
virtual string identifier() const override
Map< ComponentNode::OperationIDKey, OperationNode * > * operations_map
void set_entry_operation(OperationNode *op_node)
virtual bool depends_on_cow()
DEG_COMPONENT_NODE_DECLARE
virtual bool need_tag_cow_before_update() override