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);
+                                               }
                                        }
                                }
                        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to