[Bf-blender-cvs] [b1b93c2ef19] master: Refactor: Move metaball foreach_id to new IDTypeInfo structure.

Bastien Montagne noreply at git.blender.org
Tue May 12 19:02:50 CEST 2020


Commit: b1b93c2ef19528b1ab6b564c5b97e1c0f05393cb
Author: Bastien Montagne
Date:   Tue May 12 18:03:42 2020 +0200
Branches: master
https://developer.blender.org/rBb1b93c2ef19528b1ab6b564c5b97e1c0f05393cb

Refactor: Move metaball foreach_id to new IDTypeInfo structure.

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

M	source/blender/blenkernel/intern/lib_query.c
M	source/blender/blenkernel/intern/mball.c

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

diff --git a/source/blender/blenkernel/intern/lib_query.c b/source/blender/blenkernel/intern/lib_query.c
index c87af1e8bdd..3859c88bba1 100644
--- a/source/blender/blenkernel/intern/lib_query.c
+++ b/source/blender/blenkernel/intern/lib_query.c
@@ -922,10 +922,7 @@ static void library_foreach_ID_link(Main *bmain,
       }
 
       case ID_MB: {
-        MetaBall *metaball = (MetaBall *)id;
-        for (i = 0; i < metaball->totcol; i++) {
-          CALLBACK_INVOKE(metaball->mat[i], IDWALK_CB_USER);
-        }
+        BLI_assert(0);
         break;
       }
 
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c
index 4294d279c36..94e5f435a43 100644
--- a/source/blender/blenkernel/intern/mball.c
+++ b/source/blender/blenkernel/intern/mball.c
@@ -54,6 +54,7 @@
 #include "BKE_displist.h"
 #include "BKE_idtype.h"
 #include "BKE_lib_id.h"
+#include "BKE_lib_query.h"
 #include "BKE_material.h"
 #include "BKE_mball.h"
 #include "BKE_object.h"
@@ -101,6 +102,14 @@ static void metaball_free_data(ID *id)
   }
 }
 
+static void metaball_foreach_id(ID *id, LibraryForeachIDData *data)
+{
+  MetaBall *metaball = (MetaBall *)id;
+  for (int i = 0; i < metaball->totcol; i++) {
+    BKE_LIB_FOREACHID_PROCESS(data, metaball->mat[i], IDWALK_CB_USER);
+  }
+}
+
 IDTypeInfo IDType_ID_MB = {
     .id_code = ID_MB,
     .id_filter = FILTER_ID_MB,
@@ -115,6 +124,7 @@ IDTypeInfo IDType_ID_MB = {
     .copy_data = metaball_copy_data,
     .free_data = metaball_free_data,
     .make_local = NULL,
+    .foreach_id = metaball_foreach_id,
 };
 
 /* Functions */



More information about the Bf-blender-cvs mailing list