diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-05-03 15:15:09 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-05-03 15:16:12 +0300 |
commit | 95b388c3df5d861baabbe5c02e619424d13f2253 (patch) | |
tree | 12be06529b5c65e9a51fdcb29dfa3246bcdc6434 /source/blender/depsgraph/intern | |
parent | e013d2eb4be9decd6d888f6d7fa9b329a4574287 (diff) |
Depsgraph: Fix missing action re-map with node tree update
After copying animation data we need to re-map action, otherwise
our original DNA values will go out of symc, causing flickering
when tweaking values on animated node tree.
Diffstat (limited to 'source/blender/depsgraph/intern')
-rw-r--r-- | source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc index 2c6186a4fe5..99c24506a7b 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc @@ -547,7 +547,7 @@ ID *deg_expand_copy_on_write_datablock(const Depsgraph *depsgraph, */ deg_tag_copy_on_write_id(id_cow, id_orig); /* Perform remapping of the nodes. */ - RemapCallbackUserData user_data; + RemapCallbackUserData user_data = {NULL}; user_data.depsgraph = depsgraph; user_data.node_builder = node_builder; user_data.create_placeholders = create_placeholders; @@ -586,6 +586,13 @@ static void deg_update_copy_on_write_animation(const Depsgraph *depsgraph, id_node->id_orig->name, id_node->id_cow); BKE_animdata_copy_id(NULL, id_node->id_cow, id_node->id_orig, false, false); + RemapCallbackUserData user_data = {NULL}; + user_data.depsgraph = depsgraph; + BKE_library_foreach_ID_link(NULL, + id_node->id_cow, + foreach_libblock_remap_callback, + (void *)&user_data, + IDWALK_NOP); } ID *deg_update_copy_on_write_datablock(const Depsgraph *depsgraph, |