[Bf-blender-cvs] [590261a617c] greasepencil-object: GPencil: Cleanup masking flags management in shaders

Antonio Vazquez noreply at git.blender.org
Thu Jul 9 17:44:17 CEST 2020


Commit: 590261a617c339296ca8e6a9a08a1731949c1b6a
Author: Antonio Vazquez
Date:   Thu Jul 9 17:44:10 2020 +0200
Branches: greasepencil-object
https://developer.blender.org/rB590261a617c339296ca8e6a9a08a1731949c1b6a

GPencil: Cleanup masking flags management in shaders

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

M	source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
M	source/blender/draw/engines/gpencil/shaders/gpencil_frag.glsl

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

diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
index 36e8882cc9f..b048bb762dd 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
@@ -36,7 +36,7 @@ struct gpMaterial {
 
 /* Multiline defines can crash blender with certain GPU drivers. */
 /* clang-format off */
-#define GP_FILL_FLAGS (GP_FILL_TEXTURE_USE | GP_FILL_TEXTURE_PREMUL | GP_FILL_TEXTURE_CLIP | GP_FILL_GRADIENT_USE | GP_FILL_GRADIENT_RADIAL)
+#define GP_FILL_FLAGS (GP_FILL_TEXTURE_USE | GP_FILL_TEXTURE_PREMUL | GP_FILL_TEXTURE_CLIP | GP_FILL_GRADIENT_USE | GP_FILL_GRADIENT_RADIAL | GP_FILL_MASK)
 /* clang-format on */
 
 #define GP_FLAG_TEST(flag, val) (((flag) & (val)) != 0)
@@ -576,13 +576,6 @@ void fill_vertex()
 
   matFlag = MATERIAL(m).flag & GP_FILL_FLAGS;
 
-  if (GP_FLAG_TEST(MATERIAL(m).flag, GP_STROKE_MASK)) {
-    matFlag |= GP_STROKE_MASK;
-  }
-  if (GP_FLAG_TEST(MATERIAL(m).flag, GP_FILL_MASK)) {
-    matFlag |= GP_FILL_MASK;
-  }
-
   matFlag |= m << GP_MATID_SHIFT;
 
   vec2 loc = MATERIAL(m).fill_uv_offset.xy;
diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_frag.glsl
index 051ce4436f8..e6324859f07 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_frag.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_frag.glsl
@@ -89,10 +89,7 @@ void main()
   fragColor *= stroke_round_cap_mask(
       strokePt1, strokePt2, strokeAspect, strokeThickness, strokeHardeness);
 
-  /* If material masking. Use a hack to determine if the pixel is fill or not
-   * using the thickness. */
-  if (((GP_FLAG_TEST(matFlag, GP_STROKE_MASK)) && (strokeThickness != 1e18)) ||
-      (GP_FLAG_TEST(matFlag, GP_FILL_MASK) && (strokeThickness == 1e18))) {
+  if (GP_FLAG_TEST(matFlag, GP_STROKE_MASK | GP_FILL_MASK)) {
     fragColor = vec4(0.0, 0.0, 0.0, 1.0);
     revealColor = vec4(1.0, 1.0, 1.0, 0.0);
   }



More information about the Bf-blender-cvs mailing list