From d03e7687613ff288e027198ac58df59cd9f1677e Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 17 Jan 2014 18:51:31 +0600 Subject: Fix T38260: Missing object update with two visible scenes It was an issue with early object update check which was screwing up for second scene because of first one reset ID recalc flags. From the comment in the code about this: We need to check all visible scenes, otherwise resetting OB_ID changed flag will only work fine for first scene of multiple visible and all the rest will skip update. This could also lead to wrong behavior scene update handlers because of missing ID datablock changed flags. This is a bit of a bummer to allocate list here, but likely it wouldn't become too much bad because it only happens when objects were actually changed. --- source/blender/blenkernel/intern/scene.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'source/blender/blenkernel/intern/scene.c') diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index da8700d316a..65d1863873c 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -1563,7 +1563,7 @@ void BKE_scene_update_tagged(EvaluationContext *eval_ctx, Main *bmain, Scene *sc DAG_ids_check_recalc(bmain, scene, FALSE); /* clear recalc flags */ - DAG_ids_clear_recalc(bmain, scene); + DAG_ids_clear_recalc(bmain); } /* applies changes right away, does all sets too */ @@ -1639,7 +1639,7 @@ void BKE_scene_update_for_newframe(EvaluationContext *eval_ctx, Main *bmain, Sce DAG_ids_check_recalc(bmain, sce, TRUE); /* clear recalc flags */ - DAG_ids_clear_recalc(bmain, sce); + DAG_ids_clear_recalc(bmain); #ifdef DETAILED_ANALYSIS_OUTPUT fprintf(stderr, "frame update start_time %f duration %f\n", start_time, PIL_check_seconds_timer() - start_time); -- cgit v1.2.3