Module: Demos Branch: master Commit: b2d8a968d7bfac141715865c3dbbf4b7d27c284d URL: http://cgit.freedesktop.org/mesa/demos/commit/?id=b2d8a968d7bfac141715865c3dbbf4b7d27c284d
Author: Brian Paul <[email protected]> Date: Wed Jan 9 09:50:26 2013 -0800 trivial/tri-z-clip: test near/far triangle clipping --- src/trivial/CMakeLists.txt | 1 + src/trivial/Makefile.am | 1 + src/trivial/tri-z-clip.c | 77 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 0 deletions(-) diff --git a/src/trivial/CMakeLists.txt b/src/trivial/CMakeLists.txt index 267fa23..ed6445b 100644 --- a/src/trivial/CMakeLists.txt +++ b/src/trivial/CMakeLists.txt @@ -172,6 +172,7 @@ set (targets tri-viewport tri-z-9 tri-z + tri-z-clip tri-z-eq vbo-drawarrays vbo-drawarrays-2101010 diff --git a/src/trivial/Makefile.am b/src/trivial/Makefile.am index 40e8d0c..2543068 100644 --- a/src/trivial/Makefile.am +++ b/src/trivial/Makefile.am @@ -184,6 +184,7 @@ bin_PROGRAMS = \ tri-viewport \ tri-z-9 \ tri-z \ + tri-z-clip \ tri-z-eq \ vbo-drawarrays \ vbo-drawarrays-2101010 \ diff --git a/src/trivial/tri-z-clip.c b/src/trivial/tri-z-clip.c new file mode 100644 index 0000000..c96b875 --- /dev/null +++ b/src/trivial/tri-z-clip.c @@ -0,0 +1,77 @@ +/** Test Z-axis clipping of a triangle */ + + +#include <stdio.h> +#include <stdlib.h> +#include "glut_wrap.h" + + +static GLboolean ztest = GL_FALSE; + + +static void +Reshape(int width, int height) +{ + glViewport(0, 0, width, height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(-1.0, 1.0, -1.0, 1.0, 2.0, 10.0); + glMatrixMode(GL_MODELVIEW); + glTranslatef(0, 0, -6.0); +} + + +static void +Key(unsigned char key, int x, int y) +{ + if (key == 'z') { + ztest = !ztest; + printf("ztest = %d\n", ztest); + fflush(stdout); + } + else if (key == 27) { + exit(1); + } + glutPostRedisplay(); +} + + +static void +Draw(void) +{ + glClearColor(0.5, 0.5, 0.5, 1.0); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + if (ztest) + glEnable(GL_DEPTH_TEST); + else + glDisable(GL_DEPTH_TEST); + + glBegin(GL_TRIANGLES); + glColor3f(0, 0, 1); + glVertex3f(-0.5, 0.7, -10.0); + glColor3f(1, 0, 0); + glVertex3f(-0.5, -0.7, -10.0); + glColor3f(0, 1, 0); + glVertex3f(1.0, 0.0, 12.0); + glEnd(); + + glutSwapBuffers(); +} + + +int +main(int argc, char **argv) +{ + glutInit(&argc, argv); + glutInitWindowPosition(0, 0); + glutInitWindowSize(250, 250); + glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); + glutCreateWindow(*argv); + + glutReshapeFunc(Reshape); + glutKeyboardFunc(Key); + glutDisplayFunc(Draw); + glutMainLoop(); + return 0; +} _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
