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 /source/blender
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.
Diffstat (limited to 'source/blender')
-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;