press 'f' to cycle through depth test funcs
This commit is contained in:
parent
eb5b16d278
commit
8df4c3a21f
|
@ -37,9 +37,27 @@
|
||||||
|
|
||||||
#include <GL/glut.h>
|
#include <GL/glut.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
static int leftFirst = GL_TRUE;
|
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)
|
static void init(void)
|
||||||
{
|
{
|
||||||
glEnable(GL_DEPTH_TEST);
|
glEnable(GL_DEPTH_TEST);
|
||||||
|
@ -72,6 +90,9 @@ void display(void)
|
||||||
{
|
{
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
|
|
||||||
|
printf("GL_DEPTH_FUNC = %s\n", funcs[curFunc].str);
|
||||||
|
glDepthFunc(funcs[curFunc].func);
|
||||||
|
|
||||||
if (leftFirst) {
|
if (leftFirst) {
|
||||||
drawLeftTriangle();
|
drawLeftTriangle();
|
||||||
drawRightTriangle();
|
drawRightTriangle();
|
||||||
|
@ -99,6 +120,11 @@ void reshape(int w, int h)
|
||||||
void keyboard(unsigned char key, int x, int y)
|
void keyboard(unsigned char key, int x, int y)
|
||||||
{
|
{
|
||||||
switch (key) {
|
switch (key) {
|
||||||
|
case 'f':
|
||||||
|
case 'F':
|
||||||
|
curFunc = (curFunc + 1) % NUM_FUNCS;
|
||||||
|
glutPostRedisplay();
|
||||||
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
case 'T':
|
case 'T':
|
||||||
leftFirst = !leftFirst;
|
leftFirst = !leftFirst;
|
||||||
|
|
Loading…
Reference in New Issue