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:
-rw-r--r--source/blender/blenloader/BLO_read_write.h16
-rw-r--r--source/blender/blenloader/intern/writefile.c14
2 files changed, 30 insertions, 0 deletions
diff --git a/source/blender/blenloader/BLO_read_write.h b/source/blender/blenloader/BLO_read_write.h
index 1b86b5668cc..3d3855d1d16 100644
--- a/source/blender/blenloader/BLO_read_write.h
+++ b/source/blender/blenloader/BLO_read_write.h
@@ -98,6 +98,15 @@ void BLO_write_struct_by_id(BlendWriter *writer, int struct_id, const void *data
#define BLO_write_struct(writer, struct_name, data_ptr) \
BLO_write_struct_by_id(writer, BLO_get_struct_id(writer, struct_name), data_ptr)
+/* Write single struct at address. */
+void BLO_write_struct_at_address_by_id(BlendWriter *writer,
+ int struct_id,
+ const void *address,
+ const void *data_ptr);
+#define BLO_write_struct_at_address(writer, struct_name, address, data_ptr) \
+ BLO_write_struct_at_address_by_id( \
+ writer, BLO_get_struct_id(writer, struct_name), address, data_ptr)
+
/* Write struct array. */
void BLO_write_struct_array_by_name(BlendWriter *writer,
const char *struct_name,
@@ -111,6 +120,13 @@ void BLO_write_struct_array_by_id(BlendWriter *writer,
BLO_write_struct_array_by_id( \
writer, BLO_get_struct_id(writer, struct_name), array_size, data_ptr)
+/* Write struct array at address. */
+void BLO_write_struct_array_at_address_by_id(
+ BlendWriter *writer, int struct_id, int array_size, const void *address, const void *data_ptr);
+#define BLO_write_struct_array_at_address(writer, struct_name, array_size, address, data_ptr) \
+ BLO_write_struct_array_at_address_by_id( \
+ writer, BLO_get_struct_id(writer, struct_name), array_size, address, data_ptr)
+
/* Write struct list. */
void BLO_write_struct_list_by_name(BlendWriter *writer,
const char *struct_name,
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index cca560f3890..1498461b728 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -4541,6 +4541,14 @@ void BLO_write_struct_by_id(BlendWriter *writer, int struct_id, const void *data
writestruct_nr(writer->wd, DATA, struct_id, 1, data_ptr);
}
+void BLO_write_struct_at_address_by_id(BlendWriter *writer,
+ int struct_id,
+ const void *address,
+ const void *data_ptr)
+{
+ writestruct_at_address_nr(writer->wd, DATA, struct_id, 1, address, data_ptr);
+}
+
void BLO_write_struct_array_by_id(BlendWriter *writer,
int struct_id,
int array_size,
@@ -4549,6 +4557,12 @@ void BLO_write_struct_array_by_id(BlendWriter *writer,
writestruct_nr(writer->wd, DATA, struct_id, array_size, data_ptr);
}
+void BLO_write_struct_array_at_address_by_id(
+ BlendWriter *writer, int struct_id, int array_size, const void *address, const void *data_ptr)
+{
+ writestruct_at_address_nr(writer->wd, DATA, struct_id, array_size, address, data_ptr);
+}
+
void BLO_write_struct_list_by_id(BlendWriter *writer, int struct_id, ListBase *list)
{
writelist_nr(writer->wd, DATA, struct_id, list);