[Bf-blender-cvs] [ac7dfab0cb8] greasepencil-refactor: GPencil: Refactor: Fix display bug of strokes endpoints
Clément Foucault
noreply at git.blender.org
Sat Feb 8 03:00:52 CET 2020
Commit: ac7dfab0cb88009d9aaaaa4dcdc75c5290d61cda
Author: Clément Foucault
Date: Sat Feb 8 03:00:40 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rBac7dfab0cb88009d9aaaaa4dcdc75c5290d61cda
GPencil: Refactor: Fix display bug of strokes endpoints
===================================================================
M source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.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 83fa9d5d0f6..17986db54f7 100644
--- a/source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
+++ b/source/blender/draw/engines/gpencil/shaders/gpencil_common_lib.glsl
@@ -409,12 +409,15 @@ void stroke_vertex()
strokeThickness = (is_squares) ? 1e18 : (thickness / gl_Position.w);
}
else {
+ bool is_stroke_start = (ma.x == -1.0 && x == -1.0);
+ bool is_stroke_end = (ma3.x == -1.0 && x == 1.0);
+
/* Mitter tangent vector. */
vec2 miter_tan = safe_normalize(line_adj + line);
float miter_dot = dot(miter_tan, line_adj);
/* Break corners after a certain angle to avoid really thick corners. */
const float miter_limit = 0.5; /* cos(60°) */
- bool miter_break = (miter_dot < miter_limit);
+ bool miter_break = (miter_dot < miter_limit) || is_stroke_start || is_stroke_end;
miter_tan = (miter_break) ? line : (miter_tan / miter_dot);
vec2 miter = rotate_90deg(miter_tan);
@@ -423,13 +426,11 @@ void stroke_vertex()
strokePt2.xy = ss2;
strokeThickness = thickness / gl_Position.w;
- /* Reminder: we packed the cap flag into the sign of stength and thickness sign. */
- bool is_stroke_start = (ma.x == -1.0 && x == -1.0 && strength1 > 0.0) || miter_break;
- bool is_stroke_end = (ma3.x == -1.0 && x == 1.0 && thickness1 > 0.0) || miter_break;
-
vec2 screen_ofs = miter * y;
- if (is_stroke_start || is_stroke_end) {
+ /* Reminder: we packed the cap flag into the sign of stength and thickness sign. */
+ if ((is_stroke_start && strength1 > 0.0) || (is_stroke_end && thickness1 > 0.0) ||
+ miter_break) {
screen_ofs += line * x;
}
More information about the Bf-blender-cvs
mailing list