Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-01-24 10:27:26 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-01-24 10:28:21 +0300
commitaa1b77dccbda5b57f857d27ed8f7d46544c82503 (patch)
treecccdb399a80f1a153604583549bc0d9061b5a060 /source/blender/draw/modes/shaders/object_outline_prepass_geom.glsl
parent0b37399cbe241cb6c99cd4b758d5701e2791c7e3 (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.glsl16
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();
}