diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-06-22 18:30:45 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-06-22 18:31:51 +0300 |
commit | 336a8f283f4b612b687dc26ea0c86a2c82bf514d (patch) | |
tree | 693d50dcf2a80ef78856dbc771a909db20be9c91 /source/blender/gpu/shaders/gpu_shader_2D_edituvs_edges_frag.glsl | |
parent | b175bb2503bd1c93464349c9c2a583b642de6d5f (diff) |
Fix T62917 UV editor: Edge overlay not shown when edge overlay type is Dash
Fix by changing the shader to always compute dash for uv and just change
dash size to something really big for other overlay types.
Diffstat (limited to 'source/blender/gpu/shaders/gpu_shader_2D_edituvs_edges_frag.glsl')
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_2D_edituvs_edges_frag.glsl | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_2D_edituvs_edges_frag.glsl b/source/blender/gpu/shaders/gpu_shader_2D_edituvs_edges_frag.glsl new file mode 100644 index 00000000000..108fc85c4a5 --- /dev/null +++ b/source/blender/gpu/shaders/gpu_shader_2D_edituvs_edges_frag.glsl @@ -0,0 +1,30 @@ + + +uniform float dashWidth; + +#ifdef SMOOTH_COLOR +noperspective in vec4 finalColor; +#else +flat in vec4 finalColor; +#endif + +noperspective in vec2 stipple_pos; +flat in vec2 stipple_start; + +out vec4 fragColor; + +void main() +{ + fragColor = finalColor; + + /* Avoid passing viewport size */ + vec2 dd = fwidth(stipple_pos); + + float dist = distance(stipple_start, stipple_pos) / max(dd.x, dd.y); + + if (fract(dist / dashWidth) > 0.5) { + fragColor.rgb = vec3(0.0); + } + + fragColor = blender_srgb_to_framebuffer_space(fragColor); +} |