[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