[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34396] trunk/blender: new command line option '--factory-startup' to skip reading startup.blend.

Campbell Barton ideasman42 at gmail.com
Wed Jan 19 10:13:25 CET 2011


Revision: 34396
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34396
Author:   campbellbarton
Date:     2011-01-19 09:13:24 +0000 (Wed, 19 Jan 2011)
Log Message:
-----------
new command line option '--factory-startup' to skip reading startup.blend. useful for testing with a predictable environment.
also commented python benchmark prints on exit, can enable when profiling later.

Modified Paths:
--------------
    trunk/blender/doc/manpage/blender.1
    trunk/blender/source/blender/blenkernel/BKE_global.h
    trunk/blender/source/blender/editors/interface/resources.c
    trunk/blender/source/blender/python/intern/bpy_interface.c
    trunk/blender/source/blender/windowmanager/WM_api.h
    trunk/blender/source/blender/windowmanager/intern/wm_files.c
    trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c
    trunk/blender/source/creator/creator.c

Modified: trunk/blender/doc/manpage/blender.1
===================================================================
(Binary files differ)

Modified: trunk/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_global.h	2011-01-18 23:38:36 UTC (rev 34395)
+++ trunk/blender/source/blender/blenkernel/BKE_global.h	2011-01-19 09:13:24 UTC (rev 34396)
@@ -61,7 +61,8 @@
 	struct ListBase recent_files;
         
 	short afbreek, moving, file_loaded;
-	short background;
+	char background;
+	char factory_startup;
 	short winpos, displaymode;	/* used to be in Render */
 	short rendering;			/* to indicate render is busy, prevent renderwindow events etc */
 

Modified: trunk/blender/source/blender/editors/interface/resources.c
===================================================================
--- trunk/blender/source/blender/editors/interface/resources.c	2011-01-18 23:38:36 UTC (rev 34395)
+++ trunk/blender/source/blender/editors/interface/resources.c	2011-01-19 09:13:24 UTC (rev 34396)
@@ -1015,7 +1015,7 @@
 	}
 	if (U.savetime <= 0) {
 		U.savetime = 1;
-// XXX		error("startup.blend is buggy, please consider removing it.\n");
+// XXX		error(STRINGIFY(BLENDER_STARTUP_FILE)" is buggy, please consider removing it.\n");
 	}
 	/* transform widget settings */
 	if(U.tw_hotspot==0) {

Modified: trunk/blender/source/blender/python/intern/bpy_interface.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_interface.c	2011-01-18 23:38:36 UTC (rev 34395)
+++ trunk/blender/source/blender/python/intern/bpy_interface.c	2011-01-19 09:13:24 UTC (rev 34396)
@@ -62,8 +62,7 @@
 static int py_call_level= 0;
 BPy_StructRNA *bpy_context_module= NULL; /* for fast access */
 
-// only for tests
-#define TIME_PY_RUN
+// #define TIME_PY_RUN // simple python tests. prints on exit.
 
 #ifdef TIME_PY_RUN
 #include "PIL_time.h"

Modified: trunk/blender/source/blender/windowmanager/WM_api.h
===================================================================
--- trunk/blender/source/blender/windowmanager/WM_api.h	2011-01-18 23:38:36 UTC (rev 34395)
+++ trunk/blender/source/blender/windowmanager/WM_api.h	2011-01-19 09:13:24 UTC (rev 34396)
@@ -81,7 +81,8 @@
 
 
 			/* files */
-int			WM_read_homefile	(struct bContext *C, struct wmOperator *op);
+int			WM_read_homefile_exec(struct bContext *C, struct wmOperator *op);
+int			WM_read_homefile	(struct bContext *C, struct ReportList *reports, short from_memory);
 int			WM_write_homefile	(struct bContext *C, struct wmOperator *op);
 void		WM_read_file		(struct bContext *C, const char *name, struct ReportList *reports);
 int			WM_write_file		(struct bContext *C, const char *target, int fileflags, struct ReportList *reports, int copy);

Modified: trunk/blender/source/blender/windowmanager/intern/wm_files.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_files.c	2011-01-18 23:38:36 UTC (rev 34395)
+++ trunk/blender/source/blender/windowmanager/intern/wm_files.c	2011-01-19 09:13:24 UTC (rev 34396)
@@ -352,11 +352,10 @@
 /* called on startup,  (context entirely filled with NULLs) */
 /* or called for 'New File' */
 /* op can be NULL */
-int WM_read_homefile(bContext *C, wmOperator *op)
+int WM_read_homefile(bContext *C, ReportList *reports, short from_memory)
 {
 	ListBase wmbase;
 	char tstr[FILE_MAXDIR+FILE_MAXFILE];
-	int from_memory= op && strcmp(op->type->idname, "WM_OT_read_factory_settings")==0;
 	int success= 0;
 	
 	free_ttfont(); /* still weird... what does it here? */
@@ -369,9 +368,7 @@
 		} else {
 			tstr[0] = '\0';
 			from_memory = 1;
-			if (op) {
-				BKE_report(op->reports, RPT_INFO, "Config directory with startup.blend file not found."); 
-			}
+			BKE_report(reports, RPT_INFO, "Config directory with "STRINGIFY(BLENDER_STARTUP_FILE)" file not found.");
 		}
 	}
 	
@@ -385,7 +382,7 @@
 		success = (BKE_read_file(C, tstr, NULL) != BKE_READ_FILE_FAIL);
 		
 		if(U.themes.first==NULL) {
-			printf("\nError: No valid startup.blend, fall back to built-in default.\n\n");
+			printf("\nError: No valid "STRINGIFY(BLENDER_STARTUP_FILE)", fall back to built-in default.\n\n");
 			success = 0;
 		}
 	}
@@ -436,9 +433,14 @@
 	WM_event_add_notifier(C, NC_WM|ND_FILEREAD, NULL);
 	CTX_wm_window_set(C, NULL); /* exits queues */
 
-	return OPERATOR_FINISHED;
+	return TRUE;
 }
 
+int WM_read_homefile_exec(bContext *C, wmOperator *op)
+{
+	int from_memory= strcmp(op->type->idname, "WM_OT_read_factory_settings") == 0;
+	return WM_read_homefile(C, op->reports, from_memory) ? OPERATOR_FINISHED : OPERATOR_CANCELLED;
+}
 
 void read_history(void)
 {

Modified: trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c	2011-01-18 23:38:36 UTC (rev 34395)
+++ trunk/blender/source/blender/windowmanager/intern/wm_init_exit.c	2011-01-19 09:13:24 UTC (rev 34396)
@@ -136,7 +136,7 @@
 	BLF_lang_init();
 	
 	/* get the default database, plus a wm */
-	WM_read_homefile(C, NULL);
+	WM_read_homefile(C, NULL, G.factory_startup);
 
 	/* note: there is a bug where python needs initializing before loading the
 	 * startup.blend because it may contain PyDrivers. It also needs to be after

Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2011-01-18 23:38:36 UTC (rev 34395)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2011-01-19 09:13:24 UTC (rev 34396)
@@ -1353,7 +1353,7 @@
 	ot->description="Open the default file (doesn't save the current file)";
 	
 	ot->invoke= WM_operator_confirm;
-	ot->exec= WM_read_homefile;
+	ot->exec= WM_read_homefile_exec;
 	ot->poll= WM_operator_winactive;
 }
 
@@ -1364,7 +1364,7 @@
 	ot->description="Load default file and user preferences";
 	
 	ot->invoke= WM_operator_confirm;
-	ot->exec= WM_read_homefile;
+	ot->exec= WM_read_homefile_exec;
 	ot->poll= WM_operator_winactive;
 }
 

Modified: trunk/blender/source/creator/creator.c
===================================================================
--- trunk/blender/source/creator/creator.c	2011-01-18 23:38:36 UTC (rev 34395)
+++ trunk/blender/source/creator/creator.c	2011-01-19 09:13:24 UTC (rev 34396)
@@ -245,6 +245,7 @@
 	printf ("Misc Options:\n");
 	BLI_argsPrintArgDoc(ba, "--debug");
 	BLI_argsPrintArgDoc(ba, "--debug-fpe");
+	BLI_argsPrintArgDoc(ba, "--factory-startup");
 
 	printf("\n");
 
@@ -392,6 +393,12 @@
 	return 0;
 }
 
+static int set_factory_startup(int UNUSED(argc), char **UNUSED(argv), void *UNUSED(data))
+{
+	G.factory_startup= 1;
+	return 0;
+}
+
 static int playback_mode(int UNUSED(argc), char **UNUSED(argv), void *UNUSED(data))
 {
 	/* not if -b was given first */
@@ -1006,8 +1013,10 @@
 	BLI_argsAdd(ba, 1, "-a", NULL, playback_doc, playback_mode, NULL);
 
 	BLI_argsAdd(ba, 1, "-d", "--debug", debug_doc, debug_mode, ba);
-    BLI_argsAdd(ba, 1, NULL, "--debug-fpe", "\n\tEnable floating point exceptions", set_fpe, NULL);
+	BLI_argsAdd(ba, 1, NULL, "--debug-fpe", "\n\tEnable floating point exceptions", set_fpe, NULL);
 
+	BLI_argsAdd(ba, 1, NULL, "--factory-startup", "\n\tSkip reading the "STRINGIFY(BLENDER_STARTUP_FILE)" in the users home directory", set_factory_startup, NULL);
+
 	/* second pass: custom window stuff */
 	BLI_argsAdd(ba, 2, "-p", "--window-geometry", "<sx> <sy> <w> <h>\n\tOpen with lower left corner at <sx>, <sy> and width and height as <w>, <h>", prefsize, NULL);
 	BLI_argsAdd(ba, 2, "-w", "--window-border", "\n\tForce opening with borders (default)", with_borders, NULL);
@@ -1139,7 +1148,7 @@
 		BLI_argsParse(ba, 3, NULL, NULL);
 
 		WM_init(C, argc, argv);
-		
+
 		/* this is properly initialized with user defs, but this is default */
 		BLI_where_is_temp( btempdir, 1 ); /* call after loading the startup.blend so we can read U.tempdir */
 




More information about the Bf-blender-cvs mailing list