Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenloader/intern/writefile.c')
-rw-r--r--source/blender/blenloader/intern/writefile.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index d8097f1a50a..31e81358a38 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -2407,10 +2407,12 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
Base *base;
Editing *ed;
Sequence *seq;
+ LayerCollection *lc;
MetaStack *ms;
Strip *strip;
TimeMarker *marker;
TransformOrientation *ts;
+ SceneLayer *sl;
SceneRenderLayer *srl;
SceneRenderView *srv;
ToolSettings *tos;
@@ -2585,6 +2587,29 @@ static void write_scenes(WriteData *wd, ListBase *scebase)
writestruct(wd, DATA, TransformOrientation, 1, ts);
}
+ /* writing scene layers to the blend file */
+ for (sl = sce->layers.first; sl; sl = sl->next) {
+ writestruct(wd, DATA, SceneLayer, 1, sl);
+
+ base = sl->base.first;
+ while (base) {
+ writestruct(wd, DATA, Base, 1, base);
+ base = base->next;
+ }
+
+ for (lc = sl->collections.first; lc; lc = lc->next) {
+ writestruct(wd, DATA, LayerCollection, 1, lc);
+
+ for (LinkData *link = lc->elements.first; link; link = link->next) {
+ writestruct(wd, DATA, LinkData, 1, link);
+ }
+
+ for (CollectionOverride *ov = lc->overrides.first; ov; ov = ov->next) {
+ writestruct(wd, DATA, CollectionOverride, 1, ov);
+ }
+ }
+ }
+
for (srl = sce->r.layers.first; srl; srl = srl->next) {
writestruct(wd, DATA, SceneRenderLayer, 1, srl);
for (fmc = srl->freestyleConfig.modules.first; fmc; fmc = fmc->next) {