[Bf-blender-cvs] [6ac1f2eff25] greasepencil-refactor: GPencil: Refactor: Overlay: Add hide selection option back

Clément Foucault noreply at git.blender.org
Tue Jan 7 17:42:25 CET 2020


Commit: 6ac1f2eff254d4ca81acdae24938ce5aa66d74a2
Author: Clément Foucault
Date:   Tue Jan 7 16:15:06 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB6ac1f2eff254d4ca81acdae24938ce5aa66d74a2

GPencil: Refactor: Overlay: Add hide selection option back

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

M	source/blender/draw/engines/overlay/overlay_gpencil.c
M	source/blender/draw/engines/overlay/shaders/edit_gpencil_vert.glsl

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

diff --git a/source/blender/draw/engines/overlay/overlay_gpencil.c b/source/blender/draw/engines/overlay/overlay_gpencil.c
index d7b17c6b9b8..ce2866ac7b3 100644
--- a/source/blender/draw/engines/overlay/overlay_gpencil.c
+++ b/source/blender/draw/engines/overlay/overlay_gpencil.c
@@ -64,8 +64,8 @@ void OVERLAY_edit_gpencil_cache_init(OVERLAY_Data *vedata)
     return;
   }
 
-  // const bool use_sculpt_mask = (GPENCIL_SCULPT_MODE(gpd) &&
-  //                               GPENCIL_ANY_SCULPT_MASK(ts->gpencil_selectmode_sculpt));
+  const bool use_sculpt_mask = (GPENCIL_SCULPT_MODE(gpd) &&
+                                GPENCIL_ANY_SCULPT_MASK(ts->gpencil_selectmode_sculpt));
   const bool show_sculpt_points = (GPENCIL_SCULPT_MODE(gpd) &&
                                    (ts->gpencil_selectmode_sculpt &
                                     (GP_SCULPT_MASK_SELECTMODE_POINT |
@@ -87,8 +87,8 @@ void OVERLAY_edit_gpencil_cache_init(OVERLAY_Data *vedata)
   const bool is_vertex_paint = (gpd) && (gpd->flag & GP_DATA_STROKE_VERTEXMODE);
 
   /* If Sculpt/Vertex mode and the mask is disabled, the select must be hidden. */
-  // const bool hide_select = ((GPENCIL_SCULPT_MODE(gpd) && !use_sculpt_mask) ||
-  //                           (GPENCIL_VERTEX_MODE(gpd) && !use_vertex_mask));
+  const bool hide_select = ((GPENCIL_SCULPT_MODE(gpd) && !use_sculpt_mask) ||
+                            (GPENCIL_VERTEX_MODE(gpd) && !use_vertex_mask));
 
   /* Show Edit points if:
    *  Edit mode: Not in Stroke selection mode
@@ -116,9 +116,10 @@ void OVERLAY_edit_gpencil_cache_init(OVERLAY_Data *vedata)
       DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
       DRW_shgroup_uniform_bool_copy(grp, "doMultiframe", show_multi_edit_lines);
       DRW_shgroup_uniform_float_copy(grp, "gpEditOpacity", v3d->vertex_opacity);
+      DRW_shgroup_uniform_bool_copy(grp, "hideSelect", hide_select);
     }
 
-    if (show_points) {
+    if (show_points && !hide_select) {
       sh = OVERLAY_shader_edit_gpencil_point();
       pd->edit_gpencil_points_grp = grp = DRW_shgroup_create(sh, psl->edit_gpencil_ps);
       DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
diff --git a/source/blender/draw/engines/overlay/shaders/edit_gpencil_vert.glsl b/source/blender/draw/engines/overlay/shaders/edit_gpencil_vert.glsl
index 542db778e46..ef8febb59c4 100644
--- a/source/blender/draw/engines/overlay/shaders/edit_gpencil_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/edit_gpencil_vert.glsl
@@ -2,6 +2,7 @@
 uniform float normalSize;
 uniform bool doMultiframe;
 uniform bool doStrokeEndpoints;
+uniform bool hideSelect;
 uniform float gpEditOpacity;
 uniform vec4 gpEditColor;
 
@@ -25,8 +26,10 @@ void discard_vert()
 
 #ifdef USE_POINTS
 #  define colorUnselect colorGpencilVertex
+#  define colorSelect colorGpencilVertexSelect
 #else
 #  define colorUnselect gpEditColor
+#  define colorSelect (hideSelect ? colorUnselect : colorGpencilVertexSelect)
 #endif
 
 void main()
@@ -39,7 +42,7 @@ void main()
   bool is_multiframe = (vflag & GP_EDIT_MULTIFRAME) != 0u;
   bool is_stroke_sel = (vflag & GP_EDIT_STROKE_SELECTED) != 0u;
   bool is_point_sel = (vflag & GP_EDIT_POINT_SELECTED) != 0u;
-  finalColor = (is_point_sel) ? colorGpencilVertexSelect : colorUnselect;
+  finalColor = (is_point_sel) ? colorSelect : colorUnselect;
   finalColor.a *= gpEditOpacity;
 
 #ifdef USE_POINTS



More information about the Bf-blender-cvs mailing list