diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-06-04 17:51:02 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-06-05 15:23:53 +0300 |
commit | 863b7b3668fe67a082439181eaf49c3e94a87536 (patch) | |
tree | a38d719a870fbe7f4b1b0e83d587f9dc2e1f826f /source/blender/depsgraph/intern/depsgraph_tag.cc | |
parent | 4674e23220e7f2623d57bb1f25e7028274b0f69e (diff) |
Depsgraph: Store recalc tag in ID->recalc
Allows to have more granularity in checks compared to a node-factory
based tagging in a generic tag/flush code.
Diffstat (limited to 'source/blender/depsgraph/intern/depsgraph_tag.cc')
-rw-r--r-- | source/blender/depsgraph/intern/depsgraph_tag.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/depsgraph_tag.cc b/source/blender/depsgraph/intern/depsgraph_tag.cc index 2d4963e8fef..c2cc15460d1 100644 --- a/source/blender/depsgraph/intern/depsgraph_tag.cc +++ b/source/blender/depsgraph/intern/depsgraph_tag.cc @@ -578,6 +578,11 @@ void graph_id_tag_update( if (flag == 0) { deg_graph_node_tag_zero(bmain, graph, id_node, update_source); } + /* Store original flag in the ID. + * Allows to have more granularity than a node-factory based flags. */ + if (id_node != NULL) { + id_node->id_cow->recalc |= flag; + } int current_flag = flag; while (current_flag != 0) { IDRecalcFlag tag = (IDRecalcFlag)(1 << bitscan_forward_clear_i(¤t_flag)); |