~ubuntu-branches/ubuntu/quantal/mesa/quantal

« back to all changes in this revision

Viewing changes to progs/trivial/tri-dlist.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2007-02-21 12:44:07 UTC
  • mfrom: (1.2.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 22.
  • Revision ID: james.westby@ubuntu.com-20070221124407-rgcacs32mycrtadl
ImportĀ upstreamĀ versionĀ 6.5.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
3
 
 *
4
 
 * Permission to use, copy, modify, distribute, and sell this software and
5
 
 * its documentation for any purpose is hereby granted without fee, provided
6
 
 * that (i) the above copyright notices and this permission notice appear in
7
 
 * all copies of the software and related documentation, and (ii) the name of
8
 
 * Silicon Graphics may not be used in any advertising or
9
 
 * publicity relating to the software without the specific, prior written
10
 
 * permission of Silicon Graphics.
11
 
 *
12
 
 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
13
 
 * ANY KIND,
14
 
 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
15
 
 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
16
 
 *
17
 
 * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
18
 
 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
19
 
 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
20
 
 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
21
 
 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
22
 
 * OF THIS SOFTWARE.
23
 
 */
24
 
 
25
 
#include <stdio.h>
26
 
#include <string.h>
27
 
#include <stdlib.h>
28
 
#include <GL/glut.h>
29
 
 
30
 
 
31
 
#define CI_OFFSET_1 16
32
 
#define CI_OFFSET_2 32
33
 
 
34
 
 
35
 
GLenum doubleBuffer;
36
 
GLint list;
37
 
 
38
 
static void Init(void)
39
 
{
40
 
   fprintf(stderr, "GL_RENDERER   = %s\n", (char *) glGetString(GL_RENDERER));
41
 
   fprintf(stderr, "GL_VERSION    = %s\n", (char *) glGetString(GL_VERSION));
42
 
   fprintf(stderr, "GL_VENDOR     = %s\n", (char *) glGetString(GL_VENDOR));
43
 
 
44
 
   glClearColor(0.0, 0.0, 1.0, 0.0);
45
 
 
46
 
   list = glGenLists(1);
47
 
   glNewList(list, GL_COMPILE); 
48
 
   glBegin(GL_TRIANGLES);
49
 
/*    glColor3f(0,0,.7);  */
50
 
   glVertex3f( 0.9, -0.9, -30.0);
51
 
/*    glColor3f(.8,0,0);  */
52
 
   glVertex3f( 0.9,  0.9, -30.0);
53
 
/*    glColor3f(0,.9,0);  */
54
 
   glVertex3f(-0.9,  0.0, -30.0);
55
 
   glEnd();
56
 
   glEndList();
57
 
}
58
 
 
59
 
static void Reshape(int width, int height)
60
 
{
61
 
 
62
 
    glViewport(0, 0, (GLint)width, (GLint)height);
63
 
 
64
 
    glMatrixMode(GL_PROJECTION);
65
 
    glLoadIdentity();
66
 
    glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
67
 
    glMatrixMode(GL_MODELVIEW);
68
 
}
69
 
 
70
 
static void Key(unsigned char key, int x, int y)
71
 
{
72
 
 
73
 
    switch (key) {
74
 
      case 27:
75
 
        exit(1);
76
 
      default:
77
 
        return;
78
 
    }
79
 
 
80
 
    glutPostRedisplay();
81
 
}
82
 
 
83
 
 
84
 
 
85
 
 
86
 
static void Draw(void)
87
 
{
88
 
   glClear(GL_COLOR_BUFFER_BIT); 
89
 
 
90
 
   glColor3f(0,.9,0); 
91
 
   glCallList(list);
92
 
 
93
 
   glRotatef(45,0,0,1);
94
 
   glColor3f(1,0,1); 
95
 
   glCallList(list);
96
 
 
97
 
   glFlush();
98
 
 
99
 
   if (doubleBuffer) {
100
 
      glutSwapBuffers();
101
 
   }
102
 
}
103
 
 
104
 
static GLenum Args(int argc, char **argv)
105
 
{
106
 
    GLint i;
107
 
 
108
 
    doubleBuffer = GL_FALSE;
109
 
 
110
 
    for (i = 1; i < argc; i++) {
111
 
        if (strcmp(argv[i], "-sb") == 0) {
112
 
            doubleBuffer = GL_FALSE;
113
 
        } else if (strcmp(argv[i], "-db") == 0) {
114
 
            doubleBuffer = GL_TRUE;
115
 
        } else {
116
 
            fprintf(stderr, "%s (Bad option).\n", argv[i]);
117
 
            return GL_FALSE;
118
 
        }
119
 
    }
120
 
    return GL_TRUE;
121
 
}
122
 
 
123
 
int main(int argc, char **argv)
124
 
{
125
 
    GLenum type;
126
 
 
127
 
    glutInit(&argc, argv);
128
 
 
129
 
    if (Args(argc, argv) == GL_FALSE) {
130
 
        exit(1);
131
 
    }
132
 
 
133
 
    glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
134
 
 
135
 
    type = GLUT_RGB;
136
 
    type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
137
 
    glutInitDisplayMode(type);
138
 
 
139
 
    if (glutCreateWindow("First Tri") == GL_FALSE) {
140
 
        exit(1);
141
 
    }
142
 
 
143
 
    Init();
144
 
 
145
 
    glutReshapeFunc(Reshape);
146
 
    glutKeyboardFunc(Key);
147
 
    glutDisplayFunc(Draw);
148
 
    glutMainLoop();
149
 
        return 0;
150
 
}