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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-07-10 20:46:13 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-07-10 20:46:13 +0400
commit990cad983b8ad313e7ad346fa075dcf9f43b3d1e (patch)
treed6e19d60cbd720c940b730855b1ba284385fe0b0
parent930dde34a38cb140fa55332bbc4d8c352a4d067c (diff)
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.
-rw-r--r--source/blender/blenkernel/intern/scene.c7
-rw-r--r--source/blender/render/intern/source/convertblender.c10
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;