[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33481] trunk/blender/source/blender/ render/intern/source/pipeline.c: Fix part of #25040: rendering multiple scenes from compositing nodes didn't

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Dec 5 11:14:34 CET 2010


Revision: 33481
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33481
Author:   blendix
Date:     2010-12-05 11:14:34 +0100 (Sun, 05 Dec 2010)

Log Message:
-----------
Fix part of #25040: rendering multiple scenes from compositing nodes didn't
restore current scene properly afterwards.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/pipeline.c

Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c	2010-12-05 09:20:18 UTC (rev 33480)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2010-12-05 10:14:34 UTC (rev 33481)
@@ -2205,6 +2205,7 @@
 {
 	bNode *node;
 	int cfra= re->scene->r.cfra;
+	int restore_scene= 0;
 	
 	if(re->scene->nodetree==NULL) return;
 	
@@ -2216,12 +2217,19 @@
 		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 */





More information about the Bf-blender-cvs mailing list