diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-11-28 18:55:35 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-11-28 18:55:35 +0400 |
commit | 7baaa08211d91a721c7909c5f87f72bd22f12ad6 (patch) | |
tree | 861499e6f010813b1379ee64b8f02053f16b79ee /source/blender/blenkernel/intern/scene.c | |
parent | 9f3c921957124d65aa0d2cbc4ad2aacb56411670 (diff) |
Fix #29389: cycles viewport render not updating on frame changes. This sort of
worked by accident before, because of flags that weren't cleared properly. Now
moved the call to update render engines into scene_update_* itself.
Diffstat (limited to 'source/blender/blenkernel/intern/scene.c')
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index b7aa02b2f7b..c284ed02868 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -1028,15 +1028,11 @@ void scene_update_tagged(Main *bmain, Scene *scene) if (scene->physics_settings.quick_cache_step) BKE_ptcache_quick_cache_all(bmain, scene); - /* notify editors about recalc */ - DAG_ids_check_recalc(bmain); - - /* keep this last */ + /* notify editors and python about recalc */ BLI_exec_cb(bmain, &scene->id, BLI_CB_EVT_SCENE_UPDATE_POST); -} + DAG_ids_check_recalc(bmain, scene, FALSE); -void scene_clear_tagged(Main *bmain, Scene *UNUSED(scene)) -{ + /* clear recalc flags */ DAG_ids_clear_recalc(bmain); } @@ -1081,10 +1077,13 @@ void scene_update_for_newframe(Main *bmain, Scene *sce, unsigned int lay) /* object_handle_update() on all objects, groups and sets */ scene_update_tagged_recursive(bmain, sce, sce); - /* keep this last */ + /* notify editors and python about recalc */ BLI_exec_cb(bmain, &sce->id, BLI_CB_EVT_SCENE_UPDATE_POST); BLI_exec_cb(bmain, &sce->id, BLI_CB_EVT_FRAME_CHANGE_POST); + DAG_ids_check_recalc(bmain, sce, TRUE); + + /* clear recalc flags */ DAG_ids_clear_recalc(bmain); } |