[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39044] trunk/blender/source: change BLO_library_append_begin to take a main argument rather then a context , means the BGE doesnt need to make a new empty context just to pass as an arg .

Campbell Barton ideasman42 at gmail.com
Fri Aug 5 07:26:19 CEST 2011


Revision: 39044
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39044
Author:   campbellbarton
Date:     2011-08-05 05:26:19 +0000 (Fri, 05 Aug 2011)
Log Message:
-----------
change BLO_library_append_begin to take a main argument rather then a context, means the BGE doesnt need to make a new empty context just to pass as an arg.
added doxygen description too.

this quiets the print when the BGE does linking.

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/BLO_readfile.h
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/python/intern/bpy_library.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c
    trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp

Modified: trunk/blender/source/blender/blenloader/BLO_readfile.h
===================================================================
--- trunk/blender/source/blender/blenloader/BLO_readfile.h	2011-08-05 05:22:13 UTC (rev 39043)
+++ trunk/blender/source/blender/blenloader/BLO_readfile.h	2011-08-05 05:26:19 UTC (rev 39044)
@@ -211,9 +211,18 @@
  */
 int BLO_is_a_library(const char *path, char *dir, char *group);
 
-struct Main* BLO_library_append_begin(const struct bContext *C, BlendHandle** bh, const char *filepath);
 
+/**
+ * Initialize the BlendHandle for appending or linking library data.
+ *
+ * @param mainvar The current main database eg G.main or CTX_data_main(C).
+ * @param bh A blender file handle as returned by BLO_blendhandle_from_file or BLO_blendhandle_from_memory.
+ * @param filepath Used for relative linking, copied to the lib->name
+ * @return the library Main, to be passed to BLO_library_append_named_part as mainl.
+ */
+struct Main* BLO_library_append_begin(struct Main *mainvar, BlendHandle** bh, const char *filepath);
 
+
 /**
  * Link/Append a named datablock from an external blend file.
  *
@@ -243,11 +252,6 @@
 
 void *BLO_library_read_struct(struct FileData *fd, struct BHead *bh, const char *blockname);
 
-/* deprecated */
-#if 1
-void BLO_script_library_append(BlendHandle **bh, char *dir, char *name, int idcode, short flag, struct Main *mainvar, struct Scene *scene, struct ReportList *reports);
-#endif
-
 BlendFileData* blo_read_blendafterruntime(int file, char *name, int actualsize, struct ReportList *reports);
 
 #ifdef __cplusplus

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2011-08-05 05:22:13 UTC (rev 39043)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2011-08-05 05:26:19 UTC (rev 39044)
@@ -12975,9 +12975,8 @@
 
 /* common routine to append/link something from a library */
 
-static Main* library_append_begin(const bContext *C, FileData **fd, const char *filepath)
+static Main* library_append_begin(Main *mainvar, FileData **fd, const char *filepath)
 {
-	Main *mainvar= CTX_data_main(C);
 	Main *mainl;
 
 	/* make mains */
@@ -12993,10 +12992,10 @@
 	return mainl;
 }
 
-Main* BLO_library_append_begin(const bContext *C, BlendHandle** bh, const char *filepath)
+Main* BLO_library_append_begin(Main *mainvar, BlendHandle** bh, const char *filepath)
 {
 	FileData *fd= (FileData*)(*bh);
-	return library_append_begin(C, &fd, filepath);
+	return library_append_begin(mainvar, &fd, filepath);
 }
 
 

Modified: trunk/blender/source/blender/python/intern/bpy_library.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_library.c	2011-08-05 05:22:13 UTC (rev 39043)
+++ trunk/blender/source/blender/python/intern/bpy_library.c	2011-08-05 05:26:19 UTC (rev 39044)
@@ -39,6 +39,7 @@
 #include "BKE_library.h"
 #include "BKE_idcode.h"
 #include "BKE_report.h"
+#include "BKE_context.h"
 
 #include "BLI_utildefines.h"
 #include "BLI_string.h"
@@ -317,7 +318,7 @@
 	flag_all_listbases_ids(LIB_PRE_EXISTING, 1);
 
 	/* here appending/linking starts */
-	mainl= BLO_library_append_begin(BPy_GetContext(), &(self->blo_handle), self->relpath);
+	mainl= BLO_library_append_begin(CTX_data_main(BPy_GetContext()), &(self->blo_handle), self->relpath);
 
 	{
 		int i= 0, code;

Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2011-08-05 05:22:13 UTC (rev 39043)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2011-08-05 05:26:19 UTC (rev 39044)
@@ -1690,7 +1690,7 @@
 	flag_all_listbases_ids(LIB_PRE_EXISTING, 1);
 
 	/* here appending/linking starts */
-	mainl = BLO_library_append_begin(C, &bh, libname);
+	mainl = BLO_library_append_begin(bmain, &bh, libname);
 	if(totfiles == 0) {
 		BLO_library_append_named_part_ex(C, mainl, &bh, name, idcode, flag);
 	}

Modified: trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2011-08-05 05:22:13 UTC (rev 39043)
+++ trunk/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp	2011-08-05 05:26:19 UTC (rev 39044)
@@ -950,7 +950,6 @@
 
 bool KX_BlenderSceneConverter::LinkBlendFile(BlendHandle *bpy_openlib, const char *path, char *group, KX_Scene *scene_merge, char **err_str, short options)
 {
-	bContext *C;
 	Main *main_newlib; /* stored as a dynamic 'main' until we free it */
 	Main *main_tmp= NULL; /* created only for linking, then freed */
 	LinkNode *names = NULL;
@@ -981,12 +980,10 @@
 	}
 	
 	main_newlib= (Main *)MEM_callocN( sizeof(Main), "BgeMain");
-	C= CTX_create();
-	CTX_data_main_set(C, main_newlib);
 	BKE_reports_init(&reports, RPT_STORE);	
 
 	/* here appending/linking starts */
-	main_tmp = BLO_library_append_begin(C, &bpy_openlib, (char *)path);
+	main_tmp = BLO_library_append_begin(main_newlib, &bpy_openlib, (char *)path);
 
 	int totnames_dummy;
 	names = BLO_blendhandle_get_datablock_names( bpy_openlib, idcode, &totnames_dummy);
@@ -1000,11 +997,11 @@
 	}
 	BLI_linklist_free(names, free);	/* free linklist *and* each node's data */
 	
-	BLO_library_append_end(C, main_tmp, &bpy_openlib, idcode, flag);
+	BLO_library_append_end(NULL, main_tmp, &bpy_openlib, idcode, flag);
 
 	/* now do another round of linking for Scenes so all actions are properly loaded */
 	if (idcode==ID_SCE && options & LIB_LOAD_LOAD_ACTIONS) {
-		main_tmp = BLO_library_append_begin(C, &bpy_openlib, (char *)path);
+		main_tmp = BLO_library_append_begin(main_newlib, &bpy_openlib, (char *)path);
 
 		int totnames_dummy;
 		names = BLO_blendhandle_get_datablock_names( bpy_openlib, ID_AC, &totnames_dummy);
@@ -1018,12 +1015,11 @@
 		}
 		BLI_linklist_free(names, free);	/* free linklist *and* each node's data */
 	
-		BLO_library_append_end(C, main_tmp, &bpy_openlib, ID_AC, flag);
+		BLO_library_append_end(NULL, main_tmp, &bpy_openlib, ID_AC, flag);
 	}
 	
 	BLO_blendhandle_close(bpy_openlib);
-	
-	CTX_free(C);
+
 	BKE_reports_clear(&reports);
 	/* done linking */	
 	




More information about the Bf-blender-cvs mailing list