[Bf-blender-cvs] [fda791ab124] master: Overlay Engine: Fix T72147 Blender crashes when Lock Object Modes off

Clément Foucault noreply at git.blender.org
Tue Dec 3 18:57:03 CET 2019


Commit: fda791ab1241534e377bee84b3a214e1343094af
Author: Clément Foucault
Date:   Tue Dec 3 18:56:45 2019 +0100
Branches: master
https://developer.blender.org/rBfda791ab1241534e377bee84b3a214e1343094af

Overlay Engine: Fix T72147 Blender crashes when Lock Object Modes off

Also fix sculpt mask inverted

===================================================================

M	source/blender/draw/engines/overlay/overlay_sculpt.c
M	source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl

===================================================================

diff --git a/source/blender/draw/engines/overlay/overlay_sculpt.c b/source/blender/draw/engines/overlay/overlay_sculpt.c
index 3b7f12ed804..4e7daf1862d 100644
--- a/source/blender/draw/engines/overlay/overlay_sculpt.c
+++ b/source/blender/draw/engines/overlay/overlay_sculpt.c
@@ -51,7 +51,7 @@ void OVERLAY_sculpt_cache_populate(OVERLAY_Data *vedata, Object *ob)
   const bool use_pbvh = BKE_sculptsession_use_pbvh_draw(ob, draw_ctx->v3d);
 
   if (use_pbvh || !ob->sculpt->deform_modifiers_active || ob->sculpt->shapekey_active) {
-    if (pbvh_has_mask(pbvh)) {
+    if (!use_pbvh || pbvh_has_mask(pbvh)) {
       DRW_shgroup_call_sculpt(pd->sculpt_mask_grp, ob, false, true, false);
     }
   }
diff --git a/source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl b/source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl
index 18a096da61b..38559677706 100644
--- a/source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl
@@ -11,8 +11,7 @@ void main()
   vec3 world_pos = point_object_to_world(pos);
   gl_Position = point_world_to_ndc(world_pos);
 
-  float mask = 1.0 - (msk * maskOpacity);
-  finalColor = vec4(0.0, 0.0, 0.0, mask);
+  finalColor = vec4(0.0, 0.0, 0.0, msk * maskOpacity);
 
 #ifdef USE_WORLD_CLIP_PLANES
   world_clip_planes_calc_clip_distance(world_pos);



More information about the Bf-blender-cvs mailing list