diff options
Diffstat (limited to 'source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl b/source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl index e12c48453a7..0fdd874f1fd 100644 --- a/source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl +++ b/source/blender/draw/modes/shaders/armature_shape_outline_geom.glsl @@ -27,14 +27,26 @@ void emit_edge(vec2 edge_dir, vec2 hidden_dir, vec2 thick, bool is_persp) vec2 t = thick * (is_persp ? abs(vPos[1].z) : 1.0); gl_Position = pPos[1]; +#ifdef USE_WORLD_CLIP_PLANES + world_clip_planes_set_clip_distance(gl_in[1].gl_ClipDistance); +#endif EmitVertex(); gl_Position.xy += t * edge_dir; +#ifdef USE_WORLD_CLIP_PLANES + world_clip_planes_set_clip_distance(gl_in[1].gl_ClipDistance); +#endif EmitVertex(); t = thick * (is_persp ? abs(vPos[2].z) : 1.0); gl_Position = pPos[2]; +#ifdef USE_WORLD_CLIP_PLANES + world_clip_planes_set_clip_distance(gl_in[2].gl_ClipDistance); +#endif EmitVertex(); gl_Position.xy += t * edge_dir; +#ifdef USE_WORLD_CLIP_PLANES + world_clip_planes_set_clip_distance(gl_in[2].gl_ClipDistance); +#endif EmitVertex(); } @@ -44,6 +56,9 @@ void emit_corner(const int e, vec2 thick, bool is_persp) vec2 t = thick * (is_persp ? abs(vPos[e].z) : 1.0); gl_Position = pPos[e] + vec4(t * corner_dir, 0.0, 0.0); +#ifdef USE_WORLD_CLIP_PLANES + world_clip_planes_set_clip_distance(gl_in[e].gl_ClipDistance); +#endif EmitVertex(); } |