[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32742] trunk/blender/source/blender: bugfix [#24341] Problems running blender headless

Campbell Barton ideasman42 at gmail.com
Wed Oct 27 18:05:31 CEST 2010


Revision: 32742
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32742
Author:   campbellbarton
Date:     2010-10-27 18:05:31 +0200 (Wed, 27 Oct 2010)

Log Message:
-----------
bugfix [#24341] Problems running blender headless
bg mode didnt have the screen context callback set. Though this sounds logical, bg mode defines a screen it should be set.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/screen/screen_edit.c
    trunk/blender/source/blender/windowmanager/intern/wm.c

Modified: trunk/blender/source/blender/editors/screen/screen_edit.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_edit.c	2010-10-27 14:56:53 UTC (rev 32741)
+++ trunk/blender/source/blender/editors/screen/screen_edit.c	2010-10-27 16:05:31 UTC (rev 32742)
@@ -1029,23 +1029,26 @@
 	ScrArea *sa;
 	rcti winrct= {0, win->sizex-1, 0, win->sizey-1};
 	
-	screen_test_scale(win->screen, win->sizex, win->sizey);
+	/* exception for bg mode, we only need the screen context */
+	if (!G.background) {
+		screen_test_scale(win->screen, win->sizex, win->sizey);
+		
+		if(win->screen->mainwin==0)
+			win->screen->mainwin= wm_subwindow_open(win, &winrct);
+		else
+			wm_subwindow_position(win, win->screen->mainwin, &winrct);
+		
+		for(sa= win->screen->areabase.first; sa; sa= sa->next) {
+			/* set spacetype and region callbacks, calls init() */
+			/* sets subwindows for regions, adds handlers */
+			ED_area_initialize(wm, win, sa);
+		}
 	
-	if(win->screen->mainwin==0)
-		win->screen->mainwin= wm_subwindow_open(win, &winrct);
-	else
-		wm_subwindow_position(win, win->screen->mainwin, &winrct);
-	
-	for(sa= win->screen->areabase.first; sa; sa= sa->next) {
-		/* set spacetype and region callbacks, calls init() */
-		/* sets subwindows for regions, adds handlers */
-		ED_area_initialize(wm, win, sa);
+		/* wake up animtimer */
+		if(win->screen->animtimer)
+			WM_event_timer_sleep(wm, win, win->screen->animtimer, 0);
 	}
 
-	/* wake up animtimer */
-	if(win->screen->animtimer)
-		WM_event_timer_sleep(wm, win, win->screen->animtimer, 0);
-	
 	if(G.f & G_DEBUG) printf("set screen\n");
 	win->screen->do_refresh= 0;
 

Modified: trunk/blender/source/blender/windowmanager/intern/wm.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm.c	2010-10-27 14:56:53 UTC (rev 32741)
+++ trunk/blender/source/blender/windowmanager/intern/wm.c	2010-10-27 16:05:31 UTC (rev 32742)
@@ -232,12 +232,13 @@
 
 		/* case: no open windows at all, for old file reads */
 		wm_window_add_ghostwindows(C, wm);
+	}
 
-		/* case: fileread */
-		if((wm->initialized & WM_INIT_WINDOW) == 0) {
-			ED_screens_initialize(wm);
-			wm->initialized |= WM_INIT_WINDOW;
-		}
+	/* case: fileread */
+	/* note: this runs in bg mode to set the screen context cb */
+	if((wm->initialized & WM_INIT_WINDOW) == 0) {
+		ED_screens_initialize(wm);
+		wm->initialized |= WM_INIT_WINDOW;
 	}
 }
 





More information about the Bf-blender-cvs mailing list