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:
authorJacques Lucke <jacques@blender.org>2020-11-06 15:22:10 +0300
committerJacques Lucke <jacques@blender.org>2020-11-06 15:22:10 +0300
commitda96389dcba7b07506fd241616e7b1db3ba7a27b (patch)
tree27a5e1b98a1980354e38f6f372c4e62daaea4197 /source/blender/blenkernel
parent3ee9e3a04fd3f7c95b8df4842b948e94202392b5 (diff)
Refactor: move remaining ViewLayer .blend I/O to blenkernel
Ref T76372.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_layer.h2
-rw-r--r--source/blender/blenkernel/intern/layer.c28
2 files changed, 30 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index 3d5062eada0..1fb3e746b37 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -36,6 +36,7 @@ extern "C" {
struct Base;
struct BlendDataReader;
struct BlendLibReader;
+struct BlendWriter;
struct Collection;
struct Depsgraph;
struct LayerCollection;
@@ -151,6 +152,7 @@ void BKE_layer_eval_view_layer_indexed(struct Depsgraph *depsgraph,
/* .blend file I/O */
+void BKE_view_layer_blend_write(struct BlendWriter *writer, struct ViewLayer *view_layer);
void BKE_view_layer_blend_read_data(struct BlendDataReader *reader, struct ViewLayer *view_layer);
void BKE_view_layer_blend_read_lib(struct BlendLibReader *reader,
struct Library *lib,
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c
index 4915ad4eaac..784cd5b2edf 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -1833,6 +1833,34 @@ void BKE_layer_eval_view_layer_indexed(struct Depsgraph *depsgraph,
layer_eval_view_layer(depsgraph, scene, view_layer);
}
+static void write_layer_collections(BlendWriter *writer, ListBase *lb)
+{
+ LISTBASE_FOREACH (LayerCollection *, lc, lb) {
+ BLO_write_struct(writer, LayerCollection, lc);
+
+ write_layer_collections(writer, &lc->layer_collections);
+ }
+}
+
+void BKE_view_layer_blend_write(BlendWriter *writer, ViewLayer *view_layer)
+{
+ BLO_write_struct(writer, ViewLayer, view_layer);
+ BLO_write_struct_list(writer, Base, &view_layer->object_bases);
+
+ if (view_layer->id_properties) {
+ IDP_BlendWrite(writer, view_layer->id_properties);
+ }
+
+ LISTBASE_FOREACH (FreestyleModuleConfig *, fmc, &view_layer->freestyle_config.modules) {
+ BLO_write_struct(writer, FreestyleModuleConfig, fmc);
+ }
+
+ LISTBASE_FOREACH (FreestyleLineSet *, fls, &view_layer->freestyle_config.linesets) {
+ BLO_write_struct(writer, FreestyleLineSet, fls);
+ }
+ write_layer_collections(writer, &view_layer->layer_collections);
+}
+
static void direct_link_layer_collections(BlendDataReader *reader, ListBase *lb, bool master)
{
BLO_read_list(reader, lb);