diff options
author | Jacques Lucke <jacques@blender.org> | 2021-01-12 23:22:32 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-01-12 23:22:32 +0300 |
commit | 1339e7c44f1f9a1c9bc5d6cb0a5702a6fe73515e (patch) | |
tree | 219481d8935a75ad6e2b97fe16193af3f763bb32 /source/blender/depsgraph/intern/node/deg_node_id.h | |
parent | b66fcd83f6cef55a87dc9835129f8956fd6c6742 (diff) | |
parent | 719bea0d6d06be579edee2fc3d12a7828bb8e101 (diff) |
Merge branch 'master' into experiment-point-distributiontemp-point-distribution-refactor-experiment
Diffstat (limited to 'source/blender/depsgraph/intern/node/deg_node_id.h')
-rw-r--r-- | source/blender/depsgraph/intern/node/deg_node_id.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/node/deg_node_id.h b/source/blender/depsgraph/intern/node/deg_node_id.h index 04a9006ac10..c4d36685bb8 100644 --- a/source/blender/depsgraph/intern/node/deg_node_id.h +++ b/source/blender/depsgraph/intern/node/deg_node_id.h @@ -74,12 +74,22 @@ struct IDNode : public Node { IDComponentsMask get_visible_components_mask() const; - /* ID Block referenced. */ /* Type of the ID stored separately, so it's possible to perform check whether CoW is needed * without de-referencing the id_cow (which is not safe when ID is NOT covered by CoW and has * been deleted from the main database.) */ ID_Type id_type; + + /* ID Block referenced. */ ID *id_orig; + + /* Session-wide UUID of the id_orig. + * Is used on relations update to map evaluated state from old nodes to the new ones, without + * relying on pointers (which are not guaranteed to be unique) and without dereferencing id_orig + * which could be "stale" pointer. */ + uint id_orig_session_uuid; + + /* Evaluated datablock. + * Will be covered by the copy-on-write system if the ID Type needs it. */ ID *id_cow; /* Hash to make it faster to look up components. */ |