[Bf-blender-cvs] [732cd96] asset-engine: Merge branch 'master' into asset-engine

Bastien Montagne noreply at git.blender.org
Tue Jun 28 18:22:08 CEST 2016


Commit: 732cd96737007b1411a161369f842209a4c26419
Author: Bastien Montagne
Date:   Tue Jun 28 18:21:53 2016 +0200
Branches: asset-engine
https://developer.blender.org/rB732cd96737007b1411a161369f842209a4c26419

Merge branch 'master' into asset-engine

Conflicts:
	source/blender/blenloader/intern/writefile.c

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



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

diff --cc source/blender/blenloader/intern/writefile.c
index 1979bd0,2c8bb92..5333d9d
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@@ -600,14 -669,7 +669,14 @@@ static void write_iddata(void *wd, cons
  {
  	/* ID_WM's id->properties are considered runtime only, and never written in .blend file. */
  	if (id->properties && !ELEM(GS(id->name), ID_WM)) {
 -		IDP_WriteProperty(id->properties, wd);
 +		/* We want to write IDProps from 'virtual' libraries too, but not from 'real' linked datablocks... */
 +		if (!id->uuid || (id->lib && (id->lib->flag & LIBRARY_FLAG_VIRTUAL))) {
 +			IDP_WriteProperty(id->properties, wd);
 +		}
 +	}
 +	if (id->uuid) {
 +		BLI_assert(id->lib && id->lib->asset_repository);
- 		writestruct(wd, DATA, "AssetUUID", 1, id->uuid);
++		writestruct(wd, DATA, AssetUUID, 1, id->uuid);
  	}
  }
  
@@@ -3613,71 -3891,27 +3899,72 @@@ static void write_libraries(WriteData *
  		/* XXX needs rethink, just like save UI in undo files now - would be nice to append things only for the]
  		 * quit.blend and temp saves */
  		if (found_one) {
- 			writestruct(wd, ID_LI, "Library", 1, main->curlib);
+ 			writestruct(wd, ID_LI, Library, 1, main->curlib);
  			write_iddata(wd, &main->curlib->id);
  
 +			BLI_assert(!(main->curlib->flag & LIBRARY_FLAG_VIRTUAL) ||
 +			           (!main->curlib->packedfile && main->curlib->asset_repository));
 +
  			if (main->curlib->packedfile) {
  				PackedFile *pf = main->curlib->packedfile;
- 				writestruct(wd, DATA, "PackedFile", 1, pf);
+ 				writestruct(wd, DATA, PackedFile, 1, pf);
  				writedata(wd, DATA, pf->size, pf->data);
- 				if (wd->current == NULL)
+ 				if (wd->current == NULL) {
  					printf("write packed .blend: %s\n", main->curlib->name);
+ 				}
  			}
  
 -			while (a--) {
 -				for (id = lbarray[a]->first; id; id = id->next) {
 -					if (id->us > 0 && (id->tag & LIB_TAG_EXTERN)) {
 -						if (!BKE_idcode_is_linkable(GS(id->name))) {
 -							printf("ERROR: write file: datablock '%s' from lib '%s' is not linkable "
 -							       "but is flagged as directly linked", id->name, main->curlib->filepath);
 -							BLI_assert(0);
 +			if (main->curlib->asset_repository) {
- 				writestruct(wd, DATA, "AssetRepositoryRef", 1, main->curlib->asset_repository);
++				writestruct(wd, DATA, AssetRepositoryRef, 1, main->curlib->asset_repository);
 +			}
 +
 +			if (main->curlib->flag & LIBRARY_FLAG_VIRTUAL) {
 +				/* Those should be the only datatypes found in a virtual library! */
 +				write_images   (wd, &main->image);
 +				write_vfonts   (wd, &main->vfont);
 +				write_texts    (wd, &main->text);
 +				write_sounds   (wd, &main->sound);
 +
 +				BLI_assert(BLI_listbase_is_empty(&main->wm));
 +				BLI_assert(BLI_listbase_is_empty(&main->screen));
 +				BLI_assert(BLI_listbase_is_empty(&main->movieclip));
 +				BLI_assert(BLI_listbase_is_empty(&main->mask));
 +				BLI_assert(BLI_listbase_is_empty(&main->scene));
 +				BLI_assert(BLI_listbase_is_empty(&main->curve));
 +				BLI_assert(BLI_listbase_is_empty(&main->mball));
 +				BLI_assert(BLI_listbase_is_empty(&main->camera));
 +				BLI_assert(BLI_listbase_is_empty(&main->lamp));
 +				BLI_assert(BLI_listbase_is_empty(&main->latt));
 +				BLI_assert(BLI_listbase_is_empty(&main->key));
 +				BLI_assert(BLI_listbase_is_empty(&main->world));
 +				BLI_assert(BLI_listbase_is_empty(&main->speaker));
 +				BLI_assert(BLI_listbase_is_empty(&main->group));
 +				BLI_assert(BLI_listbase_is_empty(&main->armature));
 +				BLI_assert(BLI_listbase_is_empty(&main->action));
 +				BLI_assert(BLI_listbase_is_empty(&main->object));
 +				BLI_assert(BLI_listbase_is_empty(&main->mat));
 +				BLI_assert(BLI_listbase_is_empty(&main->tex));
 +				BLI_assert(BLI_listbase_is_empty(&main->mesh));
 +				BLI_assert(BLI_listbase_is_empty(&main->particle));
 +				BLI_assert(BLI_listbase_is_empty(&main->nodetree));
 +				BLI_assert(BLI_listbase_is_empty(&main->brush));
 +				BLI_assert(BLI_listbase_is_empty(&main->palettes));
 +				BLI_assert(BLI_listbase_is_empty(&main->paintcurves));
 +				BLI_assert(BLI_listbase_is_empty(&main->gpencil));
 +				BLI_assert(BLI_listbase_is_empty(&main->linestyle));
 +			}
 +			else {
 +				while (a--) {
- 					for (id= lbarray[a]->first; id; id= id->next) {
++					for (id = lbarray[a]->first; id; id = id->next) {
 +						if (id->us > 0 && (id->tag & LIB_TAG_EXTERN)) {
 +							if (!BKE_idcode_is_linkable(GS(id->name))) {
 +								printf("ERROR: write file: datablock '%s' from lib '%s' is not linkable "
 +									   "but is flagged as directly linked", id->name, main->curlib->filepath);
 +								BLI_assert(0);
 +							}
- 							writestruct(wd, ID_ID, "ID", 1, id);
++							writestruct(wd, ID_ID, ID, 1, id);
 +							write_iddata(wd, id);
  						}
 -						writestruct(wd, ID_ID, ID, 1, id);
  					}
  				}
  			}




More information about the Bf-blender-cvs mailing list