summaryrefslogtreecommitdiff
path: root/progs/trivial/flat-clip.c
diff options
context:
space:
mode:
Diffstat (limited to 'progs/trivial/flat-clip.c')
-rw-r--r--progs/trivial/flat-clip.c151
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 dbe17a342e..0000000000
--- 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;
-}