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

« back to all changes in this revision

Viewing changes to progs/trivial/point-wide.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
 
 
37
 
static void Init(void)
38
 
{
39
 
   fprintf(stderr, "GL_RENDERER   = %s\n", (char *) glGetString(GL_RENDERER));
40
 
   fprintf(stderr, "GL_VERSION    = %s\n", (char *) glGetString(GL_VERSION));
41
 
   fprintf(stderr, "GL_VENDOR     = %s\n", (char *) glGetString(GL_VENDOR));
42
 
 
43
 
    glClearColor(0.0, 0.0, 1.0, 0.0);
44
 
}
45
 
 
46
 
static void Reshape(int width, int height)
47
 
{
48
 
 
49
 
    glViewport(0, 0, (GLint)width, (GLint)height);
50
 
 
51
 
    glMatrixMode(GL_PROJECTION);
52
 
    glLoadIdentity();
53
 
    glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
54
 
    glMatrixMode(GL_MODELVIEW);
55
 
}
56
 
 
57
 
static void Key(unsigned char key, int x, int y)
58
 
{
59
 
 
60
 
    switch (key) {
61
 
      case 27:
62
 
        exit(1);
63
 
      default:
64
 
        return;
65
 
    }
66
 
 
67
 
    glutPostRedisplay();
68
 
}
69
 
 
70
 
static void Draw(void)
71
 
{
72
 
   glClear(GL_COLOR_BUFFER_BIT); 
73
 
 
74
 
   glPointSize(8.0);
75
 
 
76
 
   glBegin(GL_POINTS);
77
 
   glColor3f(1,0,0); 
78
 
   glVertex3f( 0.9, -0.9, -30.0);
79
 
   glColor3f(1,1,0); 
80
 
   glVertex3f( 0.9,  0.9, -30.0);
81
 
   glColor3f(1,0,1); 
82
 
   glVertex3f(-0.9,  0.9, -30.0);
83
 
   glColor3f(0,1,1); 
84
 
   glVertex3f(-0.9,  -0.9, -30.0);
85
 
   glEnd();
86
 
 
87
 
   glFlush();
88
 
 
89
 
   if (doubleBuffer) {
90
 
      glutSwapBuffers();
91
 
   }
92
 
}
93
 
 
94
 
static GLenum Args(int argc, char **argv)
95
 
{
96
 
    GLint i;
97
 
 
98
 
    doubleBuffer = GL_FALSE;
99
 
 
100
 
    for (i = 1; i < argc; i++) {
101
 
        if (strcmp(argv[i], "-sb") == 0) {
102
 
            doubleBuffer = GL_FALSE;
103
 
        } else if (strcmp(argv[i], "-db") == 0) {
104
 
            doubleBuffer = GL_TRUE;
105
 
        } else {
106
 
            fprintf(stderr, "%s (Bad option).\n", argv[i]);
107
 
            return GL_FALSE;
108
 
        }
109
 
    }
110
 
    return GL_TRUE;
111
 
}
112
 
 
113
 
int main(int argc, char **argv)
114
 
{
115
 
    GLenum type;
116
 
 
117
 
    glutInit(&argc, argv);
118
 
 
119
 
    if (Args(argc, argv) == GL_FALSE) {
120
 
        exit(1);
121
 
    }
122
 
 
123
 
    glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
124
 
 
125
 
    type = GLUT_RGB;
126
 
    type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
127
 
    glutInitDisplayMode(type);
128
 
 
129
 
    if (glutCreateWindow("First Tri") == GL_FALSE) {
130
 
        exit(1);
131
 
    }
132
 
 
133
 
    Init();
134
 
 
135
 
    glutReshapeFunc(Reshape);
136
 
    glutKeyboardFunc(Key);
137
 
    glutDisplayFunc(Draw);
138
 
    glutMainLoop();
139
 
        return 0;
140
 
}