1 | /*
|
---|
2 | * Copyright (c) 1993-1997, Silicon Graphics, Inc.
|
---|
3 | * ALL RIGHTS RESERVED
|
---|
4 | * Permission to use, copy, modify, and distribute this software for
|
---|
5 | * any purpose and without fee is hereby granted, provided that the above
|
---|
6 | * copyright notice appear in all copies and that both the copyright notice
|
---|
7 | * and this permission notice appear in supporting documentation, and that
|
---|
8 | * the name of Silicon Graphics, Inc. not be used in advertising
|
---|
9 | * or publicity pertaining to distribution of the software without specific,
|
---|
10 | * written prior permission.
|
---|
11 | *
|
---|
12 | * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
|
---|
13 | * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
|
---|
14 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
|
---|
15 | * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
---|
16 | * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
|
---|
17 | * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
|
---|
18 | * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
|
---|
19 | * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
|
---|
20 | * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
|
---|
21 | * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
|
---|
22 | * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
|
---|
23 | * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
|
---|
24 | *
|
---|
25 | * US Government Users Restricted Rights
|
---|
26 | * Use, duplication, or disclosure by the Government is subject to
|
---|
27 | * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
|
---|
28 | * (c)(1)(ii) of the Rights in Technical Data and Computer Software
|
---|
29 | * clause at DFARS 252.227-7013 and/or in similar or successor
|
---|
30 | * clauses in the FAR or the DOD or NASA FAR Supplement.
|
---|
31 | * Unpublished-- rights reserved under the copyright laws of the
|
---|
32 | * United States. Contractor/manufacturer is Silicon Graphics,
|
---|
33 | * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
|
---|
34 | *
|
---|
35 | * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
|
---|
36 | */
|
---|
37 |
|
---|
38 | /*
|
---|
39 | * cube.c
|
---|
40 | * This program demonstrates a single modeling transformation,
|
---|
41 | * glScalef() and a single viewing transformation, gluLookAt().
|
---|
42 | * A wireframe cube is rendered.
|
---|
43 | */
|
---|
44 | #include <GL/glut.h>
|
---|
45 | #include <stdlib.h>
|
---|
46 |
|
---|
47 | void init(void)
|
---|
48 | {
|
---|
49 | glClearColor (0.0, 0.0, 0.0, 0.0);
|
---|
50 | glShadeModel (GL_FLAT);
|
---|
51 | }
|
---|
52 |
|
---|
53 | void display(void)
|
---|
54 | {
|
---|
55 | glClear (GL_COLOR_BUFFER_BIT);
|
---|
56 | glColor3f (1.0, 1.0, 1.0);
|
---|
57 | glLoadIdentity (); /* clear the matrix */
|
---|
58 | /* viewing transformation */
|
---|
59 | gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
|
---|
60 | glScalef (1.0, 2.0, 1.0); /* modeling transformation */
|
---|
61 | glutWireCube (1.0);
|
---|
62 | glFlush ();
|
---|
63 | }
|
---|
64 |
|
---|
65 | void reshape (int w, int h)
|
---|
66 | {
|
---|
67 | glViewport (0, 0, (GLsizei) w, (GLsizei) h);
|
---|
68 | glMatrixMode (GL_PROJECTION);
|
---|
69 | glLoadIdentity ();
|
---|
70 | glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
|
---|
71 | glMatrixMode (GL_MODELVIEW);
|
---|
72 | }
|
---|
73 |
|
---|
74 | /* ARGSUSED1 */
|
---|
75 | void keyboard(unsigned char key, int x, int y)
|
---|
76 | {
|
---|
77 | switch (key) {
|
---|
78 | case 27:
|
---|
79 | exit(0);
|
---|
80 | break;
|
---|
81 | }
|
---|
82 | }
|
---|
83 |
|
---|
84 | int main(int argc, char** argv)
|
---|
85 | {
|
---|
86 | glutInit(&argc, argv);
|
---|
87 | glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
|
---|
88 | glutInitWindowSize (500, 500);
|
---|
89 | glutInitWindowPosition (100, 100);
|
---|
90 | glutCreateWindow (argv[0]);
|
---|
91 | init ();
|
---|
92 | glutDisplayFunc(display);
|
---|
93 | glutReshapeFunc(reshape);
|
---|
94 | glutKeyboardFunc(keyboard);
|
---|
95 | glutMainLoop();
|
---|
96 | return 0;
|
---|
97 | }
|
---|