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/blenkernel/intern/world.c')
-rw-r--r--source/blender/blenkernel/intern/world.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/world.c b/source/blender/blenkernel/intern/world.c
index ac8b18f3395..cc3ee06f539 100644
--- a/source/blender/blenkernel/intern/world.c
+++ b/source/blender/blenkernel/intern/world.c
@@ -59,6 +59,8 @@ static void world_free_data(ID *id)
BKE_icon_id_delete((struct ID *)wrld);
BKE_previewimg_free(&wrld->preview);
+
+ MEM_SAFE_FREE(wrld->lightgroup);
}
static void world_init_data(ID *id)
@@ -107,6 +109,10 @@ static void world_copy_data(Main *bmain, ID *id_dst, const ID *id_src, const int
else {
wrld_dst->preview = NULL;
}
+
+ if (wrld_src->lightgroup) {
+ wrld_dst->lightgroup = (LightgroupMembership *)MEM_dupallocN(wrld_src->lightgroup);
+ }
}
static void world_foreach_id(ID *id, LibraryForeachIDData *data)
@@ -142,6 +148,10 @@ static void world_blend_write(BlendWriter *writer, ID *id, const void *id_addres
}
BKE_previewimg_blend_write(writer, wrld->preview);
+
+ if (wrld->lightgroup) {
+ BLO_write_struct(writer, LightgroupMembership, wrld->lightgroup);
+ }
}
static void world_blend_read_data(BlendDataReader *reader, ID *id)
@@ -153,6 +163,8 @@ static void world_blend_read_data(BlendDataReader *reader, ID *id)
BLO_read_data_address(reader, &wrld->preview);
BKE_previewimg_blend_read(reader, wrld->preview);
BLI_listbase_clear(&wrld->gpumaterial);
+
+ BLO_read_data_address(reader, &wrld->lightgroup);
}
static void world_blend_read_lib(BlendLibReader *reader, ID *id)