2
* Copyright (C) 2009 Chia-I Wu <olv@0xlab.org>
5
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
6
* Copyright (C) 2008 Brian Paul All Rights Reserved.
7
* Copyright (C) 2008 Jakob Bornecrantz All Rights Reserved.
9
* Permission is hereby granted, free of charge, to any person obtaining a
10
* copy of this software and associated documentation files (the "Software"),
11
* to deal in the Software without restriction, including without limitation
12
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
13
* and/or sell copies of the Software, and to permit persons to whom the
14
* Software is furnished to do so, subject to the following conditions:
16
* The above copyright notice and this permission notice shall be included
17
* in all copies or substantial portions of the Software.
19
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22
* BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
23
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
24
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33
static GLfloat view_rotx = 0.0, view_roty = 0.0, view_rotz = 0.0;
35
static void tri_init()
37
glClearColor(0.4, 0.4, 0.4, 0.0);
40
static void tri_reshape(int width, int height)
42
GLfloat ar = (GLfloat) width / (GLfloat) height;
44
glViewport(0, 0, (GLint) width, (GLint) height);
46
glMatrixMode(GL_PROJECTION);
48
glFrustumf(-ar, ar, -1, 1, 5.0, 60.0);
50
glMatrixMode(GL_MODELVIEW);
52
glTranslatef(0.0, 0.0, -10.0);
55
static void tri_draw(void *data)
57
static const GLfloat verts[3][2] = {
62
static const GLfloat colors[3][4] = {
68
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
71
glRotatef(view_rotx, 1, 0, 0);
72
glRotatef(view_roty, 0, 1, 0);
73
glRotatef(view_rotz, 0, 0, 1);
76
glVertexPointer(2, GL_FLOAT, 0, verts);
77
glColorPointer(4, GL_FLOAT, 0, colors);
78
glEnableClientState(GL_VERTEX_ARRAY);
79
glEnableClientState(GL_COLOR_ARRAY);
81
glDrawArrays(GL_TRIANGLES, 0, 3);
83
glDisableClientState(GL_VERTEX_ARRAY);
84
glDisableClientState(GL_COLOR_ARRAY);
90
static void tri_run(void)
92
winsysRun(3.0, tri_draw, NULL);
95
int main(int argc, char *argv[])
98
GLboolean printInfo = GL_FALSE;
101
/* parse cmd line args */
102
for (i = 1; i < argc; i++) {
103
if (strcmp(argv[i], "-info") == 0) {
107
printf("Warning: unknown parameter: %s\n", argv[i]);
111
if (!winsysInitScreen())
113
winsysQueryScreenSize(&width, &height);
116
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
117
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
118
printf("GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR));
119
printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS));
123
tri_reshape(width, height);