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