diff options
author | Brian Paul <brianp@vmware.com> | 2010-02-19 11:12:20 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2010-02-19 11:12:20 -0700 |
commit | 3ef51b4bd98648f3141b3c6978db312f2f6c782e (patch) | |
tree | dd74a469659063ddf2db292e83ffda26d2bf7bc0 /progs | |
parent | e9df31fac95ccdd142e3bbce591fedff0da6caf9 (diff) | |
download | external_mesa3d-3ef51b4bd98648f3141b3c6978db312f2f6c782e.zip external_mesa3d-3ef51b4bd98648f3141b3c6978db312f2f6c782e.tar.gz external_mesa3d-3ef51b4bd98648f3141b3c6978db312f2f6c782e.tar.bz2 |
progs/tests: new zbitmap.c test to exercize Z testing of glBitmap
Diffstat (limited to 'progs')
-rw-r--r-- | progs/tests/.gitignore | 1 | ||||
-rw-r--r-- | progs/tests/Makefile | 1 | ||||
-rw-r--r-- | progs/tests/SConscript | 1 | ||||
-rw-r--r-- | progs/tests/zbitmap.c | 127 |
4 files changed, 130 insertions, 0 deletions
diff --git a/progs/tests/.gitignore b/progs/tests/.gitignore index 8b3e9f3..d905fab 100644 --- a/progs/tests/.gitignore +++ b/progs/tests/.gitignore @@ -104,6 +104,7 @@ vptorus vpwarpmesh yuvrect yuvsquare +zbitmap zcomp zdrawpix zreaddraw diff --git a/progs/tests/Makefile b/progs/tests/Makefile index d33415a..6c78abc 100644 --- a/progs/tests/Makefile +++ b/progs/tests/Makefile @@ -120,6 +120,7 @@ SOURCES = \ vpwarpmesh.c \ yuvrect.c \ yuvsquare.c \ + zbitmap.c \ zcomp.c \ zdrawpix.c \ zreaddraw.c diff --git a/progs/tests/SConscript b/progs/tests/SConscript index 04e4bdf..3580ba9 100644 --- a/progs/tests/SConscript +++ b/progs/tests/SConscript @@ -118,6 +118,7 @@ progs = [ 'vpwarpmesh', 'yuvrect', 'yuvsquare', + 'zbitmap', 'zcomp', 'zdrawpix', 'zreaddraw', diff --git a/progs/tests/zbitmap.c b/progs/tests/zbitmap.c new file mode 100644 index 0000000..45cb754 --- /dev/null +++ b/progs/tests/zbitmap.c @@ -0,0 +1,127 @@ +/* + * Test Z values of glBitmap. + * Brian Paul + * 19 Feb 2010 + */ + + +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <math.h> +#include <GL/glew.h> +#include <GL/glut.h> + + +static GLint Win = 0; + + +static void +PrintString(const char *s) +{ + while (*s) { + glutBitmapCharacter(GLUT_BITMAP_8_BY_13, (int) *s); + s++; + } +} + + +static void +Display(void) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(-3.0, 3.0, -3.0, 3.0, -2.0, 2.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + glColor3f(1, 1, 1); + glRasterPos2f(-2.0, 2.6); + PrintString("Z = -1.0"); + glRasterPos2f(-0.5, 2.6); + PrintString("Z = 0.0"); + glRasterPos2f(1.0, 2.6); + PrintString("Z = 1.0"); + + glColor3f(0, 0.4, 0.6); + glBegin(GL_QUADS); + glVertex3f(-2.0, -2.5, -1); + glVertex3f(-1.0, -2.5, -1); + glVertex3f(-1.0, 2.5, -1); + glVertex3f(-2.0, 2.5, -1); + + glVertex3f(-0.5, -2.5, 0); + glVertex3f(0.5, -2.5, 0); + glVertex3f(0.5, 2.5, 0); + glVertex3f(-0.5, 2.5, 0); + + glVertex3f(1.0, -2.5, 1); + glVertex3f(2.0, -2.5, 1); + glVertex3f(2.0, 2.5, 1); + glVertex3f(1.0, 2.5, 1); + glEnd(); + + glColor3f(1, 1, 1); + + glRasterPos3f(-2.0, -1, -1.0); + PrintString("This is a bitmap string drawn at z = -1.0"); + + glRasterPos3f(-2.0, 0, 0.0); + PrintString("This is a bitmap string drawn at z = 0.0"); + + glRasterPos3f(-2.0, 1, 1.0); + PrintString("This is a bitmap string drawn at z = 1.0"); + + glRasterPos3f(-1.5, -2.8, 0.0); + PrintString("GL_DEPTH_FUNC = GL_LEQUAL"); + + glutSwapBuffers(); +} + + +static void +Reshape(int width, int height) +{ + glViewport(0, 0, width, height); +} + + +static void +Key(unsigned char key, int x, int y) +{ + if (key == 27) { + glutDestroyWindow(Win); + exit(0); + } + glutPostRedisplay(); +} + + +static void +Init(void) +{ + glClearColor(0.25, 0.25, 0.25, 0.0); + glDepthFunc(GL_LEQUAL); + glEnable(GL_DEPTH_TEST); +} + + +int +main(int argc, char *argv[]) +{ + glutInitWindowSize(400, 400); + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); + Win = glutCreateWindow(argv[0]); + glewInit(); + glutReshapeFunc(Reshape); + glutKeyboardFunc(Key); + glutDisplayFunc(Display); + Init(); + glutMainLoop(); + return 0; +} |