Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2019-05-11 15:42:26 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-05-14 11:57:03 +0300
commitad0e95688d254abee315622ebdc3aeb0d2ba979d (patch)
treefe08a1fdd16b3bdd4e9e645b4a8f3e39a5856066 /source/blender/draw/engines
parent2d28df783a029ee5b64da005b2fa400e4e8de976 (diff)
Cleanup: DRW: Remove pointers to materials
Diffstat (limited to 'source/blender/draw/engines')
-rw-r--r--source/blender/draw/engines/eevee/eevee_materials.c22
-rw-r--r--source/blender/draw/engines/workbench/workbench_deferred.c13
-rw-r--r--source/blender/draw/engines/workbench/workbench_forward.c7
3 files changed, 20 insertions, 22 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c
index 35e1ff8a9c1..541511d2439 100644
--- a/source/blender/draw/engines/eevee/eevee_materials.c
+++ b/source/blender/draw/engines/eevee/eevee_materials.c
@@ -1180,21 +1180,21 @@ void EEVEE_materials_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
}
}
-#define ADD_SHGROUP_CALL(shgrp, ob, ma, geom, oedata) \
+#define ADD_SHGROUP_CALL(shgrp, ob, geom, oedata) \
do { \
if (oedata) { \
DRW_shgroup_call_object_add_with_callback( \
- shgrp, geom, ob, ma, EEVEE_lightprobes_obj_visibility_cb, oedata); \
+ shgrp, geom, ob, EEVEE_lightprobes_obj_visibility_cb, oedata); \
} \
else { \
- DRW_shgroup_call_object_add_ex(shgrp, geom, ob, ma, false); \
+ DRW_shgroup_call_object_add_ex(shgrp, geom, ob, false); \
} \
} while (0)
-#define ADD_SHGROUP_CALL_SAFE(shgrp, ob, ma, geom, oedata) \
+#define ADD_SHGROUP_CALL_SAFE(shgrp, ob, geom, oedata) \
do { \
if (shgrp) { \
- ADD_SHGROUP_CALL(shgrp, ob, ma, geom, oedata); \
+ ADD_SHGROUP_CALL(shgrp, ob, geom, oedata); \
} \
} while (0)
@@ -1691,9 +1691,9 @@ void EEVEE_materials_cache_populate(EEVEE_Data *vedata,
if (is_sculpt_mode) {
/* Vcol is not supported in the modes that require PBVH drawing. */
bool use_vcol = false;
- DRW_shgroup_call_sculpt_with_materials_add(shgrp_array, ma_array, ob, use_vcol);
- DRW_shgroup_call_sculpt_with_materials_add(shgrp_depth_array, ma_array, ob, use_vcol);
- DRW_shgroup_call_sculpt_with_materials_add(shgrp_depth_clip_array, ma_array, ob, use_vcol);
+ DRW_shgroup_call_sculpt_with_materials_add(shgrp_array, ob, use_vcol);
+ DRW_shgroup_call_sculpt_with_materials_add(shgrp_depth_array, ob, use_vcol);
+ DRW_shgroup_call_sculpt_with_materials_add(shgrp_depth_clip_array, ob, use_vcol);
/* TODO(fclem): Support shadows in sculpt mode. */
}
else if (mat_geom) {
@@ -1718,9 +1718,9 @@ void EEVEE_materials_cache_populate(EEVEE_Data *vedata,
oedata->test_data = &sldata->probes->vis_data;
}
- ADD_SHGROUP_CALL(shgrp_array[i], ob, ma_array[i], mat_geom[i], oedata);
- ADD_SHGROUP_CALL_SAFE(shgrp_depth_array[i], ob, ma_array[i], mat_geom[i], oedata);
- ADD_SHGROUP_CALL_SAFE(shgrp_depth_clip_array[i], ob, ma_array[i], mat_geom[i], oedata);
+ ADD_SHGROUP_CALL(shgrp_array[i], ob, mat_geom[i], oedata);
+ ADD_SHGROUP_CALL_SAFE(shgrp_depth_array[i], ob, mat_geom[i], oedata);
+ ADD_SHGROUP_CALL_SAFE(shgrp_depth_clip_array[i], ob, mat_geom[i], oedata);
char *name = auto_layer_names;
for (int j = 0; j < auto_layer_count; ++j) {
diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c
index bcce507da24..b19db4566dd 100644
--- a/source/blender/draw/engines/workbench/workbench_deferred.c
+++ b/source/blender/draw/engines/workbench/workbench_deferred.c
@@ -1036,24 +1036,23 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
/* Draw material color */
if (is_sculpt_mode) {
struct DRWShadingGroup **shgrps = BLI_array_alloca(shgrps, materials_len);
- struct Material **mats = BLI_array_alloca(mats, materials_len);
for (int i = 0; i < materials_len; ++i) {
- mats[i] = give_current_material(ob, i + 1);
- if (mats[i] != NULL && mats[i]->a < 1.0f) {
+ struct Material *mat = give_current_material(ob, i + 1);
+ if (mat != NULL && mat->a < 1.0f) {
/* Hack */
- wpd->shading.xray_alpha = mats[i]->a;
+ wpd->shading.xray_alpha = mat->a;
material = workbench_forward_get_or_create_material_data(
- vedata, ob, mats[i], NULL, NULL, V3D_SHADING_MATERIAL_COLOR, 0, is_sculpt_mode);
+ vedata, ob, mat, NULL, NULL, V3D_SHADING_MATERIAL_COLOR, 0, is_sculpt_mode);
has_transp_mat = true;
}
else {
material = get_or_create_material_data(
- vedata, ob, mats[i], NULL, NULL, V3D_SHADING_MATERIAL_COLOR, 0);
+ vedata, ob, mat, NULL, NULL, V3D_SHADING_MATERIAL_COLOR, 0);
}
shgrps[i] = material->shgrp;
}
- DRW_shgroup_call_sculpt_with_materials_add(shgrps, mats, ob, false);
+ DRW_shgroup_call_sculpt_with_materials_add(shgrps, ob, false);
}
else {
struct GPUBatch **geoms;
diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c
index 13bd6fe9e4d..2011afb723a 100644
--- a/source/blender/draw/engines/workbench/workbench_forward.c
+++ b/source/blender/draw/engines/workbench/workbench_forward.c
@@ -623,18 +623,17 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob)
/* Draw material color */
if (is_sculpt_mode) {
struct DRWShadingGroup **shgrps = BLI_array_alloca(shgrps, materials_len);
- struct Material **mats = BLI_array_alloca(mats, materials_len);
for (int i = 0; i < materials_len; ++i) {
- mats[i] = give_current_material(ob, i + 1);
+ struct Material *mat = give_current_material(ob, i + 1);
material = workbench_forward_get_or_create_material_data(
- vedata, ob, mats[i], NULL, NULL, V3D_SHADING_MATERIAL_COLOR, 0, is_sculpt_mode);
+ vedata, ob, mat, NULL, NULL, V3D_SHADING_MATERIAL_COLOR, 0, is_sculpt_mode);
shgrps[i] = material->shgrp;
}
/* TODO(fclem) make this call optional */
DRW_shgroup_call_sculpt_add(material->shgrp_object_outline, ob, false, false, false);
if (!is_wire) {
- DRW_shgroup_call_sculpt_with_materials_add(shgrps, mats, ob, false);
+ DRW_shgroup_call_sculpt_with_materials_add(shgrps, ob, false);
}
}
else {