diff options
Diffstat (limited to 'progs/trivial/flat-clip.c')
-rw-r--r-- | progs/trivial/flat-clip.c | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/progs/trivial/flat-clip.c b/progs/trivial/flat-clip.c deleted file mode 100644 index dbe17a342eb..00000000000 --- a/progs/trivial/flat-clip.c +++ /dev/null @@ -1,151 +0,0 @@ -/** - * Test flat shading and clipping. - * - * Brian Paul - * 30 August 2007 - */ - - -#include <stdio.h> -#include <stdlib.h> -#include <math.h> -#include <GL/glut.h> - -static int Win; -static GLfloat Scale = 2.0, Zrot = 50; -static GLenum Mode = GL_LINE_LOOP; -static GLboolean Smooth = 0; -static GLenum PolygonMode = GL_FILL; - - -static void -Draw(void) -{ - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - if (Smooth) - glShadeModel(GL_SMOOTH); - else - glShadeModel(GL_FLAT); - - glPushMatrix(); - glScalef(Scale, Scale, 1); - glRotatef(Zrot, 0, 0, 1); - - glPolygonMode(GL_FRONT_AND_BACK, PolygonMode); - - glBegin(Mode); - glColor3f(1, 0, 0); - glVertex2f(-1, -1); - glColor3f(0, 1, 0); - glVertex2f( 2, -1); - glColor3f(0, 0, 1); - glVertex2f( 0, 1); - glEnd(); - - glPushMatrix(); - glScalef(0.9, 0.9, 1); - glBegin(Mode); - glColor3f(1, 0, 0); - glVertex2f( 0, 1); - - glColor3f(0, 0, 1); - glVertex2f( 2, -1); - - glColor3f(0, 1, 0); - glVertex2f(-1, -1); - - glEnd(); - glPopMatrix(); - - glPopMatrix(); - - glutSwapBuffers(); -} - - -static void -Reshape(int width, int height) -{ - glViewport(0, 0, width, height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 25.0); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -15.0); -} - - -static void -Key(unsigned char key, int x, int y) -{ - (void) x; - (void) y; - switch (key) { - case 'p': - if (Mode == GL_TRIANGLES) - Mode = GL_LINE_LOOP; - else - Mode = GL_TRIANGLES; - break; - case 'f': - if (PolygonMode == GL_POINT) - PolygonMode = GL_LINE; - else if (PolygonMode == GL_LINE) - PolygonMode = GL_FILL; - else - PolygonMode = GL_POINT; - printf("PolygonMode = 0x%x\n", PolygonMode); - break; - case 'r': - Zrot -= 5.0; - break; - case 'R': - Zrot += 5.0; - break; - case 'z': - Scale *= 1.1; - break; - case 'Z': - Scale /= 1.1; - break; - case 's': - Smooth = !Smooth; - break; - case 27: - glutDestroyWindow(Win); - exit(0); - break; - } - glutPostRedisplay(); -} - - -static void -Init(void) -{ - printf("Usage:\n"); - printf(" z/Z: change triangle size\n"); - printf(" r/R: rotate\n"); - printf(" p: toggle line/fill mode\n"); - printf(" s: toggle smooth/flat shading\n"); - printf(" f: switch polygon fill mode\n"); -} - - -int -main(int argc, char *argv[]) -{ - glutInit(&argc, argv); - glutInitWindowPosition(0, 0); - glutInitWindowSize(400, 400); - glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); - Win = glutCreateWindow(argv[0]); - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - Init(); - glutMainLoop(); - return 0; -} |