[Bf-blender-cvs] [60b8db587f6] master: Blenloader: new write_struct_at_address api functions
Jacques Lucke
noreply at git.blender.org
Fri Jun 5 21:56:46 CEST 2020
Commit: 60b8db587f655976752f92a59f9b12db04e107a6
Author: Jacques Lucke
Date: Fri Jun 5 21:44:14 2020 +0200
Branches: master
https://developer.blender.org/rB60b8db587f655976752f92a59f9b12db04e107a6
Blenloader: new write_struct_at_address api functions
===================================================================
M source/blender/blenloader/BLO_read_write.h
M source/blender/blenloader/intern/writefile.c
===================================================================
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);
More information about the Bf-blender-cvs
mailing list