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 */      
        

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to