Merge branch 'master' into blender2.8
[blender.git] / source / blender / depsgraph / intern / nodes / deg_node.h
index b9aa36bbd4329993bfb8fd6f92a21d3bfc73d917..c699de67eda2224490f596e18bc917ee3f4fe2b7 100644 (file)
@@ -140,7 +140,9 @@ struct IDDepsNode : public DepsNode {
        };
 
        void init(const ID *id, const char *subdata);
+       void init_copy_on_write(ID *id_cow_hint = NULL);
        ~IDDepsNode();
+       void destroy();
 
        ComponentDepsNode *find_component(eDepsNode_Type type,
                                          const char *name = "") const;
@@ -149,23 +151,23 @@ struct IDDepsNode : public DepsNode {
 
        void tag_update(Depsgraph *graph);
 
-       void finalize_build();
+       void finalize_build(Depsgraph *graph);
 
        /* ID Block referenced. */
-       ID *id;
+       ID *id_orig;
+       ID *id_cow;
 
        /* Hash to make it faster to look up components. */
        GHash *components;
 
-       /* Layers of this node with accumulated layers of it's output relations. */
-       unsigned int layers;
-
        /* Additional flags needed for scene evaluation.
         * TODO(sergey): Only needed for until really granular updates
         * of all the entities.
         */
        int eval_flags;
 
+       eDepsNode_LinkedState_Type linked_state;
+
        DEG_DEPSNODE_DECLARE;
 };