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

Sybren A. Stüvel noreply at git.blender.org
Wed Feb 8 13:10:35 CET 2017


Commit: d4913af84660318047e3404f9766014cd78864ab
Author: Sybren A. Stüvel
Date:   Wed Feb 8 13:10:16 2017 +0100
Branches: blender2.8
https://developer.blender.org/rBd4913af84660318047e3404f9766014cd78864ab

Merge branch 'master' into blender2.8

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

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



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

diff --cc source/blender/blenloader/intern/writefile.c
index bc567edd7a,f467010f08..16d73557bb
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@@ -2469,28 -2397,9 +2398,24 @@@ static void write_textures(WriteData *w
  	mywrite_flush(wd);
  }
  
 +static void write_material_engines_settings(WriteData *wd, ListBase *lb)
 +{
 +	for (MaterialEngineSettings *res = lb->first; res; res = res->next) {
 +		writestruct(wd, DATA, MaterialEngineSettings, 1, res);
 +
 +		if (STREQ(res->name, RE_engine_id_BLENDER_CLAY)) {
 +			writestruct(wd, DATA, MaterialEngineSettingsClay, 1, res->data);
 +		}
 +		else {
 +			/* No engine matched */
 +			/* error: don't know how to write this file */
 +		}
 +	}
 +}
 +
  static void write_materials(WriteData *wd, ListBase *idbase)
  {
- 	Material *ma;
- 	int a;
- 
- 	ma = idbase->first;
- 	while (ma) {
+ 	for (Material *ma = idbase->first; ma; ma = ma->id.next) {
  		if (ma->id.us > 0 || wd->current) {
  			/* write LibData */
  			writestruct(wd, ID_MA, Material, 1, ma);
@@@ -2520,10 -2429,7 +2445,9 @@@
  			}
  
  			write_previews(wd, ma->preview);
 +
 +			write_material_engines_settings(wd, &ma->engines_settings);
  		}
- 		ma = ma->id.next;
  	}
  }
  
@@@ -2644,86 -2539,9 +2557,70 @@@ static void write_paint(WriteData *wd, 
  	}
  }
  
 +static void write_scene_collection(WriteData *wd, SceneCollection *sc)
 +{
 +	writestruct(wd, DATA, SceneCollection, 1, sc);
 +
 +	writelist(wd, DATA, LinkData, &sc->objects);
 +	writelist(wd, DATA, LinkData, &sc->filter_objects);
 +
 +	for (SceneCollection *nsc = sc->scene_collections.first; nsc; nsc = nsc->next) {
 +		write_scene_collection(wd, nsc);
 +	}
 +}
 +
 +static void write_collection_engine_settings(WriteData *wd, ListBase *lb)
 +{
 +	for (CollectionEngineSettings *ces = lb->first; ces; ces = ces->next) {
 +		writestruct(wd, DATA, CollectionEngineSettings, 1, ces);
 +
 +		for (CollectionEngineProperty *prop = ces->properties.first; prop; prop = prop->next) {
 +			switch (prop->type) {
 +			    case COLLECTION_PROP_TYPE_FLOAT:
 +				    writestruct(wd, DATA, CollectionEnginePropertyFloat, 1, prop);
 +				    break;
 +			    case COLLECTION_PROP_TYPE_INT:
 +				    writestruct(wd, DATA, CollectionEnginePropertyInt, 1, prop);
 +				    break;
 +			    default:
 +				    ; /* error: don't know how to write this file */
 +			}
 +		}
 +	}
 +}
 +
 +static void write_layer_collections(WriteData *wd, ListBase *lb)
 +{
 +	for (LayerCollection *lc = lb->first; lc; lc = lc->next) {
 +		writestruct(wd, DATA, LayerCollection, 1, lc);
 +
 +		writelist(wd, DATA, LinkData, &lc->object_bases);
 +		writelist(wd, DATA, CollectionOverride, &lc->overrides);
 +
 +		write_collection_engine_settings(wd, &lc->engine_settings);
 +
 +		write_layer_collections(wd, &lc->layer_collections);
 +	}
 +}
 +
 +static void write_render_engines_settings(WriteData *wd, ListBase *lb)
 +{
 +	for (RenderEngineSettings *res = lb->first; res; res = res->next) {
 +		writestruct(wd, DATA, RenderEngineSettings, 1, res);
 +
 +		if (STREQ(res->name, RE_engine_id_BLENDER_CLAY)) {
 +			writestruct(wd, DATA, RenderEngineSettingsClay, 1, res->data);
 +		}
 +		else {
 +			/* No engine matched */
 +			/* error: don't know how to write this file */
 +		}
 +	}
 +}
 +
  static void write_scenes(WriteData *wd, ListBase *scebase)
  {
- 	Scene *sce;
- 	BaseLegacy *base;
- 	Editing *ed;
- 	Sequence *seq;
- 	MetaStack *ms;
- 	Strip *strip;
- 	TimeMarker *marker;
- 	TransformOrientation *ts;
- 	SceneRenderLayer *srl;
- 	SceneRenderView *srv;
- 	ToolSettings *tos;
- 	FreestyleModuleConfig *fmc;
- 	FreestyleLineSet *fls;
- 	SceneLayer *sl;
- 
- 	sce = scebase->first;
- 	while (sce) {
+ 	for (Scene *sce = scebase->first; sce; sce = sce->id.next) {
  		/* write LibData */
  		writestruct(wd, ID_SCE, Scene, 1, sce);
  		write_iddata(wd, &sce->id);
@@@ -2734,13 -2552,11 +2631,11 @@@
  		write_keyingsets(wd, &sce->keyingsets);
  
  		/* direct data */
- 		base = sce->base.first;
- 		while (base) {
 -		for (Base *base = sce->base.first; base; base = base->next) {
 -			writestruct(wd, DATA, Base, 1, base);
++		for (BaseLegacy *base = sce->base.first; base; base = base->next) {
 +			writestruct(wd, DATA, BaseLegacy, 1, base);
- 			base = base->next;
  		}
  
- 		tos = sce->toolsettings;
+ 		ToolSettings *tos = sce->toolsettings;
  		writestruct(wd, DATA, ToolSettings, 1, tos);
  		if (tos->vpaint) {
  			writestruct(wd, DATA, VPaint, 1, tos->vpaint);
@@@ -2925,18 -2743,6 +2822,16 @@@
  
  		write_previews(wd, sce->preview);
  		write_curvemapping_curves(wd, &sce->r.mblur_shutter_curve);
- 
 +		write_scene_collection(wd, sce->collection);
 +
- 		for (sl = sce->render_layers.first; sl; sl = sl->next) {
++		for (SceneLayer *sl = sce->render_layers.first; sl; sl = sl->next) {
 +			writestruct(wd, DATA, SceneLayer, 1, sl);
 +			writelist(wd, DATA, Base, &sl->object_bases);
 +			write_layer_collections(wd, &sl->layer_collections);
 +		}
 +
 +		write_render_engines_settings(wd, &sce->engines_settings);
 +
- 		sce = sce->id.next;
  	}
  
  	mywrite_flush(wd);
@@@ -3101,10 -2890,8 +2979,10 @@@ static void write_screens(WriteData *wd
  		writestruct(wd, ID_SCRN, bScreen, 1, sc);
  		write_iddata(wd, &sc->id);
  
 +		write_previews(wd, sc->preview);
 +
  		/* direct data */
- 		for (sv = sc->vertbase.first; sv; sv = sv->next) {
+ 		for (ScrVert *sv = sc->vertbase.first; sv; sv = sv->next) {
  			writestruct(wd, DATA, ScrVert, 1, sv);
  		}
  
@@@ -3257,15 -3043,8 +3134,11 @@@
  				else if (sl->spacetype == SPACE_INFO) {
  					writestruct(wd, DATA, SpaceInfo, 1, sl);
  				}
 +				else if (sl->spacetype == SPACE_COLLECTIONS) {
 +					writestruct(wd, DATA, SpaceCollections, 1, sl);
 +				}
- 
- 				sl = sl->next;
  			}
  		}
- 
- 		sc = sc->id.next;
  	}
  
  	mywrite_flush(wd);




More information about the Bf-blender-cvs mailing list