Merge branch 'master' into blender2.8
[blender.git] / source / blender / blenloader / BLO_readfile.h
index 4fd2e227bc5c332f7f83c4d0c3b62a9381a44dc0..0da15fe5bbc6657c8b505c85242062cdc3ca2794 100644 (file)
@@ -39,15 +39,18 @@ extern "C" {
 struct BlendThumbnail;
 struct bScreen;
 struct LinkNode;
+struct ListBase;
 struct Main;
 struct MemFile;
 struct ReportList;
 struct Scene;
+struct ViewLayer;
 struct UserDef;
 struct View3D;
 struct bContext;
 struct BHead;
 struct FileData;
+struct wmWindowManager;
 
 typedef struct BlendHandle BlendHandle;
 
@@ -64,13 +67,20 @@ typedef struct BlendFileData {
        int fileflags;
        int globalf;
        char filename[1024];    /* 1024 = FILE_MAX */
-       
-       struct bScreen *curscreen;
+
+       struct bScreen *curscreen; /* TODO think this isn't needed anymore? */
        struct Scene *curscene;
-       
+       struct ViewLayer *cur_view_layer; /* layer to activate in workspaces when reading without UI */
+
        eBlenFileType type;
 } BlendFileData;
 
+typedef struct WorkspaceConfigFileData {
+       struct Main *main; /* has to be freed when done reading file data */
+
+       struct ListBase workspaces;
+} WorkspaceConfigFileData;
+
 
 /* skip reading some data-block types (may want to skip screen data too). */
 typedef enum eBLOReadSkip {
@@ -124,8 +134,9 @@ struct ID *BLO_library_link_named_part(struct Main *mainl, BlendHandle **bh, con
 struct ID *BLO_library_link_named_part_ex(
         struct Main *mainl, BlendHandle **bh,
         const short idcode, const char *name, const int flag,
-        struct Scene *scene, struct View3D *v3d);
-void BLO_library_link_end(struct Main *mainl, BlendHandle **bh, short flag, struct Scene *scene, struct View3D *v3d);
+        struct Scene *scene, struct ViewLayer *view_layer);
+void BLO_library_link_end(
+        struct Main *mainl, BlendHandle **bh, int flag, struct Scene *scene, struct ViewLayer *view_layer);
 
 void BLO_library_link_copypaste(struct Main *mainl, BlendHandle *bh);
 
@@ -134,7 +145,9 @@ void *BLO_library_read_struct(struct FileData *fd, struct BHead *bh, const char
 BlendFileData *blo_read_blendafterruntime(int file, const char *name, int actualsize, struct ReportList *reports);
 
 /* internal function but we need to expose it */
-void blo_lib_link_screen_restore(struct Main *newmain, struct bScreen *curscreen, struct Scene *curscene);
+void blo_lib_link_restore(
+        struct Main *newmain, struct wmWindowManager *curwm,
+        struct Scene *curscene, struct ViewLayer *cur_render_layer);
 
 typedef void (*BLOExpandDoitCallback) (void *fdhandle, struct Main *mainvar, void *idv);