[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32551] trunk/blender/source: remove G.sce , use G.main->name instead.

Campbell Barton ideasman42 at gmail.com
Mon Oct 18 08:41:18 CEST 2010


Revision: 32551
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32551
Author:   campbellbarton
Date:     2010-10-18 08:41:16 +0200 (Mon, 18 Oct 2010)

Log Message:
-----------
remove G.sce, use G.main->name instead.

Both stored the filename of the blend file, but G.sce stored the last opened file.
This will make blender act differently in some cases since a relative path to the last opened file will no longer resolve (which is correct IMHO since that file isnt open and the path might not even be valid anymore).

Tested linking with durian files and rendering to relative paths when no files is loaded however we may need to have some operators give an error if they are used on the default startup.blend.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_global.h
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/blenkernel/intern/customdata.c
    trunk/blender/source/blender/blenkernel/intern/image.c
    trunk/blender/source/blender/blenkernel/intern/library.c
    trunk/blender/source/blender/blenkernel/intern/packedFile.c
    trunk/blender/source/blender/blenkernel/intern/particle_system.c
    trunk/blender/source/blender/blenkernel/intern/pointcache.c
    trunk/blender/source/blender/blenkernel/intern/scene.c
    trunk/blender/source/blender/blenkernel/intern/sequencer.c
    trunk/blender/source/blender/blenkernel/intern/sound.c
    trunk/blender/source/blender/blenkernel/intern/text.c
    trunk/blender/source/blender/blenkernel/intern/writeavi.c
    trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
    trunk/blender/source/blender/blenlib/BLI_bpath.h
    trunk/blender/source/blender/blenlib/intern/bpath.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/blenloader/intern/writefile.c
    trunk/blender/source/blender/collada/ImageExporter.cpp
    trunk/blender/source/blender/editors/interface/interface_draw.c
    trunk/blender/source/blender/editors/object/object_modifier.c
    trunk/blender/source/blender/editors/physics/physics_fluid.c
    trunk/blender/source/blender/editors/render/render_preview.c
    trunk/blender/source/blender/editors/render/render_shading.c
    trunk/blender/source/blender/editors/screen/screendump.c
    trunk/blender/source/blender/editors/space_buttons/buttons_ops.c
    trunk/blender/source/blender/editors/space_file/file_draw.c
    trunk/blender/source/blender/editors/space_file/file_ops.c
    trunk/blender/source/blender/editors/space_file/filelist.c
    trunk/blender/source/blender/editors/space_file/filesel.c
    trunk/blender/source/blender/editors/space_file/writeimage.c
    trunk/blender/source/blender/editors/space_image/image_ops.c
    trunk/blender/source/blender/editors/space_info/info_ops.c
    trunk/blender/source/blender/editors/space_outliner/outliner.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
    trunk/blender/source/blender/editors/space_text/text_ops.c
    trunk/blender/source/blender/makesrna/intern/rna_image_api.c
    trunk/blender/source/blender/modifiers/intern/MOD_fluidsim_util.c
    trunk/blender/source/blender/python/generic/bpy_internal_import.c
    trunk/blender/source/blender/quicktime/apple/quicktime_export.c
    trunk/blender/source/blender/render/intern/source/pipeline.c
    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/blender/windowmanager/intern/wm_window.c
    trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
    trunk/blender/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp

Modified: trunk/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_global.h	2010-10-18 06:34:02 UTC (rev 32550)
+++ trunk/blender/source/blender/blenkernel/BKE_global.h	2010-10-18 06:41:16 UTC (rev 32551)
@@ -52,9 +52,9 @@
 	struct Main *main;
 	
 	/* strings: lastsaved */
-	char ima[256], sce[256], lib[256];
+	char ima[256], lib[256];
 
-	/* flag: if != 0 G.sce contains valid relative base path */
+	/* flag: if != 0 G.main->name contains valid relative base path */
 	int relbase_valid;
 
 	/* strings of recent opend files */

Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c	2010-10-18 06:34:02 UTC (rev 32550)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c	2010-10-18 06:41:16 UTC (rev 32551)
@@ -309,8 +309,8 @@
 #endif
 	
 	/* these are the same at times, should never copy to the same location */
-	if(G.sce != filename)
-		BLI_strncpy(G.sce, filename, FILE_MAX);
+	if(G.main->name != filename)
+		BLI_strncpy(G.main->name, filename, FILE_MAX);
 	
 	BLI_strncpy(G.main->name, filename, FILE_MAX); /* is guaranteed current file */
 
@@ -410,7 +410,7 @@
 {
 	BlendFileData *bfd;
 
-	bfd= BLO_read_from_memfile(CTX_data_main(C), G.sce, memfile, reports);
+	bfd= BLO_read_from_memfile(CTX_data_main(C), G.main->name, memfile, reports);
 	if (bfd)
 		setup_app_data(C, bfd, "<memory1>");
 	else
@@ -460,14 +460,12 @@
 
 static int read_undosave(bContext *C, UndoElem *uel)
 {
-	char scestr[FILE_MAXDIR+FILE_MAXFILE]; /* we should eventually just use G.main->name */
 	char mainstr[FILE_MAXDIR+FILE_MAXFILE];
 	int success=0, fileflags;
 	
 	/* This is needed so undoing/redoing doesnt crash with threaded previews going */
 	WM_jobs_stop_all(CTX_wm_manager(C));
-	
-	strcpy(scestr, G.sce);	/* temporal store */
+
 	strcpy(mainstr, G.main->name);	/* temporal store */
 
 	fileflags= G.fileflags;
@@ -479,7 +477,6 @@
 		success= BKE_read_file_from_memfile(C, &uel->memfile, NULL);
 
 	/* restore */
-	strcpy(G.sce, scestr); /* restore */
 	strcpy(G.main->name, mainstr); /* restore */
 	G.fileflags= fileflags;
 
@@ -720,7 +717,7 @@
 Main *BKE_undo_get_main(Scene **scene)
 {
 	Main *mainp= NULL;
-	BlendFileData *bfd= BLO_read_from_memfile(G.main, G.sce, &curundo->memfile, NULL);
+	BlendFileData *bfd= BLO_read_from_memfile(G.main, G.main->name, &curundo->memfile, NULL);
 	
 	if(bfd) {
 		mainp= bfd->main;

Modified: trunk/blender/source/blender/blenkernel/intern/customdata.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/customdata.c	2010-10-18 06:34:02 UTC (rev 32550)
+++ trunk/blender/source/blender/blenkernel/intern/customdata.c	2010-10-18 06:41:16 UTC (rev 32551)
@@ -48,6 +48,7 @@
 #include "BKE_customdata.h"
 #include "BKE_customdata_file.h"
 #include "BKE_global.h"
+#include "BKE_main.h"
 #include "BKE_utildefines.h"
 
 /* number of layers to add when growing a CustomData object */
@@ -2343,7 +2344,7 @@
 
 static void customdata_external_filename(char filename[FILE_MAX], ID *id, CustomDataExternal *external)
 {
-	char *path = (id->lib)? id->lib->filepath: G.sce;
+	char *path = (id->lib)? id->lib->filepath: G.main->name;
 
 	BLI_strncpy(filename, external->filename, FILE_MAX);
 	BLI_path_abs(filename, path);

Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c	2010-10-18 06:34:02 UTC (rev 32550)
+++ trunk/blender/source/blender/blenkernel/intern/image.c	2010-10-18 06:41:16 UTC (rev 32551)
@@ -338,7 +338,7 @@
 	char str[FILE_MAX], strtest[FILE_MAX];
 	
 	BLI_strncpy(str, name, sizeof(str));
-	BLI_path_abs(str, G.sce);
+	BLI_path_abs(str, G.main->name);
 	
 	/* exists? */
 	file= open(str, O_BINARY|O_RDONLY);
@@ -349,7 +349,7 @@
 	for(ima= G.main->image.first; ima; ima= ima->id.next) {
 		if(ima->source!=IMA_SRC_VIEWER && ima->source!=IMA_SRC_GENERATED) {
 			BLI_strncpy(strtest, ima->name, sizeof(ima->name));
-			BLI_path_abs(strtest, G.sce);
+			BLI_path_abs(strtest, G.main->name);
 			
 			if( strcmp(strtest, str)==0 ) {
 				if(ima->anim==NULL || ima->id.us==0) {
@@ -861,8 +861,8 @@
 
 	if (scene->r.stamp & R_STAMP_FILENAME) {
 		if (G.relbase_valid) {
-			if (do_prefix)		sprintf(stamp_data->file, "File %s", G.sce);
-			else				sprintf(stamp_data->file, "%s", G.sce);
+			if (do_prefix)		sprintf(stamp_data->file, "File %s", G.main->name);
+			else				sprintf(stamp_data->file, "%s", G.main->name);
 		} else {
 			if (do_prefix)		strcpy(stamp_data->file, "File <untitled>");
 			else				strcpy(stamp_data->file, "<untitled>");
@@ -1311,7 +1311,7 @@
 {
 	if (string==NULL) return;
 	BLI_strncpy(string, base, FILE_MAX - 10);	/* weak assumption */
-	BLI_path_abs(string, G.sce);
+	BLI_path_abs(string, G.main->name);
 	BLI_path_frame(string, frame, 4);
 
 	if(use_ext)
@@ -1609,7 +1609,7 @@
 	if(ima->id.lib)
 		BLI_path_abs(name, ima->id.lib->filepath);
 	else
-		BLI_path_abs(name, G.sce);
+		BLI_path_abs(name, G.main->name);
 	
 	flag= IB_rect|IB_multilayer;
 	if(ima->flag & IMA_DO_PREMUL)
@@ -1717,7 +1717,7 @@
 		if(ima->id.lib)
 			BLI_path_abs(str, ima->id.lib->filepath);
 		else
-			BLI_path_abs(str, G.sce);
+			BLI_path_abs(str, G.main->name);
 		
 		ima->anim = openanim(str, IB_rect);
 		
@@ -1778,7 +1778,7 @@
 		if(ima->id.lib)
 			BLI_path_abs(str, ima->id.lib->filepath);
 		else
-			BLI_path_abs(str, G.sce);
+			BLI_path_abs(str, G.main->name);
 		
 		/* read ibuf */
 		ibuf = IMB_loadiffname(str, flag);

Modified: trunk/blender/source/blender/blenkernel/intern/library.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/library.c	2010-10-18 06:34:02 UTC (rev 32550)
+++ trunk/blender/source/blender/blenkernel/intern/library.c	2010-10-18 06:41:16 UTC (rev 32551)
@@ -1234,7 +1234,7 @@
 	if(ima->id.lib==NULL) return;
 	if(strncmp(ima->name, "//", 2)==0) {
 		BLI_path_abs(ima->name, ima->id.lib->filepath);
-		BLI_path_rel(ima->name, G.sce);
+		BLI_path_rel(ima->name, G.main->name);
 	}
 }
 

Modified: trunk/blender/source/blender/blenkernel/intern/packedFile.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/packedFile.c	2010-10-18 06:34:02 UTC (rev 32550)
+++ trunk/blender/source/blender/blenkernel/intern/packedFile.c	2010-10-18 06:41:16 UTC (rev 32551)
@@ -179,7 +179,7 @@
 	// convert relative filenames to absolute filenames
 	
 	strcpy(name, filename);
-	BLI_path_abs(name, G.sce);
+	BLI_path_abs(name, G.main->name);
 	
 	// open the file
 	// and create a PackedFile structure
@@ -274,7 +274,7 @@
 	if (guimode) {} //XXX  waitcursor(1);
 	
 	strcpy(name, filename);
-	BLI_path_abs(name, G.sce);
+	BLI_path_abs(name, G.main->name);
 	
 	if (BLI_exists(name)) {
 		for (number = 1; number <= 999; number++) {
@@ -339,7 +339,7 @@
 	char name[FILE_MAXDIR + FILE_MAXFILE];
 	
 	strcpy(name, filename);
-	BLI_path_abs(name, G.sce);
+	BLI_path_abs(name, G.main->name);
 	
 	if (stat(name, &st)) {
 		ret_val = PF_NOFILE;

Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c	2010-10-18 06:34:02 UTC (rev 32550)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c	2010-10-18 06:41:16 UTC (rev 32551)
@@ -63,6 +63,7 @@
 #include "BLI_listbase.h"
 #include "BLI_threads.h"
 
+#include "BKE_main.h"
 #include "BKE_animsys.h"
 #include "BKE_boids.h"
 #include "BKE_cdderivedmesh.h"
@@ -3607,7 +3608,7 @@
 			// ok, start loading
 			strcpy(filename, fss->surfdataPath);
 			strcat(filename, suffix);
-			BLI_path_abs(filename, G.sce);
+			BLI_path_abs(filename, G.main->name);
 			BLI_path_frame(filename, curFrame, 0); // fixed #frame-no 
 			strcat(filename, suffix2);
 	

Modified: trunk/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/pointcache.c	2010-10-18 06:34:02 UTC (rev 32550)
+++ trunk/blender/source/blender/blenkernel/intern/pointcache.c	2010-10-18 06:41:16 UTC (rev 32551)
@@ -1085,7 +1085,7 @@
 static int ptcache_path(PTCacheID *pid, char *filename)
 {
 	Library *lib= (pid->ob)? pid->ob->id.lib: NULL;
-	const char *blendfilename= (lib && (pid->cache->flag & PTCACHE_IGNORE_LIBPATH)==0) ? lib->filepath: G.sce;
+	const char *blendfilename= (lib && (pid->cache->flag & PTCACHE_IGNORE_LIBPATH)==0) ? lib->filepath: G.main->name;
 	size_t i;
 
 	if(pid->cache->flag & PTCACHE_EXTERNAL) {

Modified: trunk/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/scene.c	2010-10-18 06:34:02 UTC (rev 32550)
+++ trunk/blender/source/blender/blenkernel/intern/scene.c	2010-10-18 06:41:16 UTC (rev 32551)
@@ -566,11 +566,11 @@
 	Scene *sce= (Scene *)find_id("SC", name);
 	if(sce) {
 		set_scene_bg(bmain, sce);
-		printf("Scene switch: '%s' in file: '%s'\n", name, G.sce);
+		printf("Scene switch: '%s' in file: '%s'\n", name, G.main->name);
 		return sce;
 	}
 
-	printf("Can't find scene: '%s' in file: '%s'\n", name, G.sce);
+	printf("Can't find scene: '%s' in file: '%s'\n", name, G.main->name);
 	return NULL;
 }
 

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-10-18 06:34:02 UTC (rev 32550)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-10-18 06:41:16 UTC (rev 32551)
@@ -579,7 +579,7 @@
 	if (seq->type != SEQ_SCENE && seq->type != SEQ_META &&
 		seq->type != SEQ_IMAGE) {
 		BLI_join_dirfile(str, seq->strip->dir, seq->strip->stripdata->name);
-		BLI_path_abs(str, G.sce);
+		BLI_path_abs(str, G.main->name);
 	}
 
 	if (seq->type == SEQ_IMAGE) {
@@ -1044,7 +1044,7 @@
 
 	if (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE) {
 		BLI_join_dirfile(name, dir, seq->strip->proxy->file);
-		BLI_path_abs(name, G.sce);
+		BLI_path_abs(name, G.main->name);
 
 		return TRUE;
 	}
@@ -1071,7 +1071,7 @@
 			 render_size);
 	}
 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list