From 8df4c3a21fe51280956e35d09ebacc9791b6a613 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 5 Sep 2008 12:59:40 -0600 Subject: press 'f' to cycle through depth test funcs --- progs/trivial/tri-z.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/progs/trivial/tri-z.c b/progs/trivial/tri-z.c index ae25900a35..c8296a9704 100644 --- a/progs/trivial/tri-z.c +++ b/progs/trivial/tri-z.c @@ -37,9 +37,27 @@ #include #include +#include static int leftFirst = GL_TRUE; +static struct { GLenum func; const char *str; } funcs[] = + { + { GL_LESS, "GL_LESS" }, + { GL_LEQUAL, "GL_LEQUAL" }, + { GL_GREATER, "GL_GREATER" }, + { GL_GEQUAL, "GL_GEQUAL" }, + { GL_EQUAL, "GL_EQUAL" }, + { GL_NOTEQUAL, "GL_NOTEQUAL" }, + { GL_ALWAYS, "GL_ALWAYS" }, + { GL_NEVER, "GL_NEVER" }, + }; + +#define NUM_FUNCS (sizeof(funcs) / sizeof(funcs[0])) + +static int curFunc = 0; + + static void init(void) { glEnable(GL_DEPTH_TEST); @@ -72,6 +90,9 @@ void display(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + printf("GL_DEPTH_FUNC = %s\n", funcs[curFunc].str); + glDepthFunc(funcs[curFunc].func); + if (leftFirst) { drawLeftTriangle(); drawRightTriangle(); @@ -99,6 +120,11 @@ void reshape(int w, int h) void keyboard(unsigned char key, int x, int y) { switch (key) { + case 'f': + case 'F': + curFunc = (curFunc + 1) % NUM_FUNCS; + glutPostRedisplay(); + break; case 't': case 'T': leftFirst = !leftFirst; -- cgit v1.2.3