From 0400745c0a9893e9e30bd7b29ee442657b522709 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 5 Dec 2010 10:14:34 +0000 Subject: [PATCH] Fix part of #25040: rendering multiple scenes from compositing nodes didn't restore current scene properly afterwards. --- source/blender/render/intern/source/pipeline.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 9c333b2d8c2..15fa70ef823 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2205,6 +2205,7 @@ static void ntree_render_scenes(Render *re) { bNode *node; int cfra= re->scene->r.cfra; + int restore_scene= 0; if(re->scene->nodetree==NULL) return; @@ -2216,12 +2217,19 @@ static void ntree_render_scenes(Render *re) if(node->type==CMP_NODE_R_LAYERS) { if(node->id && node->id != (ID *)re->scene) { if(node->id->flag & LIB_DOIT) { - render_scene(re, (Scene *)node->id, cfra); + Scene *scene = (Scene*)node->id; + + render_scene(re, scene, cfra); + restore_scene= (scene != re->scene); node->id->flag &= ~LIB_DOIT; } } } } + + /* restore scene if we rendered another last */ + if(restore_scene) + set_scene_bg(re->main, re->scene); } /* helper call to detect if theres a composite with render-result node */