diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-05-13 17:19:49 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-05-13 18:15:19 +0400 |
commit | 9ae9c268cac7aeadb53052bd493b4b4782ea1c64 (patch) | |
tree | 31043eba9ce856278702a9ac013a8e1bb569729a /source/blender/blenkernel/intern/scene.c | |
parent | eed0c4d062aa0f439f999d2fd86884ae3b638276 (diff) |
Folowup for old fix for material animation
Need to update node trees, so cycles materials are also updating
when tweaking settings from dopesheet/graph editor.
Diffstat (limited to 'source/blender/blenkernel/intern/scene.c')
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 0e95cf1d418..c94d0dfa548 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -1599,7 +1599,20 @@ void BKE_scene_update_tagged(EvaluationContext *eval_ctx, Main *bmain, Scene *sc BKE_animsys_evaluate_animdata(scene, &material->id, adt, ctime, 0); } } - + + /* Also do the same for node trees. */ + if (DAG_id_type_tagged(bmain, ID_NT)) { + float ctime = BKE_scene_frame_get(scene); + + FOREACH_NODETREE(bmain, ntree, id) + { + AnimData *adt = BKE_animdata_from_id(&ntree->id); + if (adt && (adt->recalc & ADT_RECALC_ANIM)) + BKE_animsys_evaluate_animdata(scene, &ntree->id, adt, ctime, 0); + } + FOREACH_NODETREE_END + } + /* notify editors and python about recalc */ BLI_callback_exec(bmain, &scene->id, BLI_CB_EVT_SCENE_UPDATE_POST); DAG_ids_check_recalc(bmain, scene, false); |