@@ -15,6 +15,7 @@ SOURCES = \ | |||
clear-fbo.c \ | |||
clear-scissor.c \ | |||
clear-undefined.c \ | |||
clear-repeat.c \ | |||
clear.c \ | |||
dlist-dangling.c \ | |||
dlist-edgeflag-dangling.c \ | |||
@@ -92,8 +93,12 @@ SOURCES = \ | |||
tri-flat-clip.c \ | |||
tri-flat.c \ | |||
tri-fog.c \ | |||
tri-fp.c \ | |||
tri-fp-const-imm.c \ | |||
tri-lit.c \ | |||
tri-mask-tri.c \ | |||
tri-query.c \ | |||
tri-repeat.c \ | |||
tri-scissor-tri.c \ | |||
tri-stencil.c \ | |||
tri-tex.c \ | |||
@@ -102,6 +107,8 @@ SOURCES = \ | |||
tri-unfilled-edgeflag.c \ | |||
tri-unfilled-clip.c \ | |||
tri-unfilled-smooth.c \ | |||
tri-unfilled-tri.c \ | |||
tri-unfilled-tri-lit.c \ | |||
tri-unfilled-userclip-stip.c \ | |||
tri-unfilled-userclip.c \ | |||
tri-unfilled.c \ |
@@ -0,0 +1,111 @@ | |||
/* | |||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. | |||
* | |||
* Permission to use, copy, modify, distribute, and sell this software and | |||
* its documentation for any purpose is hereby granted without fee, provided | |||
* that (i) the above copyright notices and this permission notice appear in | |||
* all copies of the software and related documentation, and (ii) the name of | |||
* Silicon Graphics may not be used in any advertising or | |||
* publicity relating to the software without the specific, prior written | |||
* permission of Silicon Graphics. | |||
* | |||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF | |||
* ANY KIND, | |||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY | |||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
* | |||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR | |||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, | |||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | |||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF | |||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE | |||
* OF THIS SOFTWARE. | |||
*/ | |||
#include <stdio.h> | |||
#include <string.h> | |||
#include <stdlib.h> | |||
#include <math.h> | |||
#include <GL/glut.h> | |||
#define CI_OFFSET_1 16 | |||
#define CI_OFFSET_2 32 | |||
static void Init(void) | |||
{ | |||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); | |||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); | |||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); | |||
glClearColor(0.3, 0.1, 0.3, 0.0); | |||
} | |||
static void Reshape(int width, int height) | |||
{ | |||
glViewport(0, 0, (GLint)width, (GLint)height); | |||
glMatrixMode(GL_PROJECTION); | |||
glLoadIdentity(); | |||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); | |||
glMatrixMode(GL_MODELVIEW); | |||
} | |||
static void Key(unsigned char key, int x, int y) | |||
{ | |||
switch (key) { | |||
case 27: | |||
exit(0); | |||
default: | |||
glutPostRedisplay(); | |||
return; | |||
} | |||
} | |||
static void Draw(void) | |||
{ | |||
static float f = 0; | |||
while (1) { | |||
f += .1; | |||
glClearColor((sin(f)+1)/2.0,(cos(f)+1)/2.0,0.5,1); | |||
glClear(GL_COLOR_BUFFER_BIT); | |||
glutSwapBuffers(); | |||
} | |||
glutPostRedisplay(); | |||
} | |||
static GLenum Args(int argc, char **argv) | |||
{ | |||
return GL_TRUE; | |||
} | |||
int main(int argc, char **argv) | |||
{ | |||
GLenum type; | |||
glutInit(&argc, argv); | |||
if (Args(argc, argv) == GL_FALSE) { | |||
exit(1); | |||
} | |||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250); | |||
type = GLUT_RGB | GLUT_ALPHA; | |||
type |= GLUT_DOUBLE; | |||
glutInitDisplayMode(type); | |||
if (glutCreateWindow("First Tri") == GL_FALSE) { | |||
exit(1); | |||
} | |||
Init(); | |||
glutReshapeFunc(Reshape); | |||
glutKeyboardFunc(Key); | |||
glutDisplayFunc(Draw); | |||
glutMainLoop(); | |||
return 0; | |||
} |
@@ -0,0 +1,169 @@ | |||
/* | |||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. | |||
* | |||
* Permission to use, copy, modify, distribute, and sell this software and | |||
* its documentation for any purpose is hereby granted without fee, provided | |||
* that (i) the above copyright notices and this permission notice appear in | |||
* all copies of the software and related documentation, and (ii) the name of | |||
* Silicon Graphics may not be used in any advertising or | |||
* publicity relating to the software without the specific, prior written | |||
* permission of Silicon Graphics. | |||
* | |||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF | |||
* ANY KIND, | |||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY | |||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
* | |||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR | |||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, | |||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | |||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF | |||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE | |||
* OF THIS SOFTWARE. | |||
*/ | |||
#include <stdio.h> | |||
#include <string.h> | |||
#include <stdlib.h> | |||
#define GL_GLEXT_PROTOTYPES | |||
#include <GL/glut.h> | |||
#define CI_OFFSET_1 16 | |||
#define CI_OFFSET_2 32 | |||
GLenum doubleBuffer; | |||
static void Init(void) | |||
{ | |||
GLint errno; | |||
GLuint prognum; | |||
static const char *prog1 = | |||
"!!ARBfp1.0\n" | |||
"TEMP R1;\n" | |||
"MOV R1, state.material.emission;\n" | |||
"MUL R1, R1, {0.9}.x;\n" | |||
"MOV result.color, R1;\n" | |||
"END\n"; | |||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); | |||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); | |||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); | |||
/* Setup the fragment program */ | |||
glGenProgramsARB(1, &prognum); | |||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, prognum); | |||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, | |||
strlen(prog1), (const GLubyte *)prog1); | |||
errno = glGetError(); | |||
printf("glGetError = 0x%x\n", errno); | |||
if (errno != GL_NO_ERROR) { | |||
GLint errorpos; | |||
glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos); | |||
printf("errorpos: %d\n", errorpos); | |||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n", | |||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB)); | |||
} | |||
glEnable(GL_FRAGMENT_PROGRAM_ARB); | |||
glClearColor(0.0, 0.0, 1.0, 0.0); | |||
} | |||
static void Reshape(int width, int height) | |||
{ | |||
glViewport(0, 0, (GLint)width, (GLint)height); | |||
glMatrixMode(GL_PROJECTION); | |||
glLoadIdentity(); | |||
/* glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); */ | |||
glMatrixMode(GL_MODELVIEW); | |||
} | |||
static void Key(unsigned char key, int x, int y) | |||
{ | |||
switch (key) { | |||
case 27: | |||
exit(1); | |||
default: | |||
return; | |||
} | |||
glutPostRedisplay(); | |||
} | |||
static void Draw(void) | |||
{ | |||
glClear(GL_COLOR_BUFFER_BIT); | |||
glBegin(GL_TRIANGLES); | |||
glColor3f(0,0,.7); | |||
glTexCoord3f(0,0,.7); | |||
glVertex3f( 0.9, -0.9, -0.0); | |||
glColor3f(.8,0,0); | |||
glTexCoord3f(.8,0,0); | |||
glVertex3f( 0.9, 0.9, -0.0); | |||
glColor3f(0,.9,0); | |||
glTexCoord3f(0,.9,0); | |||
glVertex3f(-0.9, 0.0, -0.0); | |||
glEnd(); | |||
glFlush(); | |||
if (doubleBuffer) { | |||
glutSwapBuffers(); | |||
} | |||
} | |||
static GLenum Args(int argc, char **argv) | |||
{ | |||
GLint i; | |||
doubleBuffer = GL_FALSE; | |||
for (i = 1; i < argc; i++) { | |||
if (strcmp(argv[i], "-sb") == 0) { | |||
doubleBuffer = GL_FALSE; | |||
} else if (strcmp(argv[i], "-db") == 0) { | |||
doubleBuffer = GL_TRUE; | |||
} else { | |||
fprintf(stderr, "%s (Bad option).\n", argv[i]); | |||
return GL_FALSE; | |||
} | |||
} | |||
return GL_TRUE; | |||
} | |||
int main(int argc, char **argv) | |||
{ | |||
GLenum type; | |||
glutInit(&argc, argv); | |||
if (Args(argc, argv) == GL_FALSE) { | |||
exit(1); | |||
} | |||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250); | |||
type = GLUT_RGB | GLUT_ALPHA; | |||
type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; | |||
glutInitDisplayMode(type); | |||
if (glutCreateWindow("First Tri") == GL_FALSE) { | |||
exit(1); | |||
} | |||
Init(); | |||
glutReshapeFunc(Reshape); | |||
glutKeyboardFunc(Key); | |||
glutDisplayFunc(Draw); | |||
glutMainLoop(); | |||
return 0; | |||
} |
@@ -0,0 +1,167 @@ | |||
/* | |||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. | |||
* | |||
* Permission to use, copy, modify, distribute, and sell this software and | |||
* its documentation for any purpose is hereby granted without fee, provided | |||
* that (i) the above copyright notices and this permission notice appear in | |||
* all copies of the software and related documentation, and (ii) the name of | |||
* Silicon Graphics may not be used in any advertising or | |||
* publicity relating to the software without the specific, prior written | |||
* permission of Silicon Graphics. | |||
* | |||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF | |||
* ANY KIND, | |||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY | |||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
* | |||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR | |||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, | |||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | |||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF | |||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE | |||
* OF THIS SOFTWARE. | |||
*/ | |||
#include <stdio.h> | |||
#include <string.h> | |||
#include <stdlib.h> | |||
#define GL_GLEXT_PROTOTYPES | |||
#include <GL/glut.h> | |||
#define CI_OFFSET_1 16 | |||
#define CI_OFFSET_2 32 | |||
GLenum doubleBuffer; | |||
static void Init(void) | |||
{ | |||
GLint errno; | |||
GLuint prognum; | |||
static const char *prog1 = | |||
"!!ARBfp1.0\n" | |||
"MOV result.color, fragment.texcoord[1];\n" | |||
// "MOV result.color, fragment.color;\n" | |||
"END\n"; | |||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); | |||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); | |||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); | |||
/* Setup the fragment program */ | |||
glGenProgramsARB(1, &prognum); | |||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, prognum); | |||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB, | |||
strlen(prog1), (const GLubyte *)prog1); | |||
errno = glGetError(); | |||
printf("glGetError = 0x%x\n", errno); | |||
if (errno != GL_NO_ERROR) { | |||
GLint errorpos; | |||
glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &errorpos); | |||
printf("errorpos: %d\n", errorpos); | |||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n", | |||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB)); | |||
} | |||
glEnable(GL_FRAGMENT_PROGRAM_ARB); | |||
glClearColor(0.0, 0.0, 1.0, 0.0); | |||
} | |||
static void Reshape(int width, int height) | |||
{ | |||
glViewport(0, 0, (GLint)width, (GLint)height); | |||
glMatrixMode(GL_PROJECTION); | |||
glLoadIdentity(); | |||
/* glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); */ | |||
glMatrixMode(GL_MODELVIEW); | |||
} | |||
static void Key(unsigned char key, int x, int y) | |||
{ | |||
switch (key) { | |||
case 27: | |||
exit(1); | |||
default: | |||
return; | |||
} | |||
glutPostRedisplay(); | |||
} | |||
static void Draw(void) | |||
{ | |||
glClear(GL_COLOR_BUFFER_BIT); | |||
glBegin(GL_TRIANGLES); | |||
glColor3f(0,0,.7); | |||
glTexCoord3f(0,0,.7); | |||
glVertex3f( 0.9, -0.9, -0.0); | |||
glColor3f(.8,0,0); | |||
glTexCoord3f(.8,0,0); | |||
glVertex3f( 0.9, 0.9, -0.0); | |||
glColor3f(0,.9,0); | |||
glTexCoord3f(0,.9,0); | |||
glVertex3f(-0.9, 0.0, -0.0); | |||
glEnd(); | |||
glFlush(); | |||
if (doubleBuffer) { | |||
glutSwapBuffers(); | |||
} | |||
} | |||
static GLenum Args(int argc, char **argv) | |||
{ | |||
GLint i; | |||
doubleBuffer = GL_FALSE; | |||
for (i = 1; i < argc; i++) { | |||
if (strcmp(argv[i], "-sb") == 0) { | |||
doubleBuffer = GL_FALSE; | |||
} else if (strcmp(argv[i], "-db") == 0) { | |||
doubleBuffer = GL_TRUE; | |||
} else { | |||
fprintf(stderr, "%s (Bad option).\n", argv[i]); | |||
return GL_FALSE; | |||
} | |||
} | |||
return GL_TRUE; | |||
} | |||
int main(int argc, char **argv) | |||
{ | |||
GLenum type; | |||
glutInit(&argc, argv); | |||
if (Args(argc, argv) == GL_FALSE) { | |||
exit(1); | |||
} | |||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250); | |||
type = GLUT_RGB | GLUT_ALPHA; | |||
type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; | |||
glutInitDisplayMode(type); | |||
if (glutCreateWindow("First Tri") == GL_FALSE) { | |||
exit(1); | |||
} | |||
Init(); | |||
glutReshapeFunc(Reshape); | |||
glutKeyboardFunc(Key); | |||
glutDisplayFunc(Draw); | |||
glutMainLoop(); | |||
return 0; | |||
} |
@@ -0,0 +1,139 @@ | |||
/* | |||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. | |||
* | |||
* Permission to use, copy, modify, distribute, and sell this software and | |||
* its documentation for any purpose is hereby granted without fee, provided | |||
* that (i) the above copyright notices and this permission notice appear in | |||
* all copies of the software and related documentation, and (ii) the name of | |||
* Silicon Graphics may not be used in any advertising or | |||
* publicity relating to the software without the specific, prior written | |||
* permission of Silicon Graphics. | |||
* | |||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF | |||
* ANY KIND, | |||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY | |||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
* | |||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR | |||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, | |||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | |||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF | |||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE | |||
* OF THIS SOFTWARE. | |||
*/ | |||
#include <stdio.h> | |||
#include <string.h> | |||
#include <stdlib.h> | |||
#include <GL/glut.h> | |||
#define CI_OFFSET_1 16 | |||
#define CI_OFFSET_2 32 | |||
GLenum doubleBuffer; | |||
static void Init(void) | |||
{ | |||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); | |||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); | |||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); | |||
glEnable(GL_LIGHTING); | |||
glEnable(GL_LIGHT0); | |||
glClearColor(0.0, 0.0, 1.0, 0.0); | |||
} | |||
static void Reshape(int width, int height) | |||
{ | |||
glViewport(0, 0, (GLint)width, (GLint)height); | |||
glMatrixMode(GL_PROJECTION); | |||
glLoadIdentity(); | |||
/* glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); */ | |||
glMatrixMode(GL_MODELVIEW); | |||
} | |||
static void Key(unsigned char key, int x, int y) | |||
{ | |||
switch (key) { | |||
case 27: | |||
exit(1); | |||
default: | |||
return; | |||
} | |||
glutPostRedisplay(); | |||
} | |||
static void Draw(void) | |||
{ | |||
glClear(GL_COLOR_BUFFER_BIT); | |||
glBegin(GL_TRIANGLES); | |||
glNormal3f(0,0,.7); | |||
glVertex3f( 0.9, -0.9, -0.0); | |||
glNormal3f(.8,0,0); | |||
glVertex3f( 0.9, 0.9, -0.0); | |||
glNormal3f(0,.9,0); | |||
glVertex3f(-0.9, 0.0, -0.0); | |||
glEnd(); | |||
glFlush(); | |||
if (doubleBuffer) { | |||
glutSwapBuffers(); | |||
} | |||
} | |||
static GLenum Args(int argc, char **argv) | |||
{ | |||
GLint i; | |||
doubleBuffer = GL_FALSE; | |||
for (i = 1; i < argc; i++) { | |||
if (strcmp(argv[i], "-sb") == 0) { | |||
doubleBuffer = GL_FALSE; | |||
} else if (strcmp(argv[i], "-db") == 0) { | |||
doubleBuffer = GL_TRUE; | |||
} else { | |||
fprintf(stderr, "%s (Bad option).\n", argv[i]); | |||
return GL_FALSE; | |||
} | |||
} | |||
return GL_TRUE; | |||
} | |||
int main(int argc, char **argv) | |||
{ | |||
GLenum type; | |||
glutInit(&argc, argv); | |||
if (Args(argc, argv) == GL_FALSE) { | |||
exit(1); | |||
} | |||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250); | |||
type = GLUT_RGB | GLUT_ALPHA; | |||
type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; | |||
glutInitDisplayMode(type); | |||
if (glutCreateWindow("First Tri") == GL_FALSE) { | |||
exit(1); | |||
} | |||
Init(); | |||
glutReshapeFunc(Reshape); | |||
glutKeyboardFunc(Key); | |||
glutDisplayFunc(Draw); | |||
glutMainLoop(); | |||
return 0; | |||
} |
@@ -0,0 +1,118 @@ | |||
/* | |||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. | |||
* | |||
* Permission to use, copy, modify, distribute, and sell this software and | |||
* its documentation for any purpose is hereby granted without fee, provided | |||
* that (i) the above copyright notices and this permission notice appear in | |||
* all copies of the software and related documentation, and (ii) the name of | |||
* Silicon Graphics may not be used in any advertising or | |||
* publicity relating to the software without the specific, prior written | |||
* permission of Silicon Graphics. | |||
* | |||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF | |||
* ANY KIND, | |||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY | |||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
* | |||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR | |||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, | |||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | |||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF | |||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE | |||
* OF THIS SOFTWARE. | |||
*/ | |||
#include <stdio.h> | |||
#include <string.h> | |||
#include <stdlib.h> | |||
#include <math.h> | |||
#include <GL/glut.h> | |||
#define CI_OFFSET_1 16 | |||
#define CI_OFFSET_2 32 | |||
static void Init(void) | |||
{ | |||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); | |||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); | |||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); | |||
glClearColor(0.3, 0.1, 0.3, 0.0); | |||
} | |||
static void Reshape(int width, int height) | |||
{ | |||
glViewport(0, 0, (GLint)width, (GLint)height); | |||
glMatrixMode(GL_PROJECTION); | |||
glLoadIdentity(); | |||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); | |||
glMatrixMode(GL_MODELVIEW); | |||
} | |||
static void Key(unsigned char key, int x, int y) | |||
{ | |||
switch (key) { | |||
case 27: | |||
exit(0); | |||
default: | |||
glutPostRedisplay(); | |||
return; | |||
} | |||
} | |||
static void Draw(void) | |||
{ | |||
static float f = 0; | |||
f += .1; | |||
glClear(GL_COLOR_BUFFER_BIT); | |||
glBegin(GL_TRIANGLES); | |||
glColor3f((sin(f)+1)/2.0,0,0); | |||
glVertex3f(-0.9, -0.9, -30.0); | |||
glColor3f(0,(cos(f)+1)/2.0,0); | |||
glVertex3f( 0.9, -0.9, -30.0); | |||
glColor3f(0,0,.7); | |||
glVertex3f( 0.0, 0.9, -30.0); | |||
glEnd(); | |||
glutSwapBuffers(); | |||
glutPostRedisplay(); | |||
} | |||
static GLenum Args(int argc, char **argv) | |||
{ | |||
return GL_TRUE; | |||
} | |||
int main(int argc, char **argv) | |||
{ | |||
GLenum type; | |||
glutInit(&argc, argv); | |||
if (Args(argc, argv) == GL_FALSE) { | |||
exit(1); | |||
} | |||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250); | |||
type = GLUT_RGB | GLUT_ALPHA; | |||
type |= GLUT_DOUBLE; | |||
glutInitDisplayMode(type); | |||
if (glutCreateWindow("First Tri") == GL_FALSE) { | |||
exit(1); | |||
} | |||
Init(); | |||
glutReshapeFunc(Reshape); | |||
glutKeyboardFunc(Key); | |||
glutDisplayFunc(Draw); | |||
glutMainLoop(); | |||
return 0; | |||
} |
@@ -0,0 +1,178 @@ | |||
/* | |||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. | |||
* | |||
* Permission to use, copy, modify, distribute, and sell this software and | |||
* its documentation for any purpose is hereby granted without fee, provided | |||
* that (i) the above copyright notices and this permission notice appear in | |||
* all copies of the software and related documentation, and (ii) the name of | |||
* Silicon Graphics may not be used in any advertising or | |||
* publicity relating to the software without the specific, prior written | |||
* permission of Silicon Graphics. | |||
* | |||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF | |||
* ANY KIND, | |||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY | |||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
* | |||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR | |||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, | |||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | |||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF | |||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE | |||
* OF THIS SOFTWARE. | |||
*/ | |||
#include <stdio.h> | |||
#include <string.h> | |||
#include <stdlib.h> | |||
#include <GL/glut.h> | |||
#define CI_OFFSET_1 16 | |||
#define CI_OFFSET_2 32 | |||
GLenum doubleBuffer; | |||
static void Init(void) | |||
{ | |||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); | |||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); | |||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); | |||
glEnable(GL_LIGHTING); | |||
glEnable(GL_LIGHT0); | |||
glClearColor(0.0, 0.0, 1.0, 0.0); | |||
} | |||
static void Reshape(int width, int height) | |||
{ | |||
glViewport(0, 0, (GLint)width, (GLint)height); | |||
glMatrixMode(GL_PROJECTION); | |||
glLoadIdentity(); | |||
/* glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); */ | |||
glMatrixMode(GL_MODELVIEW); | |||
} | |||
static void Key(unsigned char key, int x, int y) | |||
{ | |||
switch (key) { | |||
case 27: | |||
exit(1); | |||
default: | |||
return; | |||
} | |||
glutPostRedisplay(); | |||
} | |||
static void Draw(void) | |||
{ | |||
glClear(GL_COLOR_BUFFER_BIT); | |||
glPolygonMode(GL_FRONT, GL_LINE); | |||
glPolygonMode(GL_BACK, GL_LINE); | |||
glBegin(GL_TRIANGLES); | |||
glNormal3f(0,0,.7); | |||
glVertex3f( 0.9, -0.9, -0.0); | |||
glNormal3f(.8,0,0); | |||
glVertex3f( 0.9, 0.9, -0.0); | |||
glNormal3f(0,.9,0); | |||
glVertex3f(-0.9, 0.0, -0.0); | |||
glEnd(); | |||
glPolygonMode(GL_FRONT, GL_FILL); | |||
glPolygonMode(GL_BACK, GL_FILL); | |||
glBegin(GL_TRIANGLES); | |||
glNormal3f(0,0,.7); | |||
glVertex3f( 0.8, -0.8, -0.0); | |||
glNormal3f(.8,0,0); | |||
glVertex3f( 0.8, 0.8, -0.0); | |||
glNormal3f(0,.9,0); | |||
glVertex3f(-0.8, 0.0, -0.0); | |||
glEnd(); | |||
glPolygonMode(GL_FRONT, GL_LINE); | |||
glPolygonMode(GL_BACK, GL_LINE); | |||
glBegin(GL_TRIANGLES); | |||
glNormal3f(.8,0,0); | |||
glVertex3f( -0.9, 0.9, -0.0); | |||
glNormal3f(0,0,.7); | |||
glVertex3f( -0.9, -0.9, -0.0); | |||
glNormal3f(0,.9,0); | |||
glVertex3f( 0.9, 0.0, -0.0); | |||
glEnd(); | |||
glPolygonMode(GL_FRONT, GL_FILL); | |||
glPolygonMode(GL_BACK, GL_FILL); | |||
glBegin(GL_TRIANGLES); | |||
glNormal3f(.8,0,0); | |||
glVertex3f( -0.8, 0.8, -0.0); | |||
glNormal3f(0,0,.7); | |||
glVertex3f( -0.8, -0.8, -0.0); | |||
glNormal3f(0,.9,0); | |||
glVertex3f( 0.8, 0.0, -0.0); | |||
glEnd(); | |||
glFlush(); | |||
if (doubleBuffer) { | |||
glutSwapBuffers(); | |||
} | |||
} | |||
static GLenum Args(int argc, char **argv) | |||
{ | |||
GLint i; | |||
doubleBuffer = GL_FALSE; | |||
for (i = 1; i < argc; i++) { | |||
if (strcmp(argv[i], "-sb") == 0) { | |||
doubleBuffer = GL_FALSE; | |||
} else if (strcmp(argv[i], "-db") == 0) { | |||
doubleBuffer = GL_TRUE; | |||
} else { | |||
fprintf(stderr, "%s (Bad option).\n", argv[i]); | |||
return GL_FALSE; | |||
} | |||
} | |||
return GL_TRUE; | |||
} | |||
int main(int argc, char **argv) | |||
{ | |||
GLenum type; | |||
glutInit(&argc, argv); | |||
if (Args(argc, argv) == GL_FALSE) { | |||
exit(1); | |||
} | |||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250); | |||
type = GLUT_RGB | GLUT_ALPHA; | |||
type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; | |||
glutInitDisplayMode(type); | |||
if (glutCreateWindow("First Tri") == GL_FALSE) { | |||
exit(1); | |||
} | |||
Init(); | |||
glutReshapeFunc(Reshape); | |||
glutKeyboardFunc(Key); | |||
glutDisplayFunc(Draw); | |||
glutMainLoop(); | |||
return 0; | |||
} |
@@ -0,0 +1,175 @@ | |||
/* | |||
* Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. | |||
* | |||
* Permission to use, copy, modify, distribute, and sell this software and | |||
* its documentation for any purpose is hereby granted without fee, provided | |||
* that (i) the above copyright notices and this permission notice appear in | |||
* all copies of the software and related documentation, and (ii) the name of | |||
* Silicon Graphics may not be used in any advertising or | |||
* publicity relating to the software without the specific, prior written | |||
* permission of Silicon Graphics. | |||
* | |||
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF | |||
* ANY KIND, | |||
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY | |||
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | |||
* | |||
* IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR | |||
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, | |||
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | |||
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF | |||
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE | |||
* OF THIS SOFTWARE. | |||
*/ | |||
#include <stdio.h> | |||
#include <string.h> | |||
#include <stdlib.h> | |||
#include <GL/glut.h> | |||
#define CI_OFFSET_1 16 | |||
#define CI_OFFSET_2 32 | |||
GLenum doubleBuffer; | |||
static void Init(void) | |||
{ | |||
fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); | |||
fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); | |||
fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); | |||
glClearColor(0.0, 0.0, 1.0, 0.0); | |||
} | |||
static void Reshape(int width, int height) | |||
{ | |||
glViewport(0, 0, (GLint)width, (GLint)height); | |||
glMatrixMode(GL_PROJECTION); | |||
glLoadIdentity(); | |||
/* glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); */ | |||
glMatrixMode(GL_MODELVIEW); | |||
} | |||
static void Key(unsigned char key, int x, int y) | |||
{ | |||
switch (key) { | |||
case 27: | |||
exit(1); | |||
default: | |||
return; | |||
} | |||
glutPostRedisplay(); | |||
} | |||
static void Draw(void) | |||
{ | |||
glClear(GL_COLOR_BUFFER_BIT); | |||
glPolygonMode(GL_FRONT, GL_LINE); | |||
glPolygonMode(GL_BACK, GL_LINE); | |||
glBegin(GL_TRIANGLES); | |||
glColor3f(0,0,.7); | |||
glVertex3f( 0.9, -0.9, -0.0); | |||
glColor3f(.8,0,0); | |||
glVertex3f( 0.9, 0.9, -0.0); | |||
glColor3f(0,.9,0); | |||
glVertex3f(-0.9, 0.0, -0.0); | |||
glEnd(); | |||
glPolygonMode(GL_FRONT, GL_FILL); | |||
glPolygonMode(GL_BACK, GL_FILL); | |||
glBegin(GL_TRIANGLES); | |||
glColor3f(0,0,.7); | |||
glVertex3f( 0.8, -0.8, -0.0); | |||
glColor3f(.8,0,0); | |||
glVertex3f( 0.8, 0.8, -0.0); | |||
glColor3f(0,.9,0); | |||
glVertex3f(-0.8, 0.0, -0.0); | |||
glEnd(); | |||
glPolygonMode(GL_FRONT, GL_LINE); | |||
glPolygonMode(GL_BACK, GL_LINE); | |||
glBegin(GL_TRIANGLES); | |||
glColor3f(.8,0,0); | |||
glVertex3f( -0.9, 0.9, -0.0); | |||
glColor3f(0,0,.7); | |||
glVertex3f( -0.9, -0.9, -0.0); | |||
glColor3f(0,.9,0); | |||
glVertex3f( 0.9, 0.0, -0.0); | |||
glEnd(); | |||
glPolygonMode(GL_FRONT, GL_FILL); | |||
glPolygonMode(GL_BACK, GL_FILL); | |||
glBegin(GL_TRIANGLES); | |||
glColor3f(.8,0,0); | |||
glVertex3f( -0.8, 0.8, -0.0); | |||
glColor3f(0,0,.7); | |||
glVertex3f( -0.8, -0.8, -0.0); | |||
glColor3f(0,.9,0); | |||
glVertex3f( 0.8, 0.0, -0.0); | |||
glEnd(); | |||
glFlush(); | |||
if (doubleBuffer) { | |||
glutSwapBuffers(); | |||
} | |||
} | |||
static GLenum Args(int argc, char **argv) | |||
{ | |||
GLint i; | |||
doubleBuffer = GL_FALSE; | |||
for (i = 1; i < argc; i++) { | |||
if (strcmp(argv[i], "-sb") == 0) { | |||
doubleBuffer = GL_FALSE; | |||
} else if (strcmp(argv[i], "-db") == 0) { | |||
doubleBuffer = GL_TRUE; | |||
} else { | |||
fprintf(stderr, "%s (Bad option).\n", argv[i]); | |||
return GL_FALSE; | |||
} | |||
} | |||
return GL_TRUE; | |||
} | |||
int main(int argc, char **argv) | |||
{ | |||
GLenum type; | |||
glutInit(&argc, argv); | |||
if (Args(argc, argv) == GL_FALSE) { | |||
exit(1); | |||
} | |||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250); | |||
type = GLUT_RGB | GLUT_ALPHA; | |||
type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; | |||
glutInitDisplayMode(type); | |||
if (glutCreateWindow("First Tri") == GL_FALSE) { | |||
exit(1); | |||
} | |||
Init(); | |||
glutReshapeFunc(Reshape); | |||
glutKeyboardFunc(Key); | |||
glutDisplayFunc(Draw); | |||
glutMainLoop(); | |||
return 0; | |||
} |