diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-03-13 17:38:45 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-03-13 17:51:44 +0300 |
commit | 0e9ea707b5e5be2a38dd29dded3dd6c25a5e1992 (patch) | |
tree | 6b68505ac06a9fbf5d6a5c6a1cea794d0326adcc /source/blender/depsgraph/intern | |
parent | bc5b0f7a091c3955263701be8c858fd56f8ba59f (diff) |
Fix T58721: Keyframing one transform option reset other transforms
Use dedicated flag to tag animation just for copy-on-write synchronization,
which makes it so copies of the original data blocks gets in sync with the
original ID. This will not flush the animation update to all objects which
depend on that animation.
If such flush is required, use ID_RECALC_ANIMATION.
Reviewers: brecht
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D4508
Diffstat (limited to 'source/blender/depsgraph/intern')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index fe1ef81262d..2e78df7584a 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -2635,30 +2635,12 @@ void DepsgraphRelationBuilder::build_copy_on_write_relations(IDNode *id_node) * copied by copy-on-write, and not preserved. PROBABLY it is better * to preserve that cache in copy-on-write, but for the time being * we allow flush to layer collections component which will ensure - * that cached array fo bases exists and is up-to-date. - * - * - Action is allowed to flush as well, this way it's possible to - * keep current tagging in animation editors (which tags action for - * CoW update when it's changed) but yet guarantee evaluation order - * with objects which are using that action. */ + * that cached array fo bases exists and is up-to-date. */ if (comp_node->type == NodeType::PARAMETERS || comp_node->type == NodeType::LAYER_COLLECTIONS) { rel_flag &= ~RELATION_FLAG_NO_FLUSH; } - if (comp_node->type == NodeType::ANIMATION && id_type == ID_AC) { - rel_flag &= ~RELATION_FLAG_NO_FLUSH; - /* NOTE: We only allow flush on user edits. If the action block is - * just brought into the dependency graph it is either due to - * initial graph construction or due to some property got animated. - * In first case all the related datablocks will be tagged for an - * update as well. In the second case it is up to the editing - * function to tag changed datablock. - * - * This logic allows to preserve unkeyed changes on file load and on - * undo. */ - rel_flag |= RELATION_FLAG_FLUSH_USER_EDIT_ONLY; - } /* All entry operations of each component should wait for a proper * copy of ID. */ OperationNode *op_entry = comp_node->get_entry_operation(); |