Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-05-03 15:15:09 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-05-03 15:16:12 +0300
commit95b388c3df5d861baabbe5c02e619424d13f2253 (patch)
tree12be06529b5c65e9a51fdcb29dfa3246bcdc6434 /source/blender/depsgraph/intern
parente013d2eb4be9decd6d888f6d7fa9b329a4574287 (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.cc9
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,