[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