diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-01-24 10:27:26 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-01-24 10:28:21 +0300 |
commit | aa1b77dccbda5b57f857d27ed8f7d46544c82503 (patch) | |
tree | cccdb399a80f1a153604583549bc0d9061b5a060 /source/blender/draw/modes/shaders/object_outline_prepass_geom.glsl | |
parent | 0b37399cbe241cb6c99cd4b758d5701e2791c7e3 (diff) |
DRW: support clipping for object outlines
Diffstat (limited to 'source/blender/draw/modes/shaders/object_outline_prepass_geom.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/object_outline_prepass_geom.glsl | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/source/blender/draw/modes/shaders/object_outline_prepass_geom.glsl b/source/blender/draw/modes/shaders/object_outline_prepass_geom.glsl index 1fa0a9137c0..85da0f25654 100644 --- a/source/blender/draw/modes/shaders/object_outline_prepass_geom.glsl +++ b/source/blender/draw/modes/shaders/object_outline_prepass_geom.glsl @@ -7,6 +7,14 @@ uniform mat4 ProjectionMatrix; in vec4 pPos[]; in vec3 vPos[]; +void vert_from_gl_in(int v) +{ + gl_Position = pPos[v]; +#ifdef USE_WORLD_CLIP_PLANES + world_clip_planes_set_clip_distance(gl_in[v].gl_ClipDistance); +#endif +} + void main() { bool is_persp = (ProjectionMatrix[3][3] == 0.0); @@ -34,7 +42,11 @@ void main() // if (dot(n0, v13) > 0.01) // return; - gl_Position = pPos[1]; EmitVertex(); - gl_Position = pPos[2]; EmitVertex(); + vert_from_gl_in(1); + EmitVertex(); + + vert_from_gl_in(2); + EmitVertex(); + EndPrimitive(); } |