Commit: cae4041878ebf3afe37740fac48df22b7322ea6c
Author: Antonio Vazquez
Date:   Tue Aug 11 19:10:52 2020 +0200
Branches: master
https://developer.blender.org/rBcae4041878ebf3afe37740fac48df22b7322ea6c

Fix T79683: Dim GPencil points created by modifiers

This change makes the generated points a light dimmer than selectable points.

Before:

{F8765593}

After:
{F8765585}

Maniphest Tasks: T79683

Differential Revision: https://developer.blender.org/D8515

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

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

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

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 732e392ffe0..5818d8eca52 100644
--- a/source/blender/draw/engines/overlay/shaders/edit_gpencil_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/edit_gpencil_vert.glsl
@@ -26,6 +26,7 @@ void discard_vert()
 #define GP_EDIT_MULTIFRAME 4u      /* 1 << 2 */
 #define GP_EDIT_STROKE_START 8u    /* 1 << 3 */
 #define GP_EDIT_STROKE_END 16u     /* 1 << 4 */
+#define GP_EDIT_POINT_DIMMED 32u   /* 1 << 5 */
 
 #ifdef USE_POINTS
 #  define colorUnselect colorGpencilVertex
@@ -60,6 +61,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;
+  bool is_point_dimmed = (vflag & GP_EDIT_POINT_DIMMED) != 0u;
 
   if (doWeightColor) {
     finalColor.rgb = weight_to_rgb(weight);
@@ -73,6 +75,10 @@ void main()
 #ifdef USE_POINTS
   gl_PointSize = sizeVertex * 2.0;
 
+  if (is_point_dimmed) {
+    finalColor.rgb = clamp(colorUnselect.rgb + vec3(0.3), 0.0, 1.0);
+  }
+
   if (doStrokeEndpoints && !doWeightColor) {
     bool is_stroke_start = (vflag & GP_EDIT_STROKE_START) != 0u;
     bool is_stroke_end = (vflag & GP_EDIT_STROKE_END) != 0u;
diff --git a/source/blender/draw/intern/draw_cache_impl_gpencil.c 
b/source/blender/draw/intern/draw_cache_impl_gpencil.c
index 0ab14574fa6..d6b0c939114 100644
--- a/source/blender/draw/intern/draw_cache_impl_gpencil.c
+++ b/source/blender/draw/intern/draw_cache_impl_gpencil.c
@@ -645,6 +645,7 @@ void DRW_cache_gpencil_sbuffer_clear(Object *ob)
 #define GP_EDIT_MULTIFRAME (1 << 2)
 #define GP_EDIT_STROKE_START (1 << 3)
 #define GP_EDIT_STROKE_END (1 << 4)
+#define GP_EDIT_POINT_DIMMED (1 << 5)
 
 typedef struct gpEditIterData {
   gpEditVert *verts;
@@ -660,6 +661,7 @@ static uint32_t gpencil_point_edit_flag(const bool 
layer_lock,
   SET_FLAG_FROM_TEST(sflag, (!layer_lock) && pt->flag & GP_SPOINT_SELECT, 
GP_EDIT_POINT_SELECTED);
   SET_FLAG_FROM_TEST(sflag, v == 0, GP_EDIT_STROKE_START);
   SET_FLAG_FROM_TEST(sflag, v == (v_len - 1), GP_EDIT_STROKE_END);
+  SET_FLAG_FROM_TEST(sflag, pt->runtime.pt_orig == NULL, GP_EDIT_POINT_DIMMED);
   return sflag;
 }

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

Reply via email to