diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-05-29 12:14:10 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-05-29 12:59:40 +0300 |
commit | 1d2b89304ac33993c29f53ebdd41cc84056982d1 (patch) | |
tree | 4f06b12b57a0011c2bfef5da907c9eadf4d7d0e7 /source/blender/draw/engines/overlay/shaders/extra_wire_vert.glsl | |
parent | ff1040c6fefc4c54fef243635a915edf3f40355a (diff) |
Fix T77130: Visually broken/stepped wireframe in object mode (regression)
Create a new shader for the selection fix.
Differential Revision: https://developer.blender.org/D7873
Diffstat (limited to 'source/blender/draw/engines/overlay/shaders/extra_wire_vert.glsl')
-rw-r--r-- | source/blender/draw/engines/overlay/shaders/extra_wire_vert.glsl | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/extra_wire_vert.glsl b/source/blender/draw/engines/overlay/shaders/extra_wire_vert.glsl index 9598f8b2814..0fbf9ba8137 100644 --- a/source/blender/draw/engines/overlay/shaders/extra_wire_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/extra_wire_vert.glsl @@ -17,10 +17,12 @@ void main() vec3 world_pos = point_object_to_world(pos); gl_Position = point_world_to_ndc(world_pos); +#ifdef SELECT_EDGES /* HACK: to avoid loosing sub pixel object in selections, we add a bit of randomness to the * wire to at least create one fragment that will pass the occlusion query. */ /* TODO(fclem) Limit this workaround to selection. It's not very noticeable but still... */ gl_Position.xy += sizeViewportInv.xy * gl_Position.w * ((gl_VertexID % 2 == 0) ? -1.0 : 1.0); +#endif stipple_coord = stipple_start = screen_position(gl_Position); @@ -39,6 +41,10 @@ void main() } #endif +#ifdef SELECT_EDGES + finalColor.a = 0.0; /* No Stipple */ +#endif + #ifdef USE_WORLD_CLIP_PLANES world_clip_planes_calc_clip_distance(world_pos); #endif |