[Piglit] [PATCH 3/4] glsl-1.30: Add test for clip distance

Paul Berry stereotype441 at gmail.com
Fri Jun 24 14:41:55 PDT 2011


Test all 6 elements of gl_ClipDistance[] by creating custom clip
planes that chop a rectangle into a hexagon, and then probe to verify
the hexagon's shape.
---
 .../execution/vs-clip-distance-01.shader_test      |   52 ++++++++++++++++++++
 1 files changed, 52 insertions(+), 0 deletions(-)
 create mode 100644 tests/spec/glsl-1.30/execution/vs-clip-distance-01.shader_test

diff --git a/tests/spec/glsl-1.30/execution/vs-clip-distance-01.shader_test b/tests/spec/glsl-1.30/execution/vs-clip-distance-01.shader_test
new file mode 100644
index 0000000..adb5ad2
--- /dev/null
+++ b/tests/spec/glsl-1.30/execution/vs-clip-distance-01.shader_test
@@ -0,0 +1,52 @@
+# [description]
+# Use all 6 gl_ClipDistance values to clip a rectangle to a hexagon shape.
+
+[require]
+GLSL >= 1.30
+
+[vertex shader]
+#version 130
+void main(void)
+{
+	gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+	gl_ClipDistance[0] = gl_Vertex.y - 0.25;
+	gl_ClipDistance[1] = gl_Vertex.y - gl_Vertex.x + 0.4;
+	gl_ClipDistance[2] = 1.4 - gl_Vertex.x - gl_Vertex.y;
+	gl_ClipDistance[3] = 0.75 - gl_Vertex.y;
+	gl_ClipDistance[4] = gl_Vertex.x - gl_Vertex.y + 0.4;
+	gl_ClipDistance[5] = gl_Vertex.x + gl_Vertex.y - 0.6;
+}
+
+[fragment shader]
+#version 130
+void main(void)
+{
+	gl_FragColor = vec4(1, 1, 1, 1);
+}
+
+[test]
+ortho 0 1 0 1
+enable GL_CLIP_PLANE0
+enable GL_CLIP_PLANE1
+enable GL_CLIP_PLANE2
+enable GL_CLIP_PLANE3
+enable GL_CLIP_PLANE4
+enable GL_CLIP_PLANE5
+draw rect 0.1 0.1 0.8 0.8
+
+# Test points inside each hexagon edge
+relative probe rgba (0.3, 0.4) (1.0, 1.0, 1.0, 1.0)
+relative probe rgba (0.5, 0.3) (1.0, 1.0, 1.0, 1.0)
+relative probe rgba (0.7, 0.4) (1.0, 1.0, 1.0, 1.0)
+relative probe rgba (0.7, 0.6) (1.0, 1.0, 1.0, 1.0)
+relative probe rgba (0.5, 0.7) (1.0, 1.0, 1.0, 1.0)
+relative probe rgba (0.3, 0.6) (1.0, 1.0, 1.0, 1.0)
+
+# Test points outside each hexagon edge
+relative probe rgba (0.2, 0.3) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.5, 0.2) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.8, 0.3) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.8, 0.7) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.5, 0.8) (0.0, 0.0, 0.0, 0.0)
+relative probe rgba (0.2, 0.7) (0.0, 0.0, 0.0, 0.0)
-- 
1.7.5.4



More information about the Piglit mailing list