diff options
author | Jacques Lucke <jacques@blender.org> | 2020-11-06 15:22:10 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-11-06 15:22:10 +0300 |
commit | da96389dcba7b07506fd241616e7b1db3ba7a27b (patch) | |
tree | 27a5e1b98a1980354e38f6f372c4e62daaea4197 /source/blender | |
parent | 3ee9e3a04fd3f7c95b8df4842b948e94202392b5 (diff) |
Refactor: move remaining ViewLayer .blend I/O to blenkernel
Ref T76372.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/BKE_layer.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/layer.c | 28 | ||||
-rw-r--r-- | source/blender/blenloader/intern/writefile.c | 30 |
3 files changed, 31 insertions, 29 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); diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 5931fdcfbde..8583e8b3b10 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1322,34 +1322,6 @@ static void write_view_settings(BlendWriter *writer, ColorManagedViewSettings *v } } -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); - } -} - -static void write_view_layer(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 write_lightcache_texture(BlendWriter *writer, LightCacheTexture *tex) { if (tex->data) { @@ -1600,7 +1572,7 @@ static void write_scene(BlendWriter *writer, Scene *sce, const void *id_address) BKE_curvemapping_curves_blend_write(writer, &sce->r.mblur_shutter_curve); LISTBASE_FOREACH (ViewLayer *, view_layer, &sce->view_layers) { - write_view_layer(writer, view_layer); + BKE_view_layer_blend_write(writer, view_layer); } if (sce->master_collection) { |