[Bf-blender-cvs] [a671aa922a1] blender2.8: Workbench: Material colors + settings during sculpting
Jeroen Bakker
noreply at git.blender.org
Thu Jun 14 12:13:11 CEST 2018
Commit: a671aa922a1591128f0a1478c29af39ff6eca61f
Author: Jeroen Bakker
Date: Thu Jun 14 12:12:06 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBa671aa922a1591128f0a1478c29af39ff6eca61f
Workbench: Material colors + settings during sculpting
===================================================================
M source/blender/draw/engines/workbench/workbench_deferred.c
M source/blender/draw/engines/workbench/workbench_forward.c
===================================================================
diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c
index 37978882abe..98cdda51e35 100644
--- a/source/blender/draw/engines/workbench/workbench_deferred.c
+++ b/source/blender/draw/engines/workbench/workbench_deferred.c
@@ -690,7 +690,7 @@ void workbench_deferred_solid_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) {
@@ -720,7 +720,12 @@ void workbench_deferred_solid_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, mat_geom[i], ob);
+ if (is_sculpt_mode) {
+ DRW_shgroup_call_sculpt_add(material->shgrp, ob, ob->obmat);
+ }
+ else {
+ DRW_shgroup_call_object_add(material->shgrp, mat_geom[i], ob);
+ }
}
}
}
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);
+ }
}
}
}
More information about the Bf-blender-cvs
mailing list