[Bf-blender-cvs] [5811076] master: Fix crash rendering linked scenes in compo

Sergey Sharybin noreply at git.blender.org
Fri May 23 17:42:22 CEST 2014


Commit: 5811076d0dd9df7f87837160c4eea168a0a1e256
Author: Sergey Sharybin
Date:   Fri May 23 17:40:45 2014 +0200
https://developer.blender.org/rB5811076d0dd9df7f87837160c4eea168a0a1e256

Fix crash rendering linked scenes in compo

Simply linking scene (lib.blend) without compo into another one (compo.blend),
using it in a compositor and rendering it would crash.

===================================================================

M	source/blender/render/intern/source/pipeline.c

===================================================================

diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index d6b5258..537714a 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -1806,7 +1806,8 @@ static void ntree_render_scenes(Render *re)
 {
 	bNode *node;
 	int cfra = re->scene->r.cfra;
-	int restore_scene = 0;
+	Scene *restore_scene = re->scene;
+	bool scene_changed = false;
 	
 	if (re->scene->nodetree == NULL) return;
 	
@@ -1820,18 +1821,18 @@ static void ntree_render_scenes(Render *re)
 				if (node->flag & NODE_TEST) {
 					Scene *scene = (Scene *)node->id;
 
+					scene_changed |= scene != restore_scene;
 					render_scene(re, scene, cfra);
-					restore_scene = (scene != re->scene);
 					node->flag &= ~NODE_TEST;
 					
-					nodeUpdate(re->scene->nodetree, node);
+					nodeUpdate(restore_scene->nodetree, node);
 				}
 			}
 		}
 	}
 
 	/* restore scene if we rendered another last */
-	if (restore_scene)
+	if (scene_changed)
 		BKE_scene_set_background(re->main, re->scene);
 }




More information about the Bf-blender-cvs mailing list