[Bf-blender-cvs] [4b9d242be53] blender2.8: Merge branch 'master' into blender2.8

Campbell Barton noreply at git.blender.org
Thu Nov 22 05:17:18 CET 2018


Commit: 4b9d242be53203dfa6dc8cd86aef79cce24bc00a
Author: Campbell Barton
Date:   Thu Nov 22 15:16:45 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB4b9d242be53203dfa6dc8cd86aef79cce24bc00a

Merge branch 'master' into blender2.8

===================================================================



===================================================================

diff --cc source/blender/blenkernel/intern/blender_undo.c
index a00ad5ff05f,441687c1c01..fac3685f7b1
--- a/source/blender/blenkernel/intern/blender_undo.c
+++ b/source/blender/blenkernel/intern/blender_undo.c
@@@ -55,10 -55,9 +55,11 @@@
  #include "BKE_main.h"
  
  #include "BLO_undofile.h"
+ #include "BLO_readfile.h"
  #include "BLO_writefile.h"
  
 +#include "DEG_depsgraph.h"
 +
  /* -------------------------------------------------------------------- */
  
  /** \name Global Undo
diff --cc source/blender/blenkernel/intern/blendfile.c
index 5a975402c90,c6cb8a412fe..cc42fe71579
--- a/source/blender/blenkernel/intern/blendfile.c
+++ b/source/blender/blenkernel/intern/blendfile.c
@@@ -414,11 -392,11 +417,11 @@@ bool BKE_blendfile_read_from_memory
  {
  	BlendFileData *bfd;
  
- 	bfd = BLO_read_from_memory(filebuf, filelength, reports, skip_flags);
+ 	bfd = BLO_read_from_memory(filebuf, filelength, params->skip_flags, reports);
  	if (bfd) {
  		if (update_defaults)
 -			BLO_update_defaults_startup_blend(bfd->main);
 +			BLO_update_defaults_startup_blend(bfd->main, NULL);
- 		setup_app_data(C, bfd, "<memory2>", reports);
+ 		setup_app_data(C, bfd, "<memory2>", params->is_startup, reports);
  	}
  	else {
  		BKE_reports_prepend(reports, "Loading failed: ");
@@@ -561,54 -543,6 +568,54 @@@ bool BKE_blendfile_userdef_write_app_te
  	return ok;
  }
  
 +WorkspaceConfigFileData *BKE_blendfile_workspace_config_read(const char *filepath, const void *filebuf, int filelength, ReportList *reports)
 +{
 +	BlendFileData *bfd;
 +	WorkspaceConfigFileData *workspace_config = NULL;
 +
 +	if (filepath) {
- 		bfd = BLO_read_from_file(filepath, reports, BLO_READ_SKIP_USERDEF);
++		bfd = BLO_read_from_file(filepath, BLO_READ_SKIP_USERDEF, reports);
 +	}
 +	else {
- 		bfd = BLO_read_from_memory(filebuf, filelength, reports, BLO_READ_SKIP_USERDEF);
++		bfd = BLO_read_from_memory(filebuf, filelength, BLO_READ_SKIP_USERDEF, reports);
 +	}
 +
 +	if (bfd) {
 +		workspace_config = MEM_mallocN(sizeof(*workspace_config), __func__);
 +		workspace_config->main = bfd->main;
 +		workspace_config->workspaces = bfd->main->workspaces;
 +
 +		MEM_freeN(bfd);
 +	}
 +
 +	return workspace_config;
 +}
 +
 +bool BKE_blendfile_workspace_config_write(Main *bmain, const char *filepath, ReportList *reports)
 +{
 +	int fileflags = G.fileflags & ~(G_FILE_NO_UI | G_FILE_HISTORY);
 +	bool retval = false;
 +
 +	BKE_blendfile_write_partial_begin(bmain);
 +
 +	for (WorkSpace *workspace = bmain->workspaces.first; workspace; workspace = workspace->id.next) {
 +		BKE_blendfile_write_partial_tag_ID(&workspace->id, true);
 +	}
 +
 +	if (BKE_blendfile_write_partial(bmain, filepath, fileflags, reports)) {
 +		retval = true;
 +	}
 +
 +	BKE_blendfile_write_partial_end(bmain);
 +
 +	return retval;
 +}
 +
 +void BKE_blendfile_workspace_config_data_free(WorkspaceConfigFileData *workspace_config)
 +{
 +	BKE_main_free(workspace_config->main);
 +	MEM_freeN(workspace_config);
 +}
  
  /** \} */
  
diff --cc source/blender/blenloader/BLO_readfile.h
index ef02e7d7034,5a1c479f450..df8cc164869
--- a/source/blender/blenloader/BLO_readfile.h
+++ b/source/blender/blenloader/BLO_readfile.h
@@@ -75,12 -72,10 +75,16 @@@ typedef struct BlendFileData 
  	eBlenFileType type;
  } BlendFileData;
  
 +typedef struct WorkspaceConfigFileData {
 +	struct Main *main; /* has to be freed when done reading file data */
 +
 +	struct ListBase workspaces;
 +} WorkspaceConfigFileData;
 +
+ struct BlendFileReadParams {
+ 	uint skip_flags : 2;  /* eBLOReadSkip */
+ 	uint is_startup : 1;
+ };
  
  /* skip reading some data-block types (may want to skip screen data too). */
  typedef enum eBLOReadSkip {



More information about the Bf-blender-cvs mailing list