[Bf-blender-cvs] [a883e0a30e9] blenloader-api: update bevel modifier

Jacques Lucke noreply at git.blender.org
Sat Mar 7 19:09:27 CET 2020


Commit: a883e0a30e9802e59fe144c316a13168c60a9dbe
Author: Jacques Lucke
Date:   Sat Mar 7 18:03:50 2020 +0100
Branches: blenloader-api
https://developer.blender.org/rBa883e0a30e9802e59fe144c316a13168c60a9dbe

update bevel modifier

===================================================================

M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/writefile.c
M	source/blender/modifiers/intern/MOD_bevel.c

===================================================================

diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 7254555aae4..6777a5ce99d 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5500,13 +5500,6 @@ static void direct_link_modifiers(FileData *fd, ListBase *lb, Object *ob)
       msmcd->reader = NULL;
       msmcd->reader_object_path[0] = '\0';
     }
-    else if (md->type == eModifierType_Bevel) {
-      BevelModifierData *bmd = (BevelModifierData *)md;
-      bmd->custom_profile = newdataadr(fd, bmd->custom_profile);
-      if (bmd->custom_profile) {
-        BKE_curveprofile_blo_read_struct(wrap_reader(fd), bmd->custom_profile);
-      }
-    }
   }
 }
 
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 99bdc1b71f2..a233994319d 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -1677,12 +1677,6 @@ static void write_modifiers(WriteData *wd, ListBase *modbase)
         writedata(wd, DATA, sizeof(float[3]) * csmd->bind_coords_num, csmd->bind_coords);
       }
     }
-    else if (md->type == eModifierType_Bevel) {
-      BevelModifierData *bmd = (BevelModifierData *)md;
-      if (bmd->custom_profile) {
-        BKE_curveprofile_blo_write_ptr(wrap_writer(wd), bmd->custom_profile);
-      }
-    }
   }
 }
 
diff --git a/source/blender/modifiers/intern/MOD_bevel.c b/source/blender/modifiers/intern/MOD_bevel.c
index 460f710b413..f9e6890294a 100644
--- a/source/blender/modifiers/intern/MOD_bevel.c
+++ b/source/blender/modifiers/intern/MOD_bevel.c
@@ -45,6 +45,8 @@
 
 #include "DEG_depsgraph_query.h"
 
+#include "BLO_callback_api.h"
+
 static void initData(ModifierData *md)
 {
   BevelModifierData *bmd = (BevelModifierData *)md;
@@ -263,6 +265,23 @@ static bool isDisabled(const Scene *UNUSED(scene), ModifierData *md, bool UNUSED
   return (bmd->value == 0.0f);
 }
 
+static void bloWrite(BloWriter *writer, const ModifierData *md)
+{
+  BevelModifierData *bmd = (BevelModifierData *)md;
+  if (bmd->custom_profile) {
+    BKE_curveprofile_blo_write_ptr(writer, bmd->custom_profile);
+  }
+}
+
+static void bloRead(BloReader *reader, ModifierData *md)
+{
+  BevelModifierData *bmd = (BevelModifierData *)md;
+  BLO_read_update_address(reader, bmd->custom_profile);
+  if (bmd->custom_profile) {
+    BKE_curveprofile_blo_read_struct(reader, bmd->custom_profile);
+  }
+}
+
 ModifierTypeInfo modifierType_Bevel = {
     /* name */ "Bevel",
     /* structName */ "BevelModifierData",
@@ -287,6 +306,6 @@ ModifierTypeInfo modifierType_Bevel = {
     /* foreachIDLink */ NULL,
     /* foreachTexLink */ NULL,
     /* freeRuntimeData */ NULL,
-    /* bloWrite */ NULL,
-    /* bloRead */ NULL,
+    /* bloWrite */ bloWrite,
+    /* bloRead */ bloRead,
 };



More information about the Bf-blender-cvs mailing list