[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