[Bf-blender-cvs] [4780c03be6b] temp-T90576-asset-browser-drop-on-material-slot: Moved material slot support detection to BKE_object.

Jeroen Bakker noreply at git.blender.org
Tue Aug 17 09:49:20 CEST 2021


Commit: 4780c03be6b9b3926106cda3afadfc0b112e9465
Author: Jeroen Bakker
Date:   Tue Aug 17 08:36:23 2021 +0200
Branches: temp-T90576-asset-browser-drop-on-material-slot
https://developer.blender.org/rB4780c03be6b9b3926106cda3afadfc0b112e9465

Moved material slot support detection to BKE_object.

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

M	source/blender/blenkernel/BKE_object.h
M	source/blender/blenkernel/intern/object.c
M	source/blender/draw/engines/basic/basic_engine.c

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

diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index 4724e6dfab6..9d21be3075e 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -458,6 +458,8 @@ void BKE_object_modifiers_lib_link_common(void *userData,
 struct PartEff;
 struct PartEff *BKE_object_do_version_give_parteff_245(struct Object *ob);
 
+bool BKE_object_supports_material_slots(struct Object *ob);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 23b9dca8371..07fbd48a60f 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -5732,3 +5732,9 @@ void BKE_object_modifiers_lib_link_common(void *userData,
     id_us_plus_no_lib(*idpoin);
   }
 }
+
+bool BKE_object_supports_material_slots(struct Object *ob)
+{
+  return ELEM(
+      ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL, OB_HAIR, OB_POINTCLOUD, OB_VOLUME);
+}
diff --git a/source/blender/draw/engines/basic/basic_engine.c b/source/blender/draw/engines/basic/basic_engine.c
index a5c4e9bf79b..36b5ac18cd2 100644
--- a/source/blender/draw/engines/basic/basic_engine.c
+++ b/source/blender/draw/engines/basic/basic_engine.c
@@ -25,6 +25,7 @@
 
 #include "DRW_render.h"
 
+#include "BKE_object.h"
 #include "BKE_paint.h"
 #include "BKE_particle.h"
 
@@ -160,12 +161,6 @@ static void basic_cache_init(void *vedata)
   }
 }
 
-static bool basic_object_type_has_material_slots(Object *ob)
-{
-  return ELEM(
-      ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL, OB_HAIR, OB_POINTCLOUD, OB_VOLUME);
-}
-
 /* TODO(fclem): DRW_cache_object_surface_material_get needs a refactor to allow passing NULL
  * instead of gpumat_array. Avoiding all this boilerplate code. */
 static struct GPUBatch **basic_object_surface_material_get(Object *ob)
@@ -233,7 +228,7 @@ static void basic_cache_populate(void *vedata, Object *ob)
     DRW_shgroup_call_sculpt(shgrp, ob, false, false);
   }
   else {
-    if (stl->g_data->use_material_slot_selection && basic_object_type_has_material_slots(ob)) {
+    if (stl->g_data->use_material_slot_selection && BKE_object_supports_material_slots(ob)) {
       struct GPUBatch **geoms = basic_object_surface_material_get(ob);
       if (geoms) {
         const int materials_len = DRW_cache_object_material_count_get(ob);



More information about the Bf-blender-cvs mailing list