From 990cad983b8ad313e7ad346fa075dcf9f43b3d1e Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 10 Jul 2013 16:46:13 +0000 Subject: [PATCH] Fix #36082: animation playback not working after rendering of background scenes and multiple render layer nodes. Also fixes issue with database free with vector blur after recent thread safety changes. --- source/blender/blenkernel/intern/scene.c | 7 ++----- source/blender/render/intern/source/convertblender.c | 10 +++++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 744a8247233..aa68d2ac67b 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -684,12 +684,9 @@ void BKE_scene_set_background(Main *bmain, Scene *scene) } } - /* sort baselist */ - DAG_scene_relations_rebuild(bmain, scene); - - /* ensure dags are built for sets */ + /* sort baselist for scene and sets */ for (sce = scene; sce; sce = sce->set) - DAG_scene_relations_update(bmain, sce); + DAG_scene_relations_rebuild(bmain, sce); /* copy layers and flags from bases to objects */ for (base = scene->base.first; base; base = base->next) { diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index ce71ab188a9..5efd8fd3b3a 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -5403,12 +5403,10 @@ void RE_Database_Preprocess(Render *re) volume_precache(re); } - if (re->test_break(re->tbh)) { - re->i.convertdone = TRUE; + re->i.convertdone = TRUE; + + if (re->test_break(re->tbh)) RE_Database_Free(re); - } - else - re->i.convertdone = TRUE; re->i.infostr = NULL; re->stats_draw(re->sdh, &re->i); @@ -5858,6 +5856,7 @@ void RE_Database_FromScene_Vectors(Render *re, Main *bmain, Scene *sce, unsigned /* free dbase and make the future one */ strandsurface= re->strandsurface; memset(&re->strandsurface, 0, sizeof(ListBase)); + re->i.convertdone = TRUE; RE_Database_Free(re); re->strandsurface= strandsurface; @@ -5873,6 +5872,7 @@ void RE_Database_FromScene_Vectors(Render *re, Main *bmain, Scene *sce, unsigned /* free dbase and make the real one */ strandsurface= re->strandsurface; memset(&re->strandsurface, 0, sizeof(ListBase)); + re->i.convertdone = TRUE; RE_Database_Free(re); re->strandsurface= strandsurface;