Mesa (master): progs/trivial: test user clip plane in tri-point-line-clipped.c
Brian Paul
brianp at kemper.freedesktop.org
Thu Jan 14 16:38:56 UTC 2010
Module: Mesa
Branch: master
Commit: 7fcfb7193107f192bcadccd50115a5216f98d567
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7fcfb7193107f192bcadccd50115a5216f98d567
Author: Brian Paul <brianp at vmware.com>
Date: Thu Jan 14 09:38:47 2010 -0700
progs/trivial: test user clip plane in tri-point-line-clipped.c
---
progs/trivial/tri-point-line-clipped.c | 35 +++++++++++++++++++++++++++----
1 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/progs/trivial/tri-point-line-clipped.c b/progs/trivial/tri-point-line-clipped.c
index eef926c..f8c1015 100644
--- a/progs/trivial/tri-point-line-clipped.c
+++ b/progs/trivial/tri-point-line-clipped.c
@@ -1,5 +1,10 @@
/**
- * Test frustum clipping w/ glPolygonMode LINE/POINT.
+ * Test frustum/user clipping w/ glPolygonMode LINE/POINT.
+ *
+ * The bottom/left and bottom/right verts are outside the frustum and clipped.
+ * The top vertex is clipped by a user clipping plane.
+ *
+ * A filled gray reference triangle is shown underneath the points/lines.
*/
#include <stdio.h>
@@ -11,7 +16,7 @@ static int win;
static void
-Tri(void)
+ColorTri(void)
{
glBegin(GL_TRIANGLES);
glColor3f(1, 0, 0); glVertex3f(-1.5, -0.8, 0.0);
@@ -22,18 +27,38 @@ Tri(void)
static void
+GrayTri(void)
+{
+ glColor3f(0.3, 0.3, 0.3);
+ glBegin(GL_TRIANGLES);
+ glVertex3f(-1.5, -0.8, 0.0);
+ glVertex3f( 1.5, -0.8, 0.0);
+ glVertex3f( 0.0, 0.9, 0.0);
+ glEnd();
+}
+
+
+static void
Draw(void)
{
+ static const GLdouble plane[4] = { 0, -1.0, 0, 0.5 };
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
glPointSize(13.0);
glLineWidth(5.0);
- glClear(GL_COLOR_BUFFER_BIT);
+ glClipPlane(GL_CLIP_PLANE0, plane);
+ glEnable(GL_CLIP_PLANE0);
+
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+ GrayTri();
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
- Tri();
+ ColorTri();
glPolygonMode(GL_FRONT_AND_BACK, GL_POINT);
- Tri();
+ ColorTri();
glutSwapBuffers();
}
More information about the mesa-commit
mailing list