[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56994] trunk/blender/source/blender/ render/intern/source/pipeline.c: Fix #35493: Blender crash when rendering in terminal mode

Sergey Sharybin sergey.vfx at gmail.com
Fri May 24 09:56:32 CEST 2013


Revision: 56994
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56994
Author:   nazgul
Date:     2013-05-24 07:56:32 +0000 (Fri, 24 May 2013)
Log Message:
-----------
Fix #35493: Blender crash when rendering in terminal mode

Use the same window manager for freestyle bmain as
real bmain uses. This is needed because freestyle's
bmain could be used to tag scenes for update, which
implies call of ED_render_scene_update in some cases
and that function requires proper windoew manager
to present.

Alternative would be to make render scene update does
nothing if there's no window manager, but we wanted
freestyle to be applied in rendered viewport once and
think current change is what we'll need to support
freestyle in viewport.

But a bit further, perhaps that'd make sense to not
register ED_render_scene_update as a scene update
callback when in background mode?

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	2013-05-24 06:50:15 UTC (rev 56993)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2013-05-24 07:56:32 UTC (rev 56994)
@@ -1640,6 +1640,15 @@
 
 	actsrl = BLI_findlink(&re->r.layers, re->r.actlay);
 
+	/* We use the same window manager for freestyle bmain as
+	 * real bmain uses. This is needed because freestyle's
+	 * bmain could be used to tag scenes for update, which
+	 * implies call of ED_render_scene_update in some cases
+	 * and that function requires proper windoew manager
+	 * to present (sergey)
+	 */
+	re->freestyle_bmain.wm = re->main->wm;
+
 	FRS_init_stroke_rendering(re);
 
 	for (srl= (SceneRenderLayer *)re->r.layers.first; srl; srl= srl->next) {




More information about the Bf-blender-cvs mailing list