Commit: ea91e73b5a6105816b68ff6c31b8f638d44da6d7
Author: Julian Eisel
Date: Wed Jun 29 17:53:42 2016 +0200
Branches: soc-2016-layer_manager
https://developer.blender.org/rBea91e73b5a6105816b68ff6c31b8f638d44da6d7
Merge branch 'master' into soc-2016-layer_manager
Conflicts:
source/blender/blenloader/intern/writefile.c
===================================================================
===================================================================
diff --cc source/blender/blenloader/CMakeLists.txt
index 906720d,479d3a1..ca9618f
--- a/source/blender/blenloader/CMakeLists.txt
+++ b/source/blender/blenloader/CMakeLists.txt
@@@ -73,8 -77,7 +77,11 @@@ if(WITH_CODEC_FFMPEG
add_definitions(-DWITH_FFMPEG)
endif()
+if(WITH_ADVANCED_LAYERS)
+ add_definitions(-DWITH_ADVANCED_LAYERS)
+endif()
+
blender_add_lib(bf_blenloader "${SRC}" "${INC}" "${INC_SYS}")
+
+ # needed so writefile.c can use dna_type_offsets.h
+ add_dependencies(bf_blenloader bf_dna)
diff --cc source/blender/blenloader/intern/writefile.c
index e623bd0,19fb80f..51677e3
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@@ -2388,33 -2609,11 +2610,34 @@@ static void write_view_settings(WriteDa
static void write_paint(WriteData *wd, Paint *p)
{
- if (p->cavity_curve)
+ if (p->cavity_curve) {
write_curvemapping(wd, p->cavity_curve);
+ }
}
+#ifdef WITH_ADVANCED_LAYERS
+/**
+ * \note Recursive.
+ */
+static void write_layeritems(WriteData *wd, Scene *scene, ListBase
*layeritems)
+{
+ for (LayerTreeItem *litem = layeritems->first; litem; litem =
litem->next) {
+ if (scene->object_layers->type == LAYER_TREETYPE_OBJECT &&
litem->type->type == LAYER_ITEMTYPE_LAYER) {
+ LayerTypeObject *oblayer = (LayerTypeObject *)litem;
- writestruct(wd, DATA, "LayerTypeObject", 1, oblayer);
++ writestruct(wd, DATA, LayerTypeObject, 1, oblayer);
+ }
+ else {
- writestruct(wd, DATA, "LayerTreeItem", 1, litem);
++ writestruct(wd, DATA, LayerTreeItem, 1, litem);
+ }
+ if (litem->prop) {
+ IDP_WriteProperty(litem->prop, wd);
+ }
+ litem->tree = scene->object_layers;
+ write_layeritems(wd, scene, &litem->childs);
+ }
+}
+#endif
+
static void write_scenes(WriteData *wd, ListBase *scebase)
{
Scene *sce;
@@@ -2600,15 -2816,7 +2840,15 @@@
write_previews(wd, sce->preview);
write_curvemapping_curves(wd, &sce->r.mblur_shutter_curve);
- sce = sce->id.next;
+#ifdef WITH_ADVANCED_LAYERS
+ if (sce->object_layers) {
- writestruct(wd, DATA, "LayerTree", 1,
sce->object_layers);
++ writestruct(wd, DATA, LayerTree, 1, sce->object_layers);
+ writedata(wd, DATA, sizeof(LayerTreeItem *) *
sce->object_layers->tot_items, sce->object_layers->items_all);
+ write_layeritems(wd, sce, &sce->object_layers->items);
+ }
+#endif
+
+ sce= sce->id.next;
}
/* flush helps the compression for undo-save */
mywrite(wd, MYWRITE_FLUSH, 0);
@@@ -2772,135 -2986,146 +3018,151 @@@ static void write_screens(WriteData *wd
uiPreview *ui_preview;
PanelCategoryStack *pc_act;
ARegion *ar;
-
- writestruct(wd, DATA, "ScrArea", 1, sa);
-
- for (ar= sa->regionbase.first; ar; ar= ar->next) {
+
+ writestruct(wd, DATA, ScrArea, 1, sa);
+
+ for (ar = sa->regionbase.first; ar; ar = ar->next) {
write_region(wd, ar, sa->spacetype);
-
- for (pa= ar->panels.first; pa; pa= pa->next)
- writestruct(wd, DATA, "Panel", 1, pa);
-
- for (pc_act = ar->panels_category_active.first;
pc_act; pc_act = pc_act->next)
- writestruct(wd, DATA,
"PanelCategoryStack", 1, pc_act);
-
- for (ui_list = ar->ui_lists.first; ui_list;
ui_list = ui_list->next)
+
+ for (pa = ar->panels.first; pa; pa = pa->next) {
+ writestruct(wd, DATA, Panel, 1, pa);
+ }
+
+ for (pc_act = ar->panels_category_active.first;
pc_act; pc_act = pc_act->next) {
+ writestruct(wd, DATA,
PanelCategoryStack, 1, pc_act);
+ }
+
+ for (ui_list = ar->ui_lists.first; ui_list;
ui_list = ui_list->next) {
write_uilist(wd, ui_list);
+ }
- for (ui_preview = ar->ui_previews.first;
ui_preview; ui_preview = ui_preview->next)
- writestruct(wd, DATA, "uiPreview", 1,
ui_preview);
+ for (ui_preview = ar->ui_previews.first;
ui_preview; ui_preview = ui_preview->next) {
+ writestruct(wd, DATA, uiPreview, 1,
ui_preview);
+ }
}
-
- sl= sa->spacedata.first;
+
+ sl = sa->spacedata.first;
while (sl) {
- for (ar= sl->regionbase.first; ar; ar= ar->next)
+ for (ar = sl->regionbase.first; ar; ar =
ar->next) {
write_region(wd, ar, sl->spacetype);
-
- if (sl->spacetype==SPACE_VIEW3D) {
- View3D *v3d= (View3D *) sl;
+ }
+
+ if (sl->spacetype == SPACE_VIEW3D) {
+ View3D *v3d = (View3D *)sl;
BGpic *bgpic;
- writestruct(wd, DATA, "View3D", 1, v3d);
- for (bgpic= v3d->bgpicbase.first;
bgpic; bgpic= bgpic->next)
- writestruct(wd, DATA, "BGpic",
1, bgpic);
- if (v3d->localvd) writestruct(wd, DATA,
"View3D", 1, v3d->localvd);
-
- if (v3d->fx_settings.ssao)
- writestruct(wd, DATA,
"GPUSSAOSettings", 1, v3d->fx_settings.ssao);
- if (v3d->fx_settings.dof)
- writestruct(wd, DATA,
"GPUDOFSettings", 1, v3d->fx_settings.dof);
- }
- else if (sl->spacetype==SPACE_IPO) {
- SpaceIpo *sipo= (SpaceIpo *)sl;
+ writestruct(wd, DATA, View3D, 1, v3d);
+ for (bgpic = v3d->bgpicbase.first;
bgpic; bgpic = bgpic->next) {
+ writestruct(wd, DATA, BGpic, 1,
bgpic);
+ }
+ if (v3d->localvd) {
+ writestruct(wd, DATA, View3D,
1, v3d->localvd);
+ }
+
+ if (v3d->fx_settings.ssao) {
+ writestruct(wd, DATA,
GPUSSAOSettings, 1, v3d->fx_settings.ssao);
+ }
+ if (v3d->fx_settings.dof) {
+ writestruct(wd, DATA,
GPUDOFSettings, 1, v3d->fx_settings.dof);
+ }
+ }
+ else if (sl->spacetype == SPACE_IPO) {
+ SpaceIpo *sipo = (SpaceIpo *)sl;
ListBase tmpGhosts = sipo->ghostCurves;
-
+
/* temporarily disable ghost curves
when saving */
- sipo->ghostCurves.first=
sipo->ghostCurves.last= NULL;
-
- writestruct(wd, DATA, "SpaceIpo", 1,
sl);
- if (sipo->ads) writestruct(wd, DATA,
"bDopeSheet", 1, sipo->ads);
-
+ sipo->ghostCurves.first =
sipo->ghostCurves.last = NULL;
+
+ writestruct(wd, DATA, SpaceIpo, 1, sl);
+ if (sipo->ads) {
+ writestruct(wd, DATA,
bDopeSheet, 1, sipo->ads);
+ }
+
/* reenable ghost curves */
- sipo->ghostCurves= tmpGhosts;
+ sipo->ghostCurves = tmpGhosts;
}
- else if (sl->spacetype==SPACE_BUTS) {
- writestruct(wd, DATA, "SpaceButs", 1,
sl);
+ else if (sl->spacetype == SPACE_BUTS) {
+ writestruct(wd, DATA, SpaceButs, 1, sl);
}
- else if (sl->spacetype==SPACE_FILE) {
- SpaceFile *sfile= (SpaceFile *)sl;
+ else if (sl->spacetype == SPACE_FILE) {
+ SpaceFile *sfile = (SpaceFile *)sl;
- writestruct(wd, DATA, "SpaceFile", 1,
sl);
- if (sfile->params)
- writestruct(wd, DATA,
"FileSelectParams", 1, sfile->params);
+ writestruct(wd, DATA, SpaceFile, 1, sl);
+ if (sfile->params) {
+ writestruct(wd, DATA,
FileSelectParams, 1, sfile->params);
+ }
}
- else if (sl->spacetype==SPACE_SEQ) {
- writestruct(wd, DATA, "SpaceSeq", 1,
sl);
+ else if (sl->spacetype == SPACE_SEQ) {
+ writestruct(wd, DATA, SpaceSeq, 1, sl);
}
- else if (sl->spacetype==SPACE_OUTLINER) {
- SpaceOops *so= (SpaceOops *)sl;
+ else if (sl->spacetype == SPACE_OUTLINER) {
+ SpaceOops *so = (SpaceOops *)sl;
write_soops(wd, so, &tmp_mem_list);
}
- else if (sl->spacetype==SPACE_IMAGE) {
- writestruct(wd, DATA, "SpaceImage", 1,
sl);
+ else if (sl->spacetype == SPACE_IMAGE) {
+ writestruct(wd, DATA, SpaceImage, 1,
sl);
}
- else if (sl->spacetype==SPACE_TEXT) {
- writestruct(wd, DATA, "SpaceText", 1,
sl);
+ else if (sl->spacetype == SPACE_TEXT) {
+ writestruct(wd, DATA, SpaceText, 1, sl);
}
- else if (sl->spacetype==SPACE_SCRIPT) {
- SpaceScript *scr = (SpaceScript*)sl;
+ else if (sl->spacetype == SPACE_SCRIPT) {
+ SpaceScript *scr = (SpaceScript *)sl;
scr->but_refs = NULL;
- writestruct(wd, DATA, "SpaceScript", 1,
sl);
+ writestruct(wd, DATA, SpaceScript, 1,
sl);
}
- else if (sl->spacetype==SPACE_ACTION) {
- writestruct(wd, DATA, "SpaceAction", 1,
sl);
+ else if (sl->spacetype == SPACE_ACTION) {
+ writestruct(wd, DATA, SpaceAction, 1,
sl);
}
- else if (sl->spacetype==SPACE_NLA) {
- SpaceNla *snla= (SpaceNla *)sl;
-
- writestruct(wd, DATA, "SpaceNla", 1,
snla);
- if (snla->ads) writestruct(wd, DATA,
"bDopeSheet", 1, snla->ads);
+ else if (sl->spacetype == SPACE_NLA) {
+ SpaceNla *snla = (SpaceNla *)sl;
+
+ writestruct(wd, DATA, SpaceNla, 1,
snla);
+ if (snla->ads) {
+ writestruct(wd, DATA,
bDopeSheet, 1, snla->ads);
+ }
}
- else if (sl->spacetype==SPACE_TIME) {
- writestruct(wd, DATA, "SpaceTime", 1,
sl);
+ else if (sl->spacetype == SPACE_TIME) {
+ writestruct(wd, DATA, SpaceTime, 1, sl);
}
- else if (sl->spacetype==SPACE_NODE) {
+ else if (sl->spacetype == SPACE_NODE) {
SpaceNode *snode = (SpaceNode *)sl;
bNodeTreePath *path;
- writestruct(wd, DATA, "SpaceNode", 1,
snode);
-
- for (path=snode->treepath.first; path;
path=path->next)
- writestruct(wd, DATA,
"bNodeTreePath", 1, path);
+ writestruct(wd, DATA, SpaceNode, 1,
snode);
+
+ for (path = snode->treepath.first;
path; path = path->next) {
+ writestruct(wd, DATA,
bNodeTreePath, 1, path);
+ }
}
- else if (sl->spacetype==SPACE_LOGIC) {
- writestruct(wd, DATA, "SpaceLogic", 1,
sl);
+ else if (sl->spacetype == SPACE_LOGIC) {
+ writestruct(wd, DATA, SpaceLogic, 1,
sl);
}
- else if (sl->spacetype==SPACE_CONSOLE) {
- SpaceConsole *con = (SpaceConsole*)sl;
+ else if (sl->spacetype == SPACE_CONSOLE) {
+ SpaceConsole *con = (SpaceConsole *)sl;
ConsoleLine *cl;
- for (cl=con->history.first; cl;
cl=cl->next) {
+ for (cl = con->history.first; cl; cl =
cl->next) {
/* 'len_alloc' is invalid on
write, set from 'len' on read */
- writestruct(wd, DATA,
"ConsoleLine", 1, cl);
- writedata(wd, DATA, cl->len+1,
cl->line);
+ writestruct(wd, DATA,
ConsoleLine, 1, cl);
+ writedata(wd, DATA, cl->len +
1, cl->line);
}
- writestruct(wd, DATA, "S
@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs