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:
authorJeroen Bakker <j.bakker@atmind.nl>2018-06-14 13:12:06 +0300
committerJeroen Bakker <j.bakker@atmind.nl>2018-06-14 13:12:27 +0300
commita671aa922a1591128f0a1478c29af39ff6eca61f (patch)
tree92eb164608cff6248cfca4fb2bbded9b2c46a154 /source/blender/draw/engines/workbench/workbench_forward.c
parentd64cd6f7ee6322685c485b68118f8e987723f20b (diff)
Workbench: Material colors + settings during sculpting
Diffstat (limited to 'source/blender/draw/engines/workbench/workbench_forward.c')
-rw-r--r--source/blender/draw/engines/workbench/workbench_forward.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c
index 1a387c8087c..58bd6a65866 100644
--- a/source/blender/draw/engines/workbench/workbench_forward.c
+++ b/source/blender/draw/engines/workbench/workbench_forward.c
@@ -499,7 +499,7 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob)
/* Fallback from not drawn OB_TEXTURE mode or just OB_SOLID mode */
if (!is_drawn) {
- if ((wpd->shading.color_type != V3D_SHADING_MATERIAL_COLOR) || is_sculpt_mode) {
+ if ((wpd->shading.color_type != V3D_SHADING_MATERIAL_COLOR)) {
/* No material split needed */
struct Gwn_Batch *geom = DRW_cache_object_surface_get(ob);
if (geom) {
@@ -530,8 +530,15 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob)
Material *mat = give_current_material(ob, i + 1);
material = get_or_create_material_data(vedata, ob, mat, NULL, OB_SOLID);
- DRW_shgroup_call_object_add(material->shgrp_object_outline, mat_geom[i], ob);
- DRW_shgroup_call_object_add(material->shgrp, mat_geom[i], ob);
+ if (is_sculpt_mode)
+ {
+ DRW_shgroup_call_sculpt_add(material->shgrp_object_outline, ob, ob->obmat);
+ DRW_shgroup_call_sculpt_add(material->shgrp, ob, ob->obmat);
+ }
+ else {
+ DRW_shgroup_call_object_add(material->shgrp_object_outline, mat_geom[i], ob);
+ DRW_shgroup_call_object_add(material->shgrp, mat_geom[i], ob);
+ }
}
}
}