diff options
Diffstat (limited to 'progs/samples')
39 files changed, 0 insertions, 13194 deletions
diff --git a/progs/samples/.gitignore b/progs/samples/.gitignore deleted file mode 100644 index c15b886b884..00000000000 --- a/progs/samples/.gitignore +++ /dev/null @@ -1,48 +0,0 @@ -.cvsignore -accum -anywin -bdemo -binfo -bitmap1 -bitmap2 -blendeq -blendxor -bugger -copy -cursor -demo -depth -eval -ffset -fog -font -font -incopy -line -logo -lthreads -lxdemo -lxgears -lxheads -lxinfo -lxpixmap -nurb -oglinfo -olympic -overlay -pend -point -prim -quad -readtex.c -readtex.h -rgbtoppm -select -shape -sphere -star -stencil -stretch -texture -tri -wave diff --git a/progs/samples/Makefile b/progs/samples/Makefile deleted file mode 100644 index 64fa47addb5..00000000000 --- a/progs/samples/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# progs/samples/Makefile - -TOP = ../.. -include $(TOP)/configs/current - -INCDIR = $(TOP)/include - -LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLUT_LIB_NAME) - -LIBS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLEW_LIB) -l$(GLU_LIB) -l$(GL_LIB) $(APP_LIB_DEPS) - -PROGS = accum bitmap1 bitmap2 blendeq blendxor copy cursor depth eval fog \ - font line logo nurb olympic overlay point prim rgbtoppm quad select \ - shape sphere star stencil stretch texture tri wave - - -##### RULES ##### - -.SUFFIXES: -.SUFFIXES: .c - -.c: $(LIB_DEP) - $(APP_CC) -I$(INCDIR) $(CFLAGS) $(LDFLAGS) $< $(LIBS) -o $@ - - -##### TARGETS ##### - -default: $(PROGS) - - -sphere: sphere.o readtex.o - $(APP_CC) -I$(INCDIR) $(CFLAGS) $(LDFLAGS) sphere.o readtex.o $(LIBS) -o $@ - -sphere.o: sphere.c readtex.h - $(APP_CC) -c -I$(INCDIR) $(CFLAGS) sphere.c - -readtex.c: $(TOP)/progs/util/readtex.c - cp $< . - -readtex.h: $(TOP)/progs/util/readtex.h - cp $< . - -readtex.o: readtex.c readtex.h - $(APP_CC) -c -I$(INCDIR) $(CFLAGS) $< -o $@ - - -clean: - -rm -f $(PROGS) - -rm -f *.o *~ - -rm -f readtex.c readtex.h diff --git a/progs/samples/Makefile.dja b/progs/samples/Makefile.dja deleted file mode 100644 index b60a11197b6..00000000000 --- a/progs/samples/Makefile.dja +++ /dev/null @@ -1,25 +0,0 @@ - -# Makefile for sample programs for MS-DOS with DJGPP and ALLEGRO - - - -INCDIR = ../include -LIBDIR = ../lib -include ../common.dja - - _PROGS = accum bitmap1 bitmap2 blendeq blendxor copy cursor depth \ - eval fog font line logo nurb oglinfo olympic overlay point \ - prim quad select shape sphere star stencil stretch texture \ - tri wave - - PROGS = $(_PROGS:=.exe) - - -default: $(PROGS) - -clean: - del *. - -realclean: clean - del *.exe - diff --git a/progs/samples/Makefile.mgw b/progs/samples/Makefile.mgw deleted file mode 100644 index 8bb975be9da..00000000000 --- a/progs/samples/Makefile.mgw +++ /dev/null @@ -1,78 +0,0 @@ -# Mesa 3-D graphics library -# Version: 4.0 -# -# Copyright (C) 1999 Brian Paul All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# MinGW samples makefile v1.2 for Mesa -# -# Copyright (C) 2002 - Daniel Borca -# Email : [email protected] -# Web : http://www.geocities.com/dborca - -# MinGW samples makefile updated for Mesa 7.0 -# -# Updated : by Heromyth, on 2007-7-21 -# Email : [email protected] -# Bugs : 1) All the default settings work fine. But the setting X86=1 can't work. -# The others havn't been tested yet. -# 2) The generated DLLs are *not* compatible with the ones built -# with the other compilers like VC8, especially for GLUT. -# 3) Although more tests are needed, it can be used individually! - -# -# Available options: -# -# Environment variables: -# -# Targets: -# <file.exe> build a specific file -# - - - -.PHONY: all -.SUFFIXES: .c .o .exe -.SECONDARY: ../util/readtex.o ../util/showbuffer.o - -TOP = ../.. - -CC = mingw32-gcc -CFLAGS = -Wall -pedantic -CFLAGS += -O2 -ffast-math -D_DLL -CFLAGS += -I$(TOP)/include -I../util -ifeq ($(FX),1) - CFLAGS += -DFX -endif - -CFLAGS += -DGLUT_DISABLE_ATEXIT_HACK - -LD = mingw32-g++ -LDFLAGS = -s -L$(TOP)/lib - -LDLIBS = -lglut32 -lglu32 -lopengl32 - -.c.o: - $(CC) -o $@ $(CFLAGS) -c $< -%.exe: ../util/readtex.o ../util/showbuffer.o %.o - $(LD) -o $@ $(LDFLAGS) $(LDLIBS) $^ - - -all: - $(error Must specify <filename.exe> to build) diff --git a/progs/samples/Makefile.win b/progs/samples/Makefile.win deleted file mode 100644 index e74568f7c96..00000000000 --- a/progs/samples/Makefile.win +++ /dev/null @@ -1,41 +0,0 @@ - -# Mesa 3-D graphics library -# Version: 3.5 -# Copyright (C) 1995-2001 Brian Paul - -# Makefile for GLUT-based demo programs for Windows - -!include <win32.mak> - -##### MACROS ##### - -TOP = .. -INCDIR = ..\include -LIBDIR = ..\lib - -PROGS = accum bitmap1 bitmap2 blendeq blendxor copy cursor depth eval fog \ - font line logo nurb oglinfo olympic overlay point prim quad select \ - shape sphere star stencil stretch texture tri wave - -SRCS = \ - accum.c \ - bitmap1.c \ - bitmap2.c \ - blendeq.c \ - blendxor.c \ - copy.c \ - cursor.c depth.c eval.c fog.c \ - font.c line.c logo.c nurb.c olympic.c overlay.c point.c prim.c quad.c select.c \ - shape.c sphere.c star.c stencil.c stretch.c texture.c tri.c wave.c - -!include "../mesawin32.mak" - -##### TARGETS ##### - -clean:: - -clobber:: - -$(EXES) : $*.obj - @echo $@ - $(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) diff --git a/progs/samples/README b/progs/samples/README deleted file mode 100644 index 853158873c9..00000000000 --- a/progs/samples/README +++ /dev/null @@ -1,520 +0,0 @@ -/* - * 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. - */ - -accum - Accumulation test. - - RGBA, SB/DB (SB default). - - cmd line options: - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit - 1 Use filled polygon mode. - 2 Use outlined polygon mode. - -bitmap1 - Bitmap test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - -bitmap2 - Bitmap test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - 1 Toggle display list mode. - 2 Toggle color animation mode. - -copy - Pixel copy test. - - RGBA, SB/DB (SB default). - - cmd line options: - -sb Single buffer mode. - -db Double buffer mode. - -dr Direct render mode. - -ir Indirect render mode. - -f <file name> RGB image file. - - keys: - ESC Quit. - Z Increase zoom factor. - z Decrease zoom factor. - - mouse input: - Left Copy location. - -cursor - Cursor test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - SPACE switch cursor color. - -depth - Z buffer test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - 1 Toggle anti-aliased mode. - 2 Toggle stipple mode. - -eval - Evaluator test. - - RGBA, SB/DB (SB default). - - cmd line options: - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - LEFT Rotate. - RIGHT Rotate. - UP Rotate. - DOWN Rotate. - 1 Toggle dimensions. - 2 Toggle dimensions. - e Use eval mode. - m Use mesh mode. - f Toggle polygon mode. - p Toggle point mode. - c Toggle color mode. - t Toggle texture mode. - l Toggle lighting mode. - -fog - Fog test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - LEFT Rotate. - RIGHT Rotate. - UP Rotate. - DOWN Rotate. - D Increase fog density. - d Decrease fog density. - -font - font test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - Left Shift left. - Right Shift right. - Up Shift up. - Down Shift down. - n Shift in. - m Shift out. - q Scale up x. - w Scale down x. - a Scale up y. - s Scale down y. - z Scale up z. - x Scale down z. - e Rotate clockwise x. - r Rotate counter-clockwise x. - d Rotate clockwise y. - f Rotate counter-clockwise y. - c Rotate clockwise z. - v Rotate counter-clockwise z. - -line - Line test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - W Increase line width. - w Decrease line width. - 1 Toggle stipple mode. - 2 Toggle anti-aliased mode. - -logo - Demo. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - LEFT Rotate. - RIGHT Rotate - UP Move clipping plane. - DOWN Move clipping plane. - Z Translate. - z Translate. - 1 Use GL_POINT polygon mode. - 2 Use GL_LINE polygon mode. - 3 Use GL_FILL polygon mode. - p Toggle polygon fill modes. - 4 Use GL_NICEST for GL_POLYGON_SMOOTH_HINT. - 5 Use anti-aliased polygon mode. - 6 Use aliased polygon mode. - 8 Toggle dither mode. - 9 Toggle stipple polygon mode. - 0 Toggle flat/smooth shading mode. - q Disable cull mode. - w Use front face cull mode. - e Use back face cull mode. - r Use clockwise front face mode. - t Use counter-clockwise front face mode. - y Use MSB first stipple pattern. - u Use LSB first stipple pattern. - a Use brick texture map. - s Use checker texture map. - d Disable texture map. - f Use decal texture environment mode. - g Use modulate texture environment mode. - -nurb - Nurb test. - - RGBA, SB/DB (SB default). - - cmd line options: - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - LEFT Rotate. - RIGHT Rotate. - UP Rotate. - DOWN Rotate. - -olympic - Olymipic rings demo. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - SPACE Restart demo. - -overlay - Overlay plane demo. - - RGBA, SB/DB (SB default). - - cmd line options: - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - SPACE Toggle star weird movement mode. - t Toggle star turbo mode. - -point - Point test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - LEFT Translate. - RIGHT Translate. - UP Translate. - DOWN Translate. - W Increase point width. - w Decrease point width. - 1 Toggle anti-aliased mode. - -prim - Primitive test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - 1 Toggle flat/smooth shade mode. - 2 Toggle outlined/filled polygon mode. - 3 Toggle color mask mode. - -quad - Quadric test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - -dr Direct render mode. - -ir Indirect render mode. - -f <file name> texture file. - - keys: - ESC Quit. - LEFT Rotate. - RIGHT Rotate. - UP Rotate. - DOWN Rotate. - X Rotate. - x Rotate. - 1 Use GLU_FILL draw style. - 2 Use GLU_POINT draw style. - 3 Use GLU_LINE draw style. - 4 Use GLU_SILHOUETTE draw style. - 0 Toggle flat/smooth shade mode. - f Cylce through quadrics. - d Toggle orientation. - A Increase number of stacks. - a Decrease number of stacks. - S Increase number of slices. - s Decrease number of slices. - G Increase radius1. - g Decrease radius1. - J Increase radius2. - j Decrease radius2. - H Increase height. - h Decrease height. - K Increase angle1. - k Decrease angle1. - L Increase angle2. - l Decrease angle2. - z Toggle texture mode. - q Disable cull mode. - w Use front face cull mode. - e Use back face cull mode. - r Use clockwise front face mode. - t Use counter-clockwise front face mode. - y Toggle dither mode. - -select - Selection test. - - RGBA, SB. - - cmd line options: - - keys: - ESC Quit. - LEFT Rotate. - RIGHT Rotate. - Z Increase zoom factor. - z Decrease zoom factor. - d Zoom at current mouse location. - f Print feedback information. - l Toggle outlined/filled polygon mode. - - mouse: - Left Recolor selected triangle. - Center Enlarge selected triangle. - Right Delete selected triangle. - -shape - shape test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - Left Shift left. - Right Shift right. - Up Shift up. - Down Shift down. - n Shift in. - m Shift out. - q Scale up x. - w Scale down x. - a Scale up y. - s Scale down y. - z Scale up z. - x Scale down z. - e Rotate clockwise x. - r Rotate counter-clockwise x. - d Rotate clockwise y. - f Rotate counter-clockwise y. - c Rotate clockwise z. - v Rotate counter-clockwise z. - SPACE switch shapes. - -speed - Speed test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - a Toggle anti-aliased mode. - d Toggle z buffering mode. - f Toggle fog mode. - F Toggle fog hint mode. - s Toggle flat/smooth shading mode. - t Toggle texturing mode. - -sphere - Spheremap test. - - RGBA, SB/DB (SB default). - - cmd line options: - -sb Single buffer mode. - -db Double buffer mode. - -dr Direct render mode. - -ir Indirect render mode. - -f <file name> texture file. - -3 Use RGB components. - -4 Use RGBA components. - - keys: - ESC Quit. - LEFT Rotate about the y axis. - RIGHT Rotate about the y axis. - UP Rotate about the x axis. - DOWN Rotate about the x axis. - a Toggle auto rotate mode. - c toggle between cylinder or cube object. - t Use torus object. - d Use decal texture mode. - m Use modulate texture mode. - l Toggle lighted mode. - f Toggle fog mode. - 0 Use nearest magification filter. - 1 Use linear magification. - 2 Use nearest minification filter. - 3 Use linear minification filter. - 4 Use nearest-mipmap-nearest minification filter. - 5 Use nearest-mipmap-linear minification filter. - 6 Use linear-mipmap-nearest minification filter. - 7 Use linear-mipmap-linear minification filter. - -star - Demo. - - RGBA, SB/DB (SB default). - - cmd line options: - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - SPACE Toggle weird movement mode. - t Toggle turbo mode. - -stencil - Stencil test. - - RGBA, SB. - - cmd line options: - -stretch - Texture test. - - RGBA, SB. - - cmd line options: - -sb Single buffer mode. - -db Double buffer mode. - -dr Direct render mode. - -ir Indirect render mode. - -f <file name> texture file. - - keys: - ESC Quit. - SPACE Start animation. - - mouse: - Left Added stretch point. - -texture - Texture test. - - RGBA, SB/DB (SB default). - - cmd line options: - -sb Single buffer mode. - -db Double buffer mode. - -dr Direct render mode. - -ir Indirect render mode. - -f <file name> texture file. - - keys: - ESC Quit. - LEFT Rotate. - RIGHT Rotate. - UP Rotate. - DOWN Rotate. - T Translate. - t Translate. - s Toggle sphere map mode. - 0 Use nearest magification filter. - 1 Use linear magification filter. - 2 Use nearest minification filter. - 3 Use linear minification filter. - 4 Use nearest-mipmap-nearest minification filter. - 5 Use nearest-mipmap-linear minification filter. - 6 Use linear-mipmap-nearest minification filter. - 7 Use linear-mipmap-linear minification filter. - -tri - Triangle test. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - - keys: - ESC Quit. - LEFT Translate. - RIGHT Translate. - Z Increase zoom factor. - z Decrease zoom factor. - 1 Use point polygon mode. - 2 Use line polygon mode. - 3 Use filled polygon mode. - 4 Use point primitive. - 5 Use line-loop primitive. - 6 Use polygon primitive. - 7 Toggle cull mode. - 8 Use clockwise/counter-clockwise front face mode. - 9 Toggle front/back face cull mode. - v Toggle show verticies mode. - s Toggle flat/smooth shade mode. - h Toggle hide bottom triangle mode. - o Toggle outline mode. - m Toggle dither mode. - 0 Toggle anti-aliased mode. - -wave - Demo. - - RGBA/CI (RGBA default), SB/DB (SB default). - - cmd line options: - -rgb RGBA mode. - -ci Color index mode. - -sb Single buffer mode. - -db Double buffer mode. - -dr Direct render mode. - -ir Indirect render mode. - -grid <x> <y> Number of grids. - -size <number> Size of grid. - -wave <number> Height of wave (floating point number). - -frames <count> Number of frames. - - keys: - ESC Quit. - c Toggle contouring mode. - s Toggle flat/smooth shade mode. - l Toggle lighting mode. - d Toggle depth checking mode. - SPACE Toggle step/animation mode. - n Single step in step mode. - a Toggle spin mode. diff --git a/progs/samples/SConscript b/progs/samples/SConscript deleted file mode 100644 index 134dfa99807..00000000000 --- a/progs/samples/SConscript +++ /dev/null @@ -1,40 +0,0 @@ -Import('*') - -progs = [ - 'accum', - 'bitmap1', - 'bitmap2', - 'blendeq', - 'blendxor', - 'copy', - 'cursor', - 'depth', - 'eval', - 'fog', - 'font', - 'line', - 'logo', - 'nurb', - #'oglinfo', - 'olympic', - 'overlay', - 'point', - 'prim', - 'quad', - 'rgbtoppm', - 'select', - 'shape', - 'sphere', - 'star', - 'stencil', - 'stretch', - 'texture', - 'tri', - 'wave', -] - -for prog in progs: - progs_env.Program( - target = prog, - source = prog + '.c', - ) diff --git a/progs/samples/accum.c b/progs/samples/accum.c deleted file mode 100644 index 24dfc07d2a6..00000000000 --- a/progs/samples/accum.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - * 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> - - -GLenum doubleBuffer; -GLint thing1, thing2; - - -static void Init(void) -{ - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClearAccum(0.0, 0.0, 0.0, 0.0); - - thing1 = glGenLists(1); - glNewList(thing1, GL_COMPILE); - glColor3f(1.0, 0.0, 0.0); - glRectf(-1.0, -1.0, 1.0, 0.0); - glEndList(); - - thing2 = glGenLists(1); - glNewList(thing2, GL_COMPILE); - glColor3f(0.0, 1.0, 0.0); - glRectf(0.0, -1.0, 1.0, 1.0); - glEndList(); -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); -} - -static void Key(unsigned char key, int x, int y) -{ - (void) x; - (void) y; - switch (key) { - case 27: - exit(1); - case '1': - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - break; - case '2': - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - - glPushMatrix(); - - glScalef(0.8, 0.8, 1.0); - - glClear(GL_COLOR_BUFFER_BIT); - glCallList(thing1); - glAccum(GL_LOAD, 0.5); - - glClear(GL_COLOR_BUFFER_BIT); - glCallList(thing2); - glAccum(GL_ACCUM, 0.5); - - glAccum(GL_RETURN, 1.0); - - glPopMatrix(); - - 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 { - printf("%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( 300, 300); - - type = GLUT_RGB | GLUT_ACCUM; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Accum Test") == GL_FALSE) { - exit(1); - } - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/bitmap1.c b/progs/samples/bitmap1.c deleted file mode 100644 index 517d584e212..00000000000 --- a/progs/samples/bitmap1.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * 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 OPENGL_WIDTH 24 -#define OPENGL_HEIGHT 13 - - -GLenum rgb, doubleBuffer, windType; - -float boxA[3] = { - 0, 0, 0 -}; -float boxB[3] = { - -100, 0, 0 -}; -float boxC[3] = { - 100, 0, 0 -}; -float boxD[3] = { - 0, 95, 0 -}; -float boxE[3] = { - 0, -105, 0 -}; -GLubyte OpenGL_bits1[] = { - 0x00, 0x03, 0x00, - 0x7f, 0xfb, 0xff, - 0x7f, 0xfb, 0xff, - 0x00, 0x03, 0x00, - 0x3e, 0x8f, 0xb7, - 0x63, 0xdb, 0xb0, - 0x63, 0xdb, 0xb7, - 0x63, 0xdb, 0xb6, - 0x63, 0x8f, 0xf3, - 0x63, 0x00, 0x00, - 0x63, 0x00, 0x00, - 0x63, 0x00, 0x00, - 0x3e, 0x00, 0x00, -}; -GLubyte OpenGL_bits2[] = { - 0x00, 0x00, 0x00, - 0xff, 0xff, 0x01, - 0xff, 0xff, 0x01, - 0x00, 0x00, 0x00, - 0xf9, 0xfc, 0x01, - 0x8d, 0x0d, 0x00, - 0x8d, 0x0d, 0x00, - 0x8d, 0x0d, 0x00, - 0xcc, 0x0d, 0x00, - 0x0c, 0x4c, 0x0a, - 0x0c, 0x4c, 0x0e, - 0x8c, 0xed, 0x0e, - 0xf8, 0x0c, 0x00, -}; -GLubyte logo_bits[] = { - 0x00, 0x66, 0x66, - 0xff, 0x66, 0x66, - 0x00, 0x00, 0x00, - 0xff, 0x3c, 0x3c, - 0x00, 0x42, 0x40, - 0xff, 0x42, 0x40, - 0x00, 0x41, 0x40, - 0xff, 0x21, 0x20, - 0x00, 0x2f, 0x20, - 0xff, 0x20, 0x20, - 0x00, 0x10, 0x90, - 0xff, 0x10, 0x90, - 0x00, 0x0f, 0x10, - 0xff, 0x00, 0x00, - 0x00, 0x66, 0x66, - 0xff, 0x66, 0x66, -}; - -#include "tkmap.c" - -static void Init(void) -{ - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClearIndex(0.0); -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-175, 175, -175, 175); - glMatrixMode(GL_MODELVIEW); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - } -} - -static void Draw(void) -{ - float mapI[2], mapIA[2], mapIR[2]; - - glClear(GL_COLOR_BUFFER_BIT); - - mapI[0] = 0.0; - mapI[1] = 1.0; - mapIR[0] = 0.0; - mapIR[1] = 0.0; - mapIA[0] = 1.0; - mapIA[1] = 1.0; - - glPixelMapfv(GL_PIXEL_MAP_I_TO_R, 2, mapIR); - glPixelMapfv(GL_PIXEL_MAP_I_TO_G, 2, mapI); - glPixelMapfv(GL_PIXEL_MAP_I_TO_B, 2, mapI); - glPixelMapfv(GL_PIXEL_MAP_I_TO_A, 2, mapIA); - glPixelTransferi(GL_MAP_COLOR, GL_TRUE); - - SetColor(COLOR_WHITE); - glRasterPos3fv(boxA); - glPixelStorei(GL_UNPACK_ROW_LENGTH, 24); - glPixelStorei(GL_UNPACK_SKIP_PIXELS, 8); - glPixelStorei(GL_UNPACK_SKIP_ROWS, 2); - glPixelStorei(GL_UNPACK_LSB_FIRST, GL_FALSE); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - glBitmap(16, 12, 8.0, 0.0, 0.0, 0.0, logo_bits); - - glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); - glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0); - glPixelStorei(GL_UNPACK_SKIP_ROWS, 0); - glPixelStorei(GL_UNPACK_LSB_FIRST, GL_TRUE); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - - SetColor(COLOR_WHITE); - glRasterPos3fv(boxB); - glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, OPENGL_WIDTH, 0.0, OPENGL_WIDTH, 0.0, - OpenGL_bits1); - glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, OPENGL_WIDTH, 0.0, OPENGL_WIDTH, 0.0, - OpenGL_bits2); - - SetColor(COLOR_YELLOW); - glRasterPos3fv(boxC); - glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, OPENGL_WIDTH, 0.0, OPENGL_WIDTH, 0.0, - OpenGL_bits1); - glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, OPENGL_WIDTH, 0.0, OPENGL_WIDTH, 0.0, - OpenGL_bits2); - - SetColor(COLOR_CYAN); - glRasterPos3fv(boxD); - glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, OPENGL_WIDTH, 0.0, OPENGL_WIDTH, 0.0, - OpenGL_bits1); - glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, OPENGL_WIDTH, 0.0, OPENGL_WIDTH, 0.0, - OpenGL_bits2); - - SetColor(COLOR_RED); - glRasterPos3fv(boxE); - glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, OPENGL_WIDTH, 0.0, OPENGL_WIDTH, 0.0, - OpenGL_bits1); - glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, OPENGL_WIDTH, 0.0, OPENGL_WIDTH, 0.0, - OpenGL_bits2); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - glutInitWindowPosition(0, 0); glutInitWindowSize( 300, 300); - - windType = (rgb) ? GLUT_RGB : GLUT_INDEX; - windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(windType); - - if (glutCreateWindow("Bitmap Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/bitmap2.c b/progs/samples/bitmap2.c deleted file mode 100644 index 5faac841622..00000000000 --- a/progs/samples/bitmap2.c +++ /dev/null @@ -1,787 +0,0 @@ -/* - * 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 EXP_WIDTH 80 -#define EXP_HEIGHT 80 - - -GLenum rgb, doubleBuffer, windType; - -#include "tkmap.c" - -GLenum useLists, abuse; -GLubyte exp_bits[7][800] = { - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x81, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xbe, 0x7c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf6, 0x4f, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xde, 0x7d, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xea, 0xef, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0x55, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xdd, 0xfd, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xbf, 0xae, 0x22, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xdb, 0xf7, 0x3f, 0x1e, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x50, 0xbf, 0xbf, 0x85, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xe5, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xee, 0x7e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x74, 0x4b, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xe8, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xf8, 0x49, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x54, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc0, 0x70, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x78, 0x91, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x60, 0xf1, 0x53, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x40, 0x97, 0x5c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xa0, 0x0c, 0x8c, 0x1b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc4, 0x01, 0x00, 0xc8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x88, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x60, 0x00, 0x02, 0x40, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x70, 0x00, 0x0c, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x70, 0xe0, 0x0d, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x72, 0xc8, 0x07, 0x40, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x02, 0x78, 0x2f, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x02, 0xb0, 0x0a, 0x20, 0x77, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x13, 0x10, 0x33, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xc0, 0x02, 0x78, 0xbb, 0x81, 0x09, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0xdc, 0xe7, 0x00, 0x09, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xac, 0x78, 0x00, 0x31, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x03, 0x74, 0x4b, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x02, 0xe8, 0x3e, 0x00, 0x01, 0x10, 0x00, - 0x00, 0x00, 0x80, 0x00, 0xf8, 0x49, 0x80, 0x09, 0x1c, 0x00, - 0x00, 0x00, 0x00, 0x0c, 0x40, 0x07, 0x00, 0x05, 0x1c, 0x00, - 0x00, 0x00, 0x80, 0x09, 0x04, 0x80, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x11, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x1d, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x80, 0xe3, 0x0b, 0x00, 0x22, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x8f, 0x10, 0x00, 0xa0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x4f, 0x20, 0x78, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x80, 0x79, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x78, 0x7c, 0x05, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0xc0, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x84, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x60, 0x06, 0x0c, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x07, 0x64, 0x3a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x72, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x3b, 0x00, 0x00, 0xc0, 0x33, 0x00, 0x00, - 0x00, 0x00, 0xa0, 0x1b, 0x00, 0x00, 0x80, 0x42, 0x00, 0x00, - 0x00, 0x00, 0xd0, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x50, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, - 0x00, 0x30, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x80, 0x03, 0x03, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0xe2, 0x82, 0x03, 0x00, 0x20, 0x00, 0x00, 0x40, 0x00, - 0x00, 0x0e, 0x80, 0x03, 0x00, 0x4c, 0x00, 0x00, 0x10, 0x00, - 0x00, 0x0e, 0x80, 0x03, 0xec, 0x10, 0x00, 0x00, 0x60, 0x00, - 0x00, 0x12, 0x00, 0x00, 0x05, 0x93, 0x01, 0x00, 0x20, 0x00, - 0x00, 0x12, 0x00, 0x00, 0x00, 0x5c, 0x0c, 0x00, 0x60, 0x00, - 0x00, 0x30, 0x00, 0xc0, 0x05, 0x81, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x2c, 0x00, 0x00, 0xcc, 0x06, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x30, 0x00, 0x00, 0x28, 0x20, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x30, 0x80, 0x80, 0x22, 0x00, 0x02, 0x00, 0x00, 0x02, - 0x00, 0x20, 0x00, 0x80, 0x02, 0x20, 0x08, 0x00, 0x20, 0x02, - 0x00, 0x38, 0x00, 0x00, 0x00, 0x11, 0x28, 0x00, 0x20, 0x06, - 0x00, 0x20, 0x00, 0x80, 0x0e, 0xc0, 0x21, 0x00, 0x5c, 0x00, - 0x00, 0x24, 0x00, 0x90, 0x40, 0x58, 0x04, 0x00, 0x20, 0x01, - 0x00, 0x24, 0x00, 0x10, 0x22, 0x02, 0x05, 0x00, 0x20, 0x02, - 0x00, 0x00, 0x00, 0x00, 0x28, 0xb6, 0x00, 0x00, 0x20, 0x01, - 0x00, 0x70, 0x00, 0x00, 0x18, 0xc1, 0x00, 0x00, 0xc0, 0x01, - 0x00, 0xc0, 0x00, 0x00, 0x40, 0x83, 0x04, 0x00, 0xc0, 0x01, - 0x00, 0x00, 0x01, 0x80, 0xfc, 0x41, 0x02, 0x00, 0x10, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x03, 0x30, 0x00, 0x00, 0x10, 0x00, - 0x00, 0x10, 0x02, 0x00, 0x40, 0x1d, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x30, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x04, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, - 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, - 0x00, 0x00, 0x38, 0x00, 0x81, 0x0f, 0x00, 0x00, 0x2a, 0x00, - 0x00, 0x00, 0xf8, 0x02, 0x80, 0x0f, 0x00, 0x00, 0x10, 0x00, - 0x00, 0x00, 0xf8, 0x02, 0x80, 0x0f, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x06, 0xc0, 0x01, 0x00, 0x00, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x14, 0xe0, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x70, 0x00, 0x00, 0x85, 0x00, 0x00, - 0x00, 0x00, 0xc0, 0x00, 0x30, 0x00, 0x20, 0x3c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x80, 0x00, 0x0b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xe0, 0x79, 0x83, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x19, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x28, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x20, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x00, 0x02, 0x90, 0x00, 0x00, 0x00, 0x40, - 0x02, 0x02, 0x00, 0x80, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x20, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x30, 0x28, 0x90, 0x05, 0x00, 0x00, 0x40, - 0x00, 0x00, 0x00, 0x48, 0x05, 0x00, 0x21, 0x00, 0x00, 0x0c, - 0x00, 0x00, 0x00, 0x84, 0x00, 0x54, 0x05, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x40, 0x05, 0x80, 0x41, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0e, 0x02, 0x01, 0x00, 0x00, 0x20, - 0x00, 0x00, 0x00, 0x08, 0x20, 0x20, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x84, 0x82, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x48, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x40, - 0x04, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x21, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x90, 0x40, 0x40, 0x04, 0x00, 0x00, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x41, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x40, 0xa0, 0x00, 0x00, 0x00, 0x50, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x40, - 0x40, 0x00, 0x00, 0x00, 0x40, 0x02, 0x04, 0x00, 0x00, 0x30, - 0x00, 0x00, 0x00, 0x80, 0x84, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xc2, 0x20, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0xc0, 0x05, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x04, 0x00, 0x02, 0x00, 0x00, 0x10, - 0x08, 0x00, 0x00, 0x80, 0x00, 0x10, 0x10, 0x00, 0x00, 0x08, - 0x10, 0x02, 0x00, 0x00, 0x21, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x18, 0x08, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3a, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x04, - 0x00, 0x60, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0xb8, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, - 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x08, 0x00, 0x00, - 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1f, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x00, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x01, 0x00, 0x01, 0x10, 0x04, 0x00, 0x00, - 0x00, 0x40, 0x00, 0x02, 0x02, 0x90, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1c, 0x20, 0x05, 0x00, 0x04, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x20, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xc4, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x06, 0x40, 0x00, 0x00, 0x40, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x10, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x42, 0x00, 0x00, 0x04, 0x20, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x81, 0x07, 0x01, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x02, 0x80, 0x20, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x80, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0xc0, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x0d, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, - 0x02, 0x02, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, - 0x00, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, - 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00 - }, - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - } -}; -GLint exp_lists[7]; - - -static void Init(void) -{ - GLint i; - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClearIndex(0.0); - - glPixelStorei(GL_UNPACK_LSB_FIRST, GL_TRUE); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - for (i = 0; i < 7; i++) { - exp_lists[i] = glGenLists(1); - glNewList(exp_lists[i], GL_COMPILE); - glBitmap(80, 80, 40.0, 40.0, 0.0, 0.0, exp_bits[i]); - glEndList(); - } - - abuse = GL_FALSE; - useLists = GL_TRUE; -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-175, 175, -175, 175); - glMatrixMode(GL_MODELVIEW); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case '1': - useLists = !useLists; - break; - case '2': - abuse = !abuse; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - GLint i, j; - - glClear(GL_COLOR_BUFFER_BIT); - - for (i = 0; i < 7; i++) { - for (j = 0; j < 40; j++) { - switch (j % 7) { - case 0: - SetColor(COLOR_YELLOW); - break; - case 1: - SetColor(COLOR_GREEN); - break; - case 2: - SetColor(COLOR_BLUE); - break; - case 3: - SetColor(COLOR_MAGENTA); - break; - case 4: - SetColor(COLOR_CYAN); - break; - case 5: - SetColor(COLOR_WHITE); - break; - case 6: - SetColor(COLOR_RED); - break; - } - glRasterPos3i((j*3)%5, (j*3)%8, 0); - - if (useLists) { - glCallList(exp_lists[i]); - } else { - glBitmap(80, 80, 40.0, 40.0, 0.0, 0.0, exp_bits[i]); - } - if (!abuse) { - break; - } - } - - if (i == 6) { - break; - } - - for (j = 0; j < 40; j++) { - SetColor(COLOR_BLACK); - glRasterPos3i((j*3)%5, (j*3)%8, 0); - if (useLists) { - glCallList(exp_lists[i]); - } else { - glBitmap(80, 80, 40.0, 40.0, 0.0, 0.0, exp_bits[i]); - } - if (!abuse) { - break; - } - } - } - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - glutInitWindowPosition(0, 0); glutInitWindowSize( 300, 300); - - windType = (rgb) ? GLUT_RGB : GLUT_INDEX; - windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(windType); - - if (glutCreateWindow("Bitmap Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/blendeq.c b/progs/samples/blendeq.c deleted file mode 100644 index 037d06fa528..00000000000 --- a/progs/samples/blendeq.c +++ /dev/null @@ -1,311 +0,0 @@ -/* -** blendeq.c - Demonstrates the use of the blend_minmax, blend_subtract, -** and blend_logic_op extensions using glBlendEquationEXT. -** -** Over a two-color backround, draw rectangles using twelve blend -** options. The values are read back as UNSIGNED_BYTE and printed -** in hex over each value. These values are useful for logic -** op comparisons when channels are 8 bits deep. -*/ - -#include <string.h> -#include <stdlib.h> -#include <stdio.h> -#include <GL/glew.h> -#include <GL/glut.h> - -GLenum doubleBuffer; -static int dithering = 0; -int use11ops = 0; -int supportlogops = 0; -static int doPrint = 1; -static int deltaY; -GLint windW, windH; - -static const struct { - GLenum mode; - const char *name; -} LogicOpModes[] = { - { GL_SET, "GL_SET" }, - { GL_COPY, "GL_COPY" }, - { GL_NOOP, "GL_NOOP" }, - { GL_AND, "GL_AND" }, - { GL_INVERT, "GL_INVERT" }, - { GL_OR, "GL_OR" }, - { GL_XOR, "GL_XOR" }, - { GL_NOR, "GL_NOR" }, - { GL_NAND, "GL_NAND" }, - { GL_OR_REVERSE, "GL_OR_REVERSE" }, - { GL_OR_INVERTED, "GL_OR_INVERTED" }, - { GL_AND_INVERTED, "GL_AND_INVERTED" }, - { 0, NULL } -}; - - - -static void DrawString(const char *string) -{ - int i; - - for (i = 0; string[i]; i++) - glutBitmapCharacter(GLUT_BITMAP_9_BY_15, string[i]); -} - -static void Init(void) -{ - - glDisable(GL_DITHER); - glShadeModel(GL_FLAT); -} - -static void Reshape(int width, int height) -{ - - windW = (GLint)width; - windH = (GLint)height; - - glViewport(0, 0, (GLint)width, (GLint)height); - deltaY = windH /20; - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(0, windW, 0, windH); - glMatrixMode(GL_MODELVIEW); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case 'd': - dithering = !dithering; - break; - case 'l': - if (supportlogops == 3) - use11ops = (!use11ops); - if (use11ops) - printf("Using GL 1.1 color logic ops.\n"); - else printf("Using GL_EXT_blend_logic_op.\n"); - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void PrintColorStrings( void ) -{ - GLubyte ubbuf[3]; - int i, xleft, xright; - char colorString[100]; - - xleft = 5 + windW/4; - xright = 5 + windW/2; - - for (i = windH - deltaY + 4; i > 0; i-=deltaY) { - glReadPixels(xleft, i+10, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, ubbuf); - sprintf(colorString, "(0x%x, 0x%x, 0x%x)", - ubbuf[0], ubbuf[1], ubbuf[2]); - glRasterPos2f(xleft, i); - DrawString(colorString); - glReadPixels(xright, i+10, 1, 1, GL_RGB, GL_UNSIGNED_BYTE, ubbuf); - sprintf(colorString, "(0x%x, 0x%x, 0x%x)", - ubbuf[0], ubbuf[1], ubbuf[2]); - glRasterPos2f(xright, i); - DrawString(colorString); - } -} - -static void Draw(void) -{ - int stringOffset = 5, stringx = 8; - int x1, x2, xleft, xright; - int i, k; - - (dithering) ? glEnable(GL_DITHER) : glDisable(GL_DITHER); - glDisable(GL_BLEND); - if (supportlogops & 2) - glDisable(GL_COLOR_LOGIC_OP); - - glClearColor(0.5, 0.6, 0.1, 1.0); - glClear(GL_COLOR_BUFFER_BIT); - - /* Draw background */ - glColor3f(0.1, 0.1, 1.0); - glRectf(0.0, 0.0, windW/2, windH); - - /* Draw labels */ - glColor3f(0.8, 0.8, 0.0); - i = windH - deltaY + stringOffset; - - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("SOURCE"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("DEST"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("min"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("max"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("subtract"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("reverse_subtract"); - glRasterPos2f(stringx, i); i -= deltaY; - DrawString("clear"); - - for (k = 0; LogicOpModes[k].name; k++) { - glRasterPos2f(stringx, i); - i -= deltaY; - DrawString(LogicOpModes[k].name); - } - - i = windH - deltaY; - x1 = windW/4; - x2 = 3 * windW/4; - xleft = 5 + windW/4; - xright = 5 + windW/2; - - /* Draw foreground color for comparison */ - glColor3f(0.9, 0.2, 0.8); - glRectf(x1, i, x2, i+deltaY); - - /* Leave one rectangle of background color */ - - /* Begin test cases */ - glEnable(GL_BLEND); - glBlendFunc(GL_ONE, GL_ONE); - - i -= 2*deltaY; - glBlendEquationEXT(GL_MIN_EXT); - glRectf(x1, i, x2, i+deltaY); - - i -= deltaY; - glBlendEquationEXT(GL_MAX_EXT); - glRectf(x1, i, x2, i+deltaY); - - i -= deltaY; - glBlendEquationEXT(GL_FUNC_SUBTRACT_EXT); - glRectf(x1, i, x2, i+deltaY); - - i -= deltaY; - glBlendEquationEXT(GL_FUNC_REVERSE_SUBTRACT_EXT); - glRectf(x1, i, x2, i+deltaY); - - glBlendFunc(GL_ONE, GL_ZERO); - i -= deltaY; - if (!use11ops) - glBlendEquationEXT(GL_LOGIC_OP); - else - glEnable(GL_COLOR_LOGIC_OP); - glLogicOp(GL_CLEAR); - glRectf(x1, i, x2, i+deltaY); - - for (k = 0; LogicOpModes[k].name; k++) { - i -= deltaY; - glLogicOp(LogicOpModes[k].mode); - glRectf(x1, i, x2, i+deltaY); - if (LogicOpModes[k].mode == GL_XOR) { - glRectf(x1, i+10, x2, i+5); - } - } - - if (doPrint) { - glDisable(GL_BLEND); - if (supportlogops & 2) - glDisable(GL_COLOR_LOGIC_OP); - glColor3f(1.0, 1.0, 1.0); - PrintColorStrings(); - } - 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 { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - GLenum type; - char *s; - char *extName1 = "GL_EXT_blend_logic_op"; - char *extName2 = "GL_EXT_blend_minmax"; - char *extName3 = "GL_EXT_blend_subtract"; - char *version; - - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - glutInitWindowPosition(0, 0); glutInitWindowSize( 800, 520); - - type = GLUT_RGB; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Blend Equation") == GL_FALSE) { - exit(1); - } - - glewInit(); - - /* Make sure blend_logic_op extension is there. */ - s = (char *) glGetString(GL_EXTENSIONS); - version = (char*) glGetString(GL_VERSION); - if (!s) - exit(1); - if (strstr(s,extName1)) { - supportlogops = 1; - use11ops = 0; - printf("blend_logic_op extension available.\n"); - } - if (strncmp(version,"1.1",3)>=0) { - supportlogops += 2; - use11ops = 1; - printf("1.1 color logic ops available.\n"); - } - if (supportlogops == 0) { - printf("Blend_logic_op extension and GL 1.1 not present.\n"); - exit(1); - } - if (strstr(s,extName2) == 0) { - printf("Blend_minmax extension is not present.\n"); - exit(1); - } - if (strstr(s,extName3) == 0) { - printf("Blend_subtract extension is not present.\n"); - exit(1); - } - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/blendxor.c b/progs/samples/blendxor.c deleted file mode 100644 index 057143651fd..00000000000 --- a/progs/samples/blendxor.c +++ /dev/null @@ -1,203 +0,0 @@ -/* -** blendxor.c - Demonstrates the use of the blend_logic_op -** extension to draw hilights. Using XOR to draw the same -** image twice restores the background to its original value. -*/ - -#include <stdio.h> -#include <string.h> -#ifndef _WIN32 -#include <unistd.h> -#endif -#include <stdlib.h> -#include <GL/glew.h> -#include <GL/glut.h> - - -GLenum doubleBuffer; -int dithering = 0; -int use11ops = 0; -int supportlogops = 0; -GLint windW, windH; - -static void Init(void) -{ - glDisable(GL_DITHER); - glShadeModel(GL_FLAT); -} - -static void Reshape(int width, int height) -{ - - windW = (GLint)width; - windH = (GLint)height; - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(0, 400, 0, 400); - glMatrixMode(GL_MODELVIEW); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case 'd': - dithering = !dithering; - break; - case 'l': - if (supportlogops == 3) - use11ops = (!use11ops); - if (use11ops) - printf("Using GL 1.1 color logic ops.\n"); - else printf("Using GL_EXT_blend_logic_op.\n"); - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - int i; - - glDisable(GL_BLEND); - if (supportlogops & 2) - glDisable(GL_COLOR_LOGIC_OP); - - (dithering) ? glEnable(GL_DITHER) : glDisable(GL_DITHER); - - glClearColor(0.5, 0.6, 0.1, 1.0); - glClear(GL_COLOR_BUFFER_BIT); - - /* Draw background prims */ - glColor3f(0.1, 0.1, 1.0); - glBegin(GL_TRIANGLES); - glVertex2i(5, 5); - glVertex2i(130, 50); - glVertex2i(100, 300); - glEnd(); - glColor3f(0.5, 0.2, 0.9); - glBegin(GL_TRIANGLES); - glVertex2i(200, 100); - glVertex2i(330, 50); - glVertex2i(340, 400); - glEnd(); - - glEnable(GL_BLEND); - if (!use11ops) - glBlendEquationEXT(GL_LOGIC_OP); - else - glEnable(GL_COLOR_LOGIC_OP); - glLogicOp(GL_XOR); - - /* Draw a set of rectangles across the window */ - glColor3f(0.9, 0.2, 0.8); - for(i = 0; i < 400; i+=60) { - glBegin(GL_POLYGON); - glVertex2i(i, 100); - glVertex2i(i+50, 100); - glVertex2i(i+50, 200); - glVertex2i(i, 200); - glEnd(); - } - glFlush(); /* Added by Brian Paul */ -#ifndef _WIN32 - sleep(2); -#endif - - /* Redraw the rectangles, which should erase them */ - for(i = 0; i < 400; i+=60) { - glBegin(GL_POLYGON); - glVertex2i(i, 100); - glVertex2i(i+50, 100); - glVertex2i(i+50, 200); - glVertex2i(i, 200); - 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 { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - GLenum type; - char *s; - char *extName = "GL_EXT_blend_logic_op"; - char *version; - - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - glutInitWindowPosition(0, 0); glutInitWindowSize( 400, 400); - - type = GLUT_RGB; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Blend XOR") == GL_FALSE) { - exit(1); - } - - glewInit(); - - /* Make sure blend_logic_op extension is there. */ - s = (char *) glGetString(GL_EXTENSIONS); - version = (char*) glGetString(GL_VERSION); - if (!s) - exit(1); - if (strstr(s,extName)) { - supportlogops = 1; - use11ops = 0; - printf("blend_logic_op extension available.\n"); - } - if (strncmp(version,"1.1",3)>=0) { - supportlogops += 2; - use11ops = 1; - printf("1.1 color logic ops available.\n"); - } - if (supportlogops == 0) { - printf("Blend_logic_op extension and GL 1.1 not present.\n"); - exit(1); - } - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/copy.c b/progs/samples/copy.c deleted file mode 100644 index 353a3a2e1a2..00000000000 --- a/progs/samples/copy.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - * 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/glew.h> -#include <GL/glut.h> - - -#include "loadppm.c" - -GLenum doubleBuffer; -GLint windW, windH; - -char *fileName = 0; -PPMImage *image; -float zoom; -GLint x, y; - -static void Init(void) -{ - - glClearColor(0.0, 0.0, 0.0, 0.0); - - x = 0; - y = windH; - zoom = 1.8; -} - -static void Reshape(int width, int height) -{ - - windW = (GLint)width; - windH = (GLint)height; - - glViewport(0, 0, windW, windH); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(0, windW, 0, windH); - glMatrixMode(GL_MODELVIEW); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case 'Z': - zoom += 0.2; - break; - case 'z': - zoom -= 0.2; - if (zoom < 0.2) { - zoom = 0.2; - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Mouse(int button, int state, int mouseX, int mouseY) -{ - if (state != GLUT_DOWN) - return; - x = (GLint)mouseX; - y = (GLint)mouseY; - - glutPostRedisplay(); -} - -static void Draw(void) -{ - GLint src[3], dst[3]; - - glClear(GL_COLOR_BUFFER_BIT); - - src[0] = (int) ((windW / 2.0) - (image->sizeX / 2.0)); - src[1] = (int) ((windH / 2.0) - (image->sizeY / 2.0)); - src[2] = 0; - glWindowPos3ivARB(src); - - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - glPixelZoom(1.0, 1.0); - glDrawPixels(image->sizeX, image->sizeY, GL_RGB, GL_UNSIGNED_BYTE, - image->data); - - dst[0] = x; - dst[1] = windH - y; - dst[2] = 0; - glWindowPos3ivARB(dst); - - glPixelZoom(zoom, zoom); - glCopyPixels(src[0], src[1], - image->sizeX, image->sizeY, GL_COLOR); - - 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 if (strcmp(argv[i], "-f") == 0) { - if (i+1 >= argc || argv[i+1][0] == '-') { - printf("-f (No file name).\n"); - return GL_FALSE; - } else { - fileName = argv[++i]; - } - } else { - printf("%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); - } - - if (fileName == 0) { - printf("No image file.\n"); - exit(1); - } - - image = LoadPPM(fileName); - - windW = 2*300; - windH = 2*300; - glutInitWindowPosition(0, 0); glutInitWindowSize( windW, windH); - - type = GLUT_RGB; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Copy Test") == GL_FALSE) { - exit(1); - } - - glewInit(); - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutMouseFunc(Mouse); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/cursor.c b/progs/samples/cursor.c deleted file mode 100644 index de8fc58556c..00000000000 --- a/progs/samples/cursor.c +++ /dev/null @@ -1,150 +0,0 @@ -/* - * 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> - - -GLenum rgb, doubleBuffer, windType; -int windX, windY; -int cursor; - - -#include "tkmap.c" - -static void Init(void) -{ - cursor = 0; - glutSetCursor(cursor); - glClearColor(0.0, 0.0, 0.0, 0.0); - glClearIndex(0.0); -} - -static void Reshape(int width, int height) -{ - - windX = width; - windY = height; - glViewport(0, 0, windX, windY); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(0, windX, 0, windY); - glMatrixMode(GL_MODELVIEW); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case 32: - cursor++; - if (cursor > 19) { - cursor = 0; - } - glutSetCursor(cursor); - } -} - -static void Draw(void) -{ - - glClear(GL_COLOR_BUFFER_BIT); - - glBegin(GL_POLYGON); - SetColor(COLOR_BLACK); - glVertex2i(0, 0); - SetColor(COLOR_RED); - glVertex2i(windX, 0); - SetColor(COLOR_GREEN); - glVertex2i(windX, windY); - SetColor(COLOR_BLUE); - glVertex2i(0, windY); - glEnd(); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - windX = 300; - windY = 300; - glutInitWindowPosition(0, 0); glutInitWindowSize( windX, windY); - - windType = (rgb) ? GLUT_RGB : GLUT_INDEX; - windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(windType); - - if (glutCreateWindow("Cursor Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/depth.c b/progs/samples/depth.c deleted file mode 100644 index afe2ec17a38..00000000000 --- a/progs/samples/depth.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * 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 rgb, doubleBuffer; - -GLenum antiAlias, stipple; -GLubyte stippleBits[32*4] = { - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, - 0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55, -}; - - -#include "tkmap.c" - -static void Init(void) -{ - GLint i; - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClearIndex(0.0); - - if (!rgb) { - for (i = 0; i < 16; i++) { - glutSetColor(i+CI_OFFSET_1, 0.0, 0.0, i/15.0); - glutSetColor(i+CI_OFFSET_2, 0.0, i/15.0, 0.0); - } - } - - glPolygonStipple(stippleBits); - - antiAlias = GL_FALSE; - stipple = GL_FALSE; -} - -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); - case '1': - antiAlias = !antiAlias; - break; - case '2': - stipple = !stipple; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - GLint ci1, ci2; - - glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - - if (antiAlias) { - ci1 = CI_OFFSET_1; - ci2 = CI_OFFSET_2; - glBlendFunc(GL_SRC_ALPHA, GL_ONE); - glEnable(GL_BLEND); - glEnable(GL_POLYGON_SMOOTH); - glDisable(GL_DEPTH_TEST); - } else { - ci1 = COLOR_BLUE; - ci2 = COLOR_GREEN; - glDisable(GL_BLEND); - glDisable(GL_POLYGON_SMOOTH); - glEnable(GL_DEPTH_TEST); - } - - if (stipple) { - glEnable(GL_POLYGON_STIPPLE); - } else { - glDisable(GL_POLYGON_STIPPLE); - } - - glBegin(GL_TRIANGLES); - (rgb) ? glColor3fv(RGBMap[COLOR_BLUE]) : glIndexi(ci1); - glVertex3f( 0.9, -0.9, -30.0); - glVertex3f( 0.9, 0.9, -30.0); - glVertex3f(-0.9, 0.0, -30.0); - (rgb) ? glColor3fv(RGBMap[COLOR_GREEN]) : glIndexi(ci2); - glVertex3f(-0.9, -0.9, -40.0); - glVertex3f(-0.9, 0.9, -40.0); - glVertex3f( 0.9, 0.0, -25.0); - glEnd(); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%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( 300, 300); - - type = GLUT_DEPTH; - type |= (rgb) ? GLUT_RGB : GLUT_INDEX; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Depth Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/eval.c b/progs/samples/eval.c deleted file mode 100644 index 3ad9c5468f8..00000000000 --- a/progs/samples/eval.c +++ /dev/null @@ -1,472 +0,0 @@ -/* - * 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 VORDER 10 -#define CORDER 10 -#define TORDER 3 - -#define VMAJOR_ORDER 2 -#define VMINOR_ORDER 3 - -#define CMAJOR_ORDER 2 -#define CMINOR_ORDER 2 - -#define TMAJOR_ORDER 2 -#define TMINOR_ORDER 2 - -#define VDIM 4 -#define CDIM 4 -#define TDIM 2 - -#define ONE_D 1 -#define TWO_D 2 - -#define EVAL 3 -#define MESH 4 - - -GLenum doubleBuffer; - -float rotX = 0.0, rotY = 0.0, translateZ = -1.0; - -GLenum arrayType = ONE_D; -GLenum colorType = GL_FALSE; -GLenum textureType = GL_FALSE; -GLenum polygonFilled = GL_FALSE; -GLenum lighting = GL_FALSE; -GLenum mapPoint = GL_FALSE; -GLenum mapType = EVAL; - -double point1[10*4] = { - -0.5, 0.0, 0.0, 1.0, - -0.4, 0.5, 0.0, 1.0, - -0.3,-0.5, 0.0, 1.0, - -0.2, 0.5, 0.0, 1.0, - -0.1,-0.5, 0.0, 1.0, - 0.0, 0.5, 0.0, 1.0, - 0.1,-0.5, 0.0, 1.0, - 0.2, 0.5, 0.0, 1.0, - 0.3,-0.5, 0.0, 1.0, - 0.4, 0.0, 0.0, 1.0, -}; -double cpoint1[10*4] = { - 0.0, 0.0, 1.0, 1.0, - 0.3, 0.0, 0.7, 1.0, - 0.6, 0.0, 0.3, 1.0, - 1.0, 0.0, 0.0, 1.0, - 1.0, 0.3, 0.0, 1.0, - 1.0, 0.6, 0.0, 1.0, - 1.0, 1.0, 0.0, 1.0, - 1.0, 1.0, 0.5, 1.0, - 1.0, 1.0, 1.0, 1.0, -}; -double tpoint1[11*4] = { - 0.0, 0.0, 0.0, 1.0, - 0.0, 0.1, 0.0, 1.0, - 0.0, 0.2, 0.0, 1.0, - 0.0, 0.3, 0.0, 1.0, - 0.0, 0.4, 0.0, 1.0, - 0.0, 0.5, 0.0, 1.0, - 0.0, 0.6, 0.0, 1.0, - 0.0, 0.7, 0.0, 1.0, - 0.0, 0.8, 0.0, 1.0, - 0.0, 0.9, 0.0, 1.0, -}; -double point2[2*3*4] = { - -0.5, -0.5, 0.5, 1.0, - 0.0, 1.0, 0.5, 1.0, - 0.5, -0.5, 0.5, 1.0, - -0.5, 0.5, -0.5, 1.0, - 0.0, -1.0, -0.5, 1.0, - 0.5, 0.5, -0.5, 1.0, -}; -double cpoint2[2*2*4] = { - 0.0, 0.0, 0.0, 1.0, - 0.0, 0.0, 1.0, 1.0, - 0.0, 1.0, 0.0, 1.0, - 1.0, 1.0, 1.0, 1.0, -}; -double tpoint2[2*2*2] = { - 0.0, 0.0, 0.0, 1.0, - 1.0, 0.0, 1.0, 1.0, -}; -float textureImage[4*2*4] = { - 1.0, 1.0, 1.0, 1.0, - 1.0, 0.0, 0.0, 1.0, - 1.0, 0.0, 0.0, 1.0, - 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 1.0, 1.0, - 1.0, 0.0, 0.0, 1.0, - 1.0, 0.0, 0.0, 1.0, - 1.0, 1.0, 1.0, 1.0, -}; - - -static void Init(void) -{ - static float ambient[] = {0.1, 0.1, 0.1, 1.0}; - static float diffuse[] = {1.0, 1.0, 1.0, 1.0}; - static float position[] = {0.0, 0.0, -150.0, 0.0}; - static float front_mat_diffuse[] = {1.0, 0.2, 1.0, 1.0}; - static float back_mat_diffuse[] = {1.0, 1.0, 0.2, 1.0}; - static float lmodel_ambient[] = {1.0, 1.0, 1.0, 1.0}; - static float lmodel_twoside[] = {GL_TRUE}; - static float decal[] = {GL_DECAL}; - static float repeat[] = {GL_REPEAT}; - static float nr[] = {GL_NEAREST}; - - glFrontFace(GL_CCW); - - glEnable(GL_DEPTH_TEST); - - glMap1d(GL_MAP1_VERTEX_4, 0.0, 1.0, VDIM, VORDER, point1); - glMap1d(GL_MAP1_COLOR_4, 0.0, 1.0, CDIM, CORDER, cpoint1); - - glMap2d(GL_MAP2_VERTEX_4, 0.0, 1.0, VMINOR_ORDER*VDIM, VMAJOR_ORDER, 0.0, - 1.0, VDIM, VMINOR_ORDER, point2); - glMap2d(GL_MAP2_COLOR_4, 0.0, 1.0, CMINOR_ORDER*CDIM, CMAJOR_ORDER, 0.0, - 1.0, CDIM, CMINOR_ORDER, cpoint2); - glMap2d(GL_MAP2_TEXTURE_COORD_2, 0.0, 1.0, TMINOR_ORDER*TDIM, - TMAJOR_ORDER, 0.0, 1.0, TDIM, TMINOR_ORDER, tpoint2); - - glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_POSITION, position); - - glMaterialfv(GL_FRONT, GL_DIFFUSE, front_mat_diffuse); - glMaterialfv(GL_BACK, GL_DIFFUSE, back_mat_diffuse); - - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); - glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside); - - glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, decal); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, repeat); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, repeat); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, nr); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, nr); - glTexImage2D(GL_TEXTURE_2D, 0, 4, 2, 4, 0, GL_RGBA, GL_FLOAT, - (GLvoid *)textureImage); -} - -static void DrawPoints1(void) -{ - GLint i; - - glColor3f(0.0, 1.0, 0.0); - glPointSize(2); - glBegin(GL_POINTS); - for (i = 0; i < VORDER; i++) { - glVertex4dv(&point1[i*4]); - } - glEnd(); -} - -static void DrawPoints2(void) -{ - GLint i, j; - - glColor3f(1.0, 0.0, 1.0); - glPointSize(2); - glBegin(GL_POINTS); - for (i = 0; i < VMAJOR_ORDER; i++) { - for (j = 0; j < VMINOR_ORDER; j++) { - glVertex4dv(&point2[i*4*VMINOR_ORDER+j*4]); - } - } - glEnd(); -} - -static void DrawMapEval1(float du) -{ - float u; - - glColor3f(1.0, 0.0, 0.0); - glBegin(GL_LINE_STRIP); - for (u = 0.0; u < 1.0; u += du) { - glEvalCoord1d(u); - } - glEvalCoord1d(1.0); - glEnd(); -} - -static void DrawMapEval2(float du, float dv) -{ - float u, v, tmp; - - glColor3f(1.0, 0.0, 0.0); - for (v = 0.0; v < 1.0; v += dv) { - glBegin(GL_QUAD_STRIP); - for (u = 0.0; u <= 1.0; u += du) { - glEvalCoord2d(u,v); - tmp = (v + dv < 1.0) ? (v + dv) : 1.0; - glEvalCoord2d(u, tmp); - } - glEvalCoord2d(1.0, v); - glEvalCoord2d(1.0, v+dv); - glEnd(); - } -} - -static void RenderEval(void) -{ - - if (colorType) { - glEnable(GL_MAP1_COLOR_4); - glEnable(GL_MAP2_COLOR_4); - } else { - glDisable(GL_MAP1_COLOR_4); - glDisable(GL_MAP2_COLOR_4); - } - - if (textureType) { - glEnable(GL_TEXTURE_2D); - glEnable(GL_MAP2_TEXTURE_COORD_2); - } else { - glDisable(GL_TEXTURE_2D); - glDisable(GL_MAP2_TEXTURE_COORD_2); - } - - if (polygonFilled) { - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - } else { - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - } - - glShadeModel(GL_SMOOTH); - - switch (mapType) { - case EVAL: - switch (arrayType) { - case ONE_D: - glDisable(GL_MAP2_VERTEX_4); - glEnable(GL_MAP1_VERTEX_4); - DrawPoints1(); - DrawMapEval1(0.1/VORDER); - break; - case TWO_D: - glDisable(GL_MAP1_VERTEX_4); - glEnable(GL_MAP2_VERTEX_4); - DrawPoints2(); - DrawMapEval2(0.1/VMAJOR_ORDER,0.1/VMINOR_ORDER); - break; - default: - break; - } - break; - case MESH: - switch (arrayType) { - case ONE_D: - DrawPoints1(); - glDisable(GL_MAP2_VERTEX_4); - glEnable (GL_MAP1_VERTEX_4); - glColor3f(0.0, 0.0, 1.0); - glMapGrid1d(40, 0.0, 1.0); - if (mapPoint) { - glPointSize(2); - glEvalMesh1(GL_POINT, 0, 40); - } else { - glEvalMesh1(GL_LINE, 0, 40); - } - break; - case TWO_D: - DrawPoints2(); - glDisable(GL_MAP1_VERTEX_4); - glEnable(GL_MAP2_VERTEX_4); - glColor3f(0.0, 0.0, 1.0); - glMapGrid2d(20, 0.0, 1.0, 20, 0.0, 1.0); - if (mapPoint) { - glPointSize(2); - glEvalMesh2(GL_POINT, 0, 20, 0, 20); - } else if (polygonFilled) { - glEvalMesh2(GL_FILL, 0, 20, 0, 20); - } else { - glEvalMesh2(GL_LINE, 0, 20, 0, 20); - } - break; - default: - break; - } - break; - default: - break; - } -} - -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, 10.0); - glMatrixMode(GL_MODELVIEW); -} - -static void Key2(int key, int x, int y) -{ - switch (key) { - case GLUT_KEY_LEFT: - rotY -= 30; - break; - case GLUT_KEY_RIGHT: - rotY += 30; - break; - case GLUT_KEY_UP: - rotX -= 30; - break; - case GLUT_KEY_DOWN: - rotX += 30; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - switch (key) { - case 27: - exit(1); - case '1': - arrayType = ONE_D; - break; - case '2': - arrayType = TWO_D; - break; - case 'e': - mapType = EVAL; - break; - case 'm': - mapType = MESH; - break; - case 'f': - polygonFilled = !polygonFilled; - break; - case 'p': - mapPoint = !mapPoint; - break; - case 'c': - colorType = !colorType; - break; - case 't': - textureType = !textureType; - break; - case 'l': - lighting =! lighting; - if (lighting) { - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_AUTO_NORMAL); - } else { - glDisable(GL_LIGHTING); - glDisable(GL_LIGHT0); - glDisable(GL_AUTO_NORMAL); - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - - glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - - glTranslatef(0.0, 0.0 , translateZ); - glRotatef(rotX, 1, 0, 0); - glRotatef(rotY, 0, 1, 0); - RenderEval(); - - glPopMatrix(); - - 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 { - printf("%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( 300, 300); - - type = GLUT_RGB | GLUT_DEPTH; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Evaluator Test") == GL_FALSE) { - exit(1); - } - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/fog.c b/progs/samples/fog.c deleted file mode 100644 index 3f3ffdbcc7a..00000000000 --- a/progs/samples/fog.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - * 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> - -GLenum rgb, doubleBuffer; - -#include "tkmap.c" - -double plane[4] = { - 1.0, 0.0, -1.0, 0.0 -}; -float rotX = 5.0, rotY = -5.0, zTranslate = -65.0; -float fogDensity = 0.02; -GLint cubeList = 1; - -float scp[18][3] = { - { - 1.000000, 0.000000, 0.000000 - }, - { - 1.000000, 0.000000, 5.000000 - }, - { - 0.707107, 0.707107, 0.000000 - }, - { - 0.707107, 0.707107, 5.000000 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - 0.000000, 1.000000, 5.000000 - }, - { - -0.707107, 0.707107, 0.000000 - }, - { - -0.707107, 0.707107, 5.000000 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -1.000000, 0.000000, 5.000000 - }, - { - -0.707107, -0.707107, 0.000000 - }, - { - -0.707107, -0.707107, 5.000000 - }, - { - 0.000000, -1.000000, 0.000000 - }, - { - 0.000000, -1.000000, 5.000000 - }, - { - 0.707107, -0.707107, 0.000000 - }, - { - 0.707107, -0.707107, 5.000000 - }, - { - 1.000000, 0.000000, 0.000000 - }, - { - 1.000000, 0.000000, 5.000000 - }, -}; - - -static void Build_lists(void) -{ - - glNewList(cubeList, GL_COMPILE); - glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(scp[0]); glVertex3fv(scp[0]); - glNormal3fv(scp[0]); glVertex3fv(scp[1]); - glNormal3fv(scp[2]); glVertex3fv(scp[2]); - glNormal3fv(scp[2]); glVertex3fv(scp[3]); - glNormal3fv(scp[4]); glVertex3fv(scp[4]); - glNormal3fv(scp[4]); glVertex3fv(scp[5]); - glNormal3fv(scp[6]); glVertex3fv(scp[6]); - glNormal3fv(scp[6]); glVertex3fv(scp[7]); - glNormal3fv(scp[8]); glVertex3fv(scp[8]); - glNormal3fv(scp[8]); glVertex3fv(scp[9]); - glNormal3fv(scp[10]); glVertex3fv(scp[10]); - glNormal3fv(scp[10]); glVertex3fv(scp[11]); - glNormal3fv(scp[12]); glVertex3fv(scp[12]); - glNormal3fv(scp[12]); glVertex3fv(scp[13]); - glNormal3fv(scp[14]); glVertex3fv(scp[14]); - glNormal3fv(scp[14]); glVertex3fv(scp[15]); - glNormal3fv(scp[16]); glVertex3fv(scp[16]); - glNormal3fv(scp[16]); glVertex3fv(scp[17]); - glEnd(); - glEndList(); -} - -static void Init(void) -{ - static float ambient[] = {0.1, 0.1, 0.1, 1.0}; - static float diffuse[] = {1.0, 1.0, 1.0, 1.0}; - static float position[] = {90.0, 90.0, 0.0, 0.0}; - static float front_mat_shininess[] = {30.0}; - static float front_mat_specular[] = {0.0, 0.0, 0.0, 1.0}; - static float front_mat_diffuse[] = {0.0, 1.0, 0.0, 1.0}; - static float back_mat_shininess[] = {50.0}; - static float back_mat_specular[] = {0.0, 0.0, 1.0, 1.0}; - static float back_mat_diffuse[] = {1.0, 0.0, 0.0, 1.0}; - static float lmodel_ambient[] = {0.0, 0.0, 0.0, 1.0}; - static float fog_color[] = {0.8, 0.8, 0.8, 1.0}; - - glFrontFace(GL_CW); - - glEnable(GL_DEPTH_TEST); - - glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_POSITION, position); - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); - glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - - glMaterialfv(GL_FRONT, GL_SHININESS, front_mat_shininess); - glMaterialfv(GL_FRONT, GL_SPECULAR, front_mat_specular); - glMaterialfv(GL_FRONT, GL_DIFFUSE, front_mat_diffuse); - glMaterialfv(GL_BACK, GL_SHININESS, back_mat_shininess); - glMaterialfv(GL_BACK, GL_SPECULAR, back_mat_specular); - glMaterialfv(GL_BACK, GL_DIFFUSE, back_mat_diffuse); - - glEnable(GL_FOG); - glFogi(GL_FOG_MODE, GL_EXP); - glFogf(GL_FOG_DENSITY, fogDensity); - if (rgb) { - glFogfv(GL_FOG_COLOR, fog_color); - glClearColor(0.8, 0.8, 0.8, 1.0); - } else { - glFogi(GL_FOG_INDEX, 1<<5); - SetFogRamp(5, 3); - glClearIndex(128); - } - - Build_lists(); -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(45.0, 1.0, 1.0, 200.0); - glMatrixMode(GL_MODELVIEW); -} - -static void Key2(int key, int x, int y) -{ - - switch (key) { - case GLUT_KEY_UP: - rotX -= 5; - break; - case GLUT_KEY_DOWN: - rotX += 5; - break; - case GLUT_KEY_LEFT: - rotY -= 5; - break; - case GLUT_KEY_RIGHT: - rotY += 5; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case 'D': - if (rgb) { - fogDensity *= 1.10; - glFogf(GL_FOG_DENSITY, fogDensity); - } - break; - case 'd': - if (rgb) { - fogDensity /= 1.10; - glFogf(GL_FOG_DENSITY, fogDensity); - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - - glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - - glTranslatef(0, 0, zTranslate); - glRotatef(rotY, 0,1,0); - glRotatef(rotX, 1,0,0); - glScalef(1.0, 1.0, 10.0); - - glCallList(cubeList); - - glPopMatrix(); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_TRUE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%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( 300, 300); - - type = GLUT_DEPTH; - type |= (rgb) ? GLUT_RGB : GLUT_INDEX; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Fog Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/font.c b/progs/samples/font.c deleted file mode 100644 index a0091a65d79..00000000000 --- a/progs/samples/font.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - * 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 OPENGL_WIDTH 24 -#define OPENGL_HEIGHT 13 - - -char string[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"; -GLenum rgb, doubleBuffer, windType; -float angleX = 0.0, angleY = 0.0, angleZ = 0.0; -float scaleX = 1.0, scaleY = 1.0, scaleZ = 1.0; -float shiftX = 0.0, shiftY = 0.0, shiftZ = 0.0; - - -#include "tkmap.c" - - -static void DrawBitmapString(void *font, const char *string) -{ - int i; - - for (i = 0; string[i]; i++) - glutBitmapCharacter(font, string[i]); -} - -static void DrawStrokeString(void *font, const char *string) -{ - int i; - - for (i = 0; string[i]; i++) - glutStrokeCharacter(font, string[i]); -} - -static void Init(void) -{ - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClearIndex(0.0); -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(-400.0, 400.0, -200.0, 200.0, -400.0, 400.0); - glMatrixMode(GL_MODELVIEW); -} - -static void Key2(int key, int x, int y) -{ - - switch (key) { - case GLUT_KEY_LEFT: - shiftX -= 20.0; - break; - case GLUT_KEY_RIGHT: - shiftX += 20.0; - break; - case GLUT_KEY_UP: - shiftY += 20.0; - break; - case GLUT_KEY_DOWN: - shiftY -= 20.0; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - - case 'n': - shiftZ += 20.0; - break; - case 'm': - shiftZ -= 20.0; - break; - - case 'q': - scaleX -= 0.1; - if (scaleX < 0.1) { - scaleX = 0.1; - } - break; - case 'w': - scaleX += 0.1; - break; - case 'a': - scaleY -= 0.1; - if (scaleY < 0.1) { - scaleY = 0.1; - } - break; - case 's': - scaleY += 0.1; - break; - case 'z': - scaleZ -= 0.1; - if (scaleZ < 0.1) { - scaleZ = 0.1; - } - break; - case 'x': - scaleZ += 0.1; - break; - - case 'e': - angleX -= 5.0; - if (angleX < 0.0) { - angleX = 360.0 + angleX; - } - break; - case 'r': - angleX += 5.0; - if (angleX > 360.0) { - angleX = angleX - 360.0; - } - break; - case 'd': - angleY -= 5.0; - if (angleY < 0.0) { - angleY = 360.0 + angleY; - } - break; - case 'f': - angleY += 5.0; - if (angleY > 360.0) { - angleY = angleY - 360.0; - } - break; - case 'c': - angleZ -= 5.0; - if (angleZ < 0.0) { - angleZ = 360.0 + angleZ; - } - break; - case 'v': - angleZ += 5.0; - if (angleZ > 360.0) { - angleZ = angleZ - 360.0; - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - - glClear(GL_COLOR_BUFFER_BIT); - - SetColor(COLOR_WHITE); - - glPushMatrix(); - - glTranslatef(shiftX, shiftY, shiftZ); - glRotatef(angleX, 1.0, 0.0, 0.0); - glRotatef(angleY, 0.0, 1.0, 0.0); - glRotatef(angleZ, 0.0, 0.0, 1.0); - glScalef(scaleX, scaleY, scaleZ); - - glPushMatrix(); - glRasterPos2f(-390.5, 0.5); - DrawBitmapString(GLUT_BITMAP_9_BY_15, string); - glPopMatrix(); - - glPushMatrix(); - glTranslatef(-390.5, -30.5, 0.0); - DrawStrokeString(GLUT_STROKE_ROMAN, string); - glPopMatrix(); - - glPopMatrix(); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - glutInitWindowPosition(0, 0); glutInitWindowSize( 800, 400); - - windType = (rgb) ? GLUT_RGB : GLUT_INDEX; - windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(windType); - - if (glutCreateWindow("Font Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/line.c b/progs/samples/line.c deleted file mode 100644 index 83f70cb3ac4..00000000000 --- a/progs/samples/line.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * 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 16 - - -GLenum rgb, doubleBuffer, windType; - -GLenum mode1, mode2; -GLint size; -float pntA[3] = { - -160.0, 0.0, 0.0 -}; -float pntB[3] = { - -130.0, 0.0, 0.0 -}; -float pntC[3] = { - -40.0, -50.0, 0.0 -}; -float pntD[3] = { - 30.0, 60.0, 0.0 -}; - - -#include "tkmap.c" - -static void Init(void) -{ - GLint i; - - glClearColor(0.0, 0.0, 0.0, 0.0); - - glLineStipple(1, 0xF0E0); - glBlendFunc(GL_SRC_ALPHA, GL_ONE); - - if (!rgb) { - for (i = 0; i < 16; i++) { - glutSetColor(i+CI_OFFSET, i/15.0, i/15.0, 0.0); - } - } - - mode1 = GL_FALSE; - mode2 = GL_FALSE; - size = 1; -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-175, 175, -175, 175); - glMatrixMode(GL_MODELVIEW); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case '1': - mode1 = !mode1; - break; - case '2': - mode2 = !mode2; - break; - case 'W': - size++; - break; - case 'w': - size--; - if (size < 1) { - size = 1; - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - GLint ci, i; - - glClear(GL_COLOR_BUFFER_BIT); - - glLineWidth(size); - - if (mode1) { - glEnable(GL_LINE_STIPPLE); - } else { - glDisable(GL_LINE_STIPPLE); - } - - if (mode2) { - ci = CI_OFFSET; - glEnable(GL_LINE_SMOOTH); - glEnable(GL_BLEND); - } else { - ci = COLOR_YELLOW; - glDisable(GL_LINE_SMOOTH); - glDisable(GL_BLEND); - } - - glPushMatrix(); - - glShadeModel( GL_FLAT ); - - for (i = 0; i < 360; i += 5) { - glRotatef(5.0, 0,0,1); - - (rgb) ? glColor3f(1.0, 1.0, 0.0) : glIndexi(ci); - glBegin(GL_LINE_STRIP); - glVertex3fv(pntA); - glVertex3fv(pntB); - glEnd(); - - glPointSize(1); - - SetColor(COLOR_GREEN); - glBegin(GL_POINTS); - glVertex3fv(pntA); - glVertex3fv(pntB); - glEnd(); - } - - glPopMatrix(); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_TRUE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - glutInitWindowPosition(0, 0); glutInitWindowSize( 300, 300); - - windType = (rgb) ? GLUT_RGB : GLUT_INDEX; - windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(windType); - - if (glutCreateWindow("Line Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/loadppm.c b/progs/samples/loadppm.c deleted file mode 100644 index adae9b491e4..00000000000 --- a/progs/samples/loadppm.c +++ /dev/null @@ -1,74 +0,0 @@ - -typedef struct { - size_t sizeX, sizeY; - GLubyte *data; -} PPMImage; - -static PPMImage *LoadPPM(const char *filename) -{ - char buff[16]; - PPMImage *result; - FILE *fp; - int maxval, w, h; - - fp = fopen(filename, "rb"); - if (!fp) - { - fprintf(stderr, "Unable to open file `%s'\n", filename); - exit(1); - } - - if (!fgets(buff, sizeof(buff), fp)) - { - perror(filename); - exit(1); - } - - if (buff[0] != 'P' || buff[1] != '6') - { - fprintf(stderr, "Invalid image format (must be `P6')\n"); - exit(1); - } - - result = (PPMImage *) malloc(sizeof(PPMImage)); - if (!result) - { - fprintf(stderr, "Unable to allocate memory\n"); - exit(1); - } - - if (fscanf(fp, "%d %d", &w, &h) != 2) - { - fprintf(stderr, "Error loading image `%s'\n", filename); - exit(1); - } - result->sizeX = w; - result->sizeY = h; - - if (fscanf(fp, "%d", &maxval) != 1) - { - fprintf(stderr, "Error loading image `%s'\n", filename); - exit(1); - } - - while (fgetc(fp) != '\n') - ; - - result->data = (GLubyte *) malloc(3 * result->sizeX * result->sizeY); - if (!result) - { - fprintf(stderr, "Unable to allocate memory\n"); - exit(1); - } - - if (fread(result->data, 3 * result->sizeX, result->sizeY, fp) != result->sizeY) - { - fprintf(stderr, "Error loading image `%s'\n", filename); - exit(1); - } - - fclose(fp); - - return result; -} - diff --git a/progs/samples/logo.c b/progs/samples/logo.c deleted file mode 100644 index ae74af685a7..00000000000 --- a/progs/samples/logo.c +++ /dev/null @@ -1,1635 +0,0 @@ - -/* - * 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 PI 3.141592654 - -#define BLACK 0 -#define GRAY 128 -#define WHITE 255 -#define BL 0x00 -#define WH 0xFF -#define RD 0xA4,0x00,0x00,0xFF -#define WT 0xFF,0xFF,0xFF,0xFF - -#define CHECKIMAGEWIDTH 8 -#define CHECKIMAGEHEIGHT 8 -#define BRICKIMAGEWIDTH 16 -#define BRICKIMAGEHEIGHT 16 - - -GLenum rgb, doubleBuffer; - -#include "tkmap.c" - -float black[3] = {0.0, 0.0, 0.0}; -float white[3] = {1.0, 1.0, 1.0}; -float gray[3] = {0.5, 0.5, 0.5}; -float blue[3] = {0.0, 0.0, 1.0}; -GLint colorIndexes[3] = {0, 200, 255}; - -GLenum polyMode; -GLboolean dithering; -GLboolean shade; -GLboolean doStipple; -GLboolean noDraw = 0; -GLboolean LineSmooth = GL_FALSE; - -double plane[4] = {1.0, 0.0, -1.0, 0.0}; -float xRotation = 30.0, yRotation = 30.0; -float zTranslation = -15.0; - -GLint singleCylinder; -GLint doubleCylinder; -GLint elbow, logo; - -GLubyte checkImage[3*CHECKIMAGEWIDTH*CHECKIMAGEHEIGHT] = { - BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, - WH, WH, BL, BL, BL, WH, WH, WH, WH, WH, WH, BL, BL, BL, WH, WH, - WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, - BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, - WH, WH, BL, BL, BL, WH, WH, WH, WH, WH, WH, BL, BL, BL, WH, WH, - WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, - BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, - WH, WH, BL, BL, BL, WH, WH, WH, WH, WH, WH, BL, BL, BL, WH, WH, - WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, - BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, - WH, WH, BL, BL, BL, WH, WH, WH, WH, WH, WH, BL, BL, BL, WH, WH, - WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, WH, WH, WH, BL, BL, BL, -}; -GLubyte brickImage[4*BRICKIMAGEWIDTH*BRICKIMAGEHEIGHT] = { - RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, - WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, - RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, - RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, - RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, - RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, - WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, - RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, - WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, - RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD -}; - -GLubyte *image = checkImage; -GLint imageHeight = CHECKIMAGEHEIGHT; -GLint imageWidth = CHECKIMAGEWIDTH; - -static float decal[] = { - GL_DECAL, -}; -static float modulate[] = { - GL_MODULATE, -}; -static float repeat[] = { - GL_REPEAT, -}; -static float nearest[] = { - GL_NEAREST, -}; - -GLubyte stipple[4*32] = { - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - 0x00, 0x0F, 0xF0, 0x00, - - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, -}; - -float tscp[18][2] = { - { - 0.0, 0.0 - }, - { - 1.0, 0.0 - }, - { - 0.0, 0.125 - }, - { - 1.0, 0.125 - }, - { - 0.0, 0.250 - }, - { - 1.0, 0.25 - }, - { - 0.0, 0.375 - }, - { - 1.0, 0.375 - }, - { - 0.0, 0.50 - }, - { - 1.0, 0.50 - }, - { - 0.0, 0.625 - }, - { - 1.0, 0.625 - }, - { - 0.0, 0.75 - }, - { - 1.0, 0.75 - }, - { - 0.0, 0.875 - }, - { - 1.0, 0.875 - }, - { - 0.0, 1.0 - }, - { - 1.0, 1.0 - } -}; -float scp[18][3] = { - { - 1.000000, 0.000000, 0.000000 - }, - { - 1.000000, 0.000000, 5.000000 - }, - { - 0.707107, 0.707107, 0.000000 - }, - { - 0.707107, 0.707107, 5.000000 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - 0.000000, 1.000000, 5.000000 - }, - { - -0.707107, 0.707107, 0.000000 - }, - { - -0.707107, 0.707107, 5.000000 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -1.000000, 0.000000, 5.000000 - }, - { - -0.707107, -0.707107, 0.000000 - }, - { - -0.707107, -0.707107, 5.000000 - }, - { - 0.000000, -1.000000, 0.000000 - }, - { - 0.000000, -1.000000, 5.000000 - }, - { - 0.707107, -0.707107, 0.000000 - }, - { - 0.707107, -0.707107, 5.000000 - }, - { - 1.000000, 0.000000, 0.000000 - }, - { - 1.000000, 0.000000, 5.000000 - } -}; -float dcp[18][3] = { - { - 1.000000, 0.000000, 0.000000 - }, - { - 1.000000, 0.000000, 7.000000 - }, - { - 0.707107, 0.707107, 0.000000 - }, - { - 0.707107, 0.707107, 7.000000 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - 0.000000, 1.000000, 7.000000 - }, - { - -0.707107, 0.707107, 0.000000 - }, - { - -0.707107, 0.707107, 7.000000 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -1.000000, 0.000000, 7.000000 - }, - { - -0.707107, -0.707107, 0.000000 - }, - { - -0.707107, -0.707107, 7.000000 - }, - { - 0.000000, -1.000000, 0.000000 - }, - { - 0.000000, -1.000000, 7.000000 - }, - { - 0.707107, -0.707107, 0.000000 - }, - { - 0.707107, -0.707107, 7.000000 - }, - { - 1.000000, 0.000000, 0.000000 - }, - { - 1.000000, 0.000000, 7.000000 - } -}; -float ep[7][9][3] = { - { - { - 1.000000, 0.000000, 0.000000 - }, - { - 0.707107, 0.707107, 0.000000 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - -0.707107, 0.707107, 0.000000 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -0.707107, -0.707107, 0.000000 - }, - { - 0.000000, -1.000000, 0.000000 - }, - { - 0.707107, -0.707107, 0.000000 - }, - { - 1.000000, 0.000000, 0.000000 - } - }, - { - { - 1.000000, 0.034074, 0.258819 - }, - { - 0.707107, 0.717087, 0.075806 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - -0.707107, 0.717087, 0.075806 - }, - { - -1.000000, 0.034074, 0.258819 - }, - { - -0.707107, -0.648939, 0.441832 - }, - { - 0.000000, -0.931852, 0.517638 - }, - { - 0.707107, -0.648939, 0.441832 - }, - { - 1.000000, 0.034074, 0.258819 - } - }, - { - { - 1.000000, 0.133975, 0.500000 - }, - { - 0.707107, 0.746347, 0.146447 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - -0.707107, 0.746347, 0.146447 - }, - { - -1.000000, 0.133975, 0.500000 - }, - { - -0.707107, -0.478398, 0.853553 - }, - { - 0.000000, -0.732051, 1.000000 - }, - { - 0.707107, -0.478398, 0.853553 - }, - { - 1.000000, 0.133975, 0.500000 - } - }, - { - { - 1.000000, 0.292893, 0.707107 - }, - { - 0.707107, 0.792893, 0.207107 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - -0.707107, 0.792893, 0.207107 - }, - { - -1.000000, 0.292893, 0.707107 - }, - { - -0.707107, -0.207107, 1.207107 - }, - { - 0.000000, -0.414214, 1.414214 - }, - { - 0.707107, -0.207107, 1.207107 - }, - { - 1.000000, 0.292893, 0.707107 - } - }, - { - { - 1.000000, 0.500000, 0.866025 - }, - { - 0.707107, 0.853553, 0.253653 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - -0.707107, 0.853553, 0.253653 - }, - { - -1.000000, 0.500000, 0.866025 - }, - { - -0.707107, 0.146447, 1.478398 - }, - { - 0.000000, 0.000000, 1.732051 - }, - { - 0.707107, 0.146447, 1.478398 - }, - { - 1.000000, 0.500000, 0.866025 - } - }, - { - { - 1.000000, 0.741181, 0.965926 - }, - { - 0.707107, 0.924194, 0.282913 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - -0.707107, 0.924194, 0.282913 - }, - { - -1.000000, 0.741181, 0.965926 - }, - { - -0.707107, 0.558168, 1.648939 - }, - { - 0.000000, 0.482362, 1.931852 - }, - { - 0.707107, 0.558168, 1.648939 - }, - { - 1.000000, 0.741181, 0.965926 - } - }, - { - { - 1.000000, 1.000000, 1.000000 - }, - { - 0.707107, 1.000000, 0.292893 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - -0.707107, 1.000000, 0.292893 - }, - { - -1.000000, 1.000000, 1.000000 - }, - { - -0.707107, 1.000000, 1.707107 - }, - { - 0.000000, 1.000000, 2.000000 - }, - { - 0.707107, 1.000000, 1.707107 - }, - { - 1.000000, 1.000000, 1.000000 - } - } -}; -float en[7][9][3] = { - { - { - 1.000000, 0.000000, 0.000000 - }, - { - 0.707107, 0.707107, 0.000000 - }, - { - 0.000000, 1.000000, 0.000000 - }, - { - -0.707107, 0.707107, 0.000000 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -0.707107, -0.707107, 0.000000 - }, - { - 0.000000, -1.000000, 0.000000 - }, - { - 0.707107, -0.707107, 0.000000 - }, - { - 1.000000, 0.000000, 0.000000 - } - }, - { - { - 1.000000, 0.000000, 0.000000 - }, - { - 0.707107, 0.683013, -0.183013 - }, - { - 0.000000, 0.965926, -0.258819 - }, - { - -0.707107, 0.683013, -0.183013 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -0.707107, -0.683013, 0.183013 - }, - { - 0.000000, -0.965926, 0.258819 - }, - { - 0.707107, -0.683013, 0.183013 - }, - { - 1.000000, 0.000000, 0.000000 - } - }, - { - { - 1.000000, 0.000000, 0.000000 - }, - { - 0.707107, 0.612372, -0.353553 - }, - { - 0.000000, 0.866025, -0.500000 - }, - { - -0.707107, 0.612372, -0.353553 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -0.707107, -0.612372, 0.353553 - }, - { - 0.000000, -0.866025, 0.500000 - }, - { - 0.707107, -0.612372, 0.353553 - }, - { - 1.000000, 0.000000, 0.000000 - } - }, - { - { - 1.000000, 0.000000, 0.000000 - }, - { - /* These 3 lines added by BEP */ - 0.707107, 0.500000, -0.500000 - }, - { - 0.000000, 0.707107, -0.707107 - }, - { - -0.707107, 0.500000, -0.500000 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -0.707107, -0.500000, 0.500000 - }, - { - 0.000000, -0.707107, 0.707107 - }, - { - 0.707107, -0.500000, 0.500000 - }, - { - 1.000000, 0.000000, 0.000000 - } - }, - { - { - 1.000000, 0.000000, 0.000000 - }, - { - 0.707107, 0.353553, -0.612372 - }, - { - 0.000000, 0.500000, -0.866025 - }, - { - -0.707107, 0.353553, -0.612372 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -0.707107, -0.353553, 0.612372 - }, - { - 0.000000, -0.500000, 0.866025 - }, - { - 0.707107, -0.353553, 0.612372 - }, - { - 1.000000, 0.000000, 0.000000 - } - }, - { - { - 1.000000, 0.000000, 0.000000 - }, - { - 0.707107, 0.183013, -0.683013 - }, - { - 0.000000, 0.258819, -0.965926 - }, - { - -0.707107, 0.183013, -0.683013 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -0.707107, -0.183013, 0.683013 - }, - { - 0.000000, -0.258819, 0.965926 - }, - { - 0.707107, -0.183013, 0.683013 - }, - { - 1.000000, 0.000000, 0.000000 - } - }, - { - { - 1.000000, 0.000000, 0.000000 - }, - { - 0.707107, 0.000000, -0.707107 - }, - { - 0.000000, 0.000000, -1.000000 - }, - { - -0.707107, 0.000000, -0.707107 - }, - { - -1.000000, 0.000000, 0.000000 - }, - { - -0.707107, 0.000000, 0.707107 - }, - { - 0.000000, 0.000000, 1.000000 - }, - { - 0.707107, 0.000000, 0.707107 - }, - { - 1.000000, 0.000000, 0.000000 - } - } -}; -float tep[7][9][2] = { - { - { - 0, 0.0 - }, - { - 0.125, 0.0 - }, - { - 0.25, 0.0 - }, - { - 0.375, 0.0 - }, - { - 0.5, 0.0 - }, - { - 0.625, 0.0 - }, - { - 0.75, 0.0 - }, - { - 0.875, 0.0 - }, - { - 1.0, 0.0 - } - }, - { - { - 0, 0.16667 - }, - { - 0.125, 0.16667 - }, - { - 0.25, 0.16667 - }, - { - 0.375, 0.16667 - }, - { - 0.5, 0.16667 - }, - { - 0.625, 0.16667 - }, - { - 0.75, 0.16667 - }, - { - 0.875, 0.16667 - }, - { - 1.0, 0.16667 - } - }, - { - { - 0, 0.33333 - }, - { - 0.125, 0.33333 - }, - { - 0.25, 0.33333 - }, - { - 0.375, 0.33333 - }, - { - 0.5, 0.33333 - }, - { - 0.625, 0.33333 - }, - { - 0.75, 0.33333 - }, - { - 0.875, 0.33333 - }, - { - 1.0, 0.33333 - } - }, - { - { - 0, 0.5 - }, - { - 0.125, 0.5 - }, - { - 0.25, 0.5 - }, - { - 0.375, 0.5 - }, - { - 0.5, 0.5 - }, - { - 0.625, 0.5 - }, - { - 0.75, 0.5 - }, - { - 0.875, 0.5 - }, - { - 1.0, 0.5 - } - }, - { - { - 0, 0.6667 - }, - { - 0.125, 0.6667 - }, - { - 0.25, 0.6667 - }, - { - 0.375, 0.6667 - }, - { - 0.5, 0.6667 - }, - { - 0.625, 0.6667 - }, - { - 0.75, 0.6667 - }, - { - 0.875, 0.6667 - }, - { - 1.0, 0.6667 - } - }, - { - { - 0, 0.83333 - }, - { - 0.125, 0.83333 - }, - { - 0.25, 0.83333 - }, - { - 0.375, 0.83333 - }, - { - 0.5, 0.83333 - }, - { - 0.625, 0.83333 - }, - { - 0.75, 0.83333 - }, - { - 0.875, 0.83333 - }, - { - 1.0, 0.83333 - } - }, - { - { - 0, 1.0 - }, - { - 0.125, 1.0 - }, - { - 0.25, 1.0 - }, - { - 0.375, 1.0 - }, - { - 0.5, 1.0 - }, - { - 0.625, 1.0 - }, - { - 0.75, 1.0 - }, - { - 0.875, 1.0 - }, - { - 1.0, 1.0 - } - } -}; - - -static void SetUpAntiAliasedGrayScale(void) -{ - float color; - GLint i, j; - - for (i = 0; i < 16; i++) { - color = (2 * i + 1) / 32.0; - for (j = 0; j < 16; j++) { - glutSetColor(i*16+j, color*j/15.0, color*j/15.0, color*j/15.0); - } - } -} - -static void BendForward(void) -{ - - glTranslatef(0.0, 1.0, 0.0); - glRotatef(90.0, 1, 0, 0); - glTranslatef(0.0, -1.0, 0.0); -} - -static void BendLeft(void) -{ - - glRotatef(-90.0, 0, 0, 1); - glTranslatef(0.0, 1.0, 0.0); - glRotatef(90.0, 1, 0, 0); - glTranslatef(0.0, -1.0, 0.0); -} - -static void BendRight(void) -{ - - glRotatef(90.0, 0, 0, 1); - glTranslatef(0.0, 1.0, 0.0); - glRotatef(90.0, 1, 0, 0); - glTranslatef(0.0, -1.0, 0.0); -} - -static void BuildSingleCylinder(void) -{ - - glNewList(singleCylinder, GL_COMPILE); - - glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(scp[0]); glTexCoord2fv(tscp[0]); glVertex3fv(scp[0]); - glNormal3fv(scp[0]); glTexCoord2fv(tscp[1]); glVertex3fv(scp[1]); - glNormal3fv(scp[2]); glTexCoord2fv(tscp[2]); glVertex3fv(scp[2]); - glNormal3fv(scp[2]); glTexCoord2fv(tscp[3]); glVertex3fv(scp[3]); - glNormal3fv(scp[4]); glTexCoord2fv(tscp[4]); glVertex3fv(scp[4]); - glNormal3fv(scp[4]); glTexCoord2fv(tscp[5]); glVertex3fv(scp[5]); - glNormal3fv(scp[6]); glTexCoord2fv(tscp[6]); glVertex3fv(scp[6]); - glNormal3fv(scp[6]); glTexCoord2fv(tscp[7]); glVertex3fv(scp[7]); - glNormal3fv(scp[8]); glTexCoord2fv(tscp[8]); glVertex3fv(scp[8]); - glNormal3fv(scp[8]); glTexCoord2fv(tscp[9]); glVertex3fv(scp[9]); - glNormal3fv(scp[10]); glTexCoord2fv(tscp[10]); glVertex3fv(scp[10]); - glNormal3fv(scp[10]); glTexCoord2fv(tscp[11]); glVertex3fv(scp[11]); - glNormal3fv(scp[12]); glTexCoord2fv(tscp[12]); glVertex3fv(scp[12]); - glNormal3fv(scp[12]); glTexCoord2fv(tscp[13]); glVertex3fv(scp[13]); - glNormal3fv(scp[14]); glTexCoord2fv(tscp[14]); glVertex3fv(scp[14]); - glNormal3fv(scp[14]); glTexCoord2fv(tscp[15]); glVertex3fv(scp[15]); - glNormal3fv(scp[16]); glTexCoord2fv(tscp[16]); glVertex3fv(scp[16]); - glNormal3fv(scp[16]); glTexCoord2fv(tscp[17]); glVertex3fv(scp[17]); - glEnd(); - - glEndList(); -} - -static void BuildDoubleCylinder(void) -{ - - glNewList(doubleCylinder, GL_COMPILE); - - glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(dcp[0]); glTexCoord2fv(tscp[0]); glVertex3fv(dcp[0]); - glNormal3fv(dcp[0]); glTexCoord2fv(tscp[1]); glVertex3fv(dcp[1]); - glNormal3fv(dcp[2]); glTexCoord2fv(tscp[2]); glVertex3fv(dcp[2]); - glNormal3fv(dcp[2]); glTexCoord2fv(tscp[3]); glVertex3fv(dcp[3]); - glNormal3fv(dcp[4]); glTexCoord2fv(tscp[4]); glVertex3fv(dcp[4]); - glNormal3fv(dcp[4]); glTexCoord2fv(tscp[5]); glVertex3fv(dcp[5]); - glNormal3fv(dcp[6]); glTexCoord2fv(tscp[6]); glVertex3fv(dcp[6]); - glNormal3fv(dcp[6]); glTexCoord2fv(tscp[7]); glVertex3fv(dcp[7]); - glNormal3fv(dcp[8]); glTexCoord2fv(tscp[8]); glVertex3fv(dcp[8]); - glNormal3fv(dcp[8]); glTexCoord2fv(tscp[9]); glVertex3fv(dcp[9]); - glNormal3fv(dcp[10]); glTexCoord2fv(tscp[10]); glVertex3fv(dcp[10]); - glNormal3fv(dcp[10]); glTexCoord2fv(tscp[11]); glVertex3fv(dcp[11]); - glNormal3fv(dcp[12]); glTexCoord2fv(tscp[12]); glVertex3fv(dcp[12]); - glNormal3fv(dcp[12]); glTexCoord2fv(tscp[13]); glVertex3fv(dcp[13]); - glNormal3fv(dcp[14]); glTexCoord2fv(tscp[14]); glVertex3fv(dcp[14]); - glNormal3fv(dcp[14]); glTexCoord2fv(tscp[15]); glVertex3fv(dcp[15]); - glNormal3fv(dcp[16]); glTexCoord2fv(tscp[16]); glVertex3fv(dcp[16]); - glNormal3fv(dcp[16]); glTexCoord2fv(tscp[17]); glVertex3fv(dcp[17]); - glEnd(); - - glEndList(); -} - -static void BuildElbow(void) -{ - - glNewList(elbow, GL_COMPILE); - - glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(en[0][0]); glTexCoord2fv(tep[0][0]); glVertex3fv(ep[0][0]); - glNormal3fv(en[1][0]); glTexCoord2fv(tep[1][0]); glVertex3fv(ep[1][0]); - glNormal3fv(en[0][1]); glTexCoord2fv(tep[0][1]); glVertex3fv(ep[0][1]); - glNormal3fv(en[1][1]); glTexCoord2fv(tep[1][1]); glVertex3fv(ep[1][1]); - glNormal3fv(en[0][2]); glTexCoord2fv(tep[0][2]); glVertex3fv(ep[0][2]); - glNormal3fv(en[1][2]); glTexCoord2fv(tep[1][2]); glVertex3fv(ep[1][2]); - glNormal3fv(en[0][3]); glTexCoord2fv(tep[0][3]); glVertex3fv(ep[0][3]); - glNormal3fv(en[1][3]); glTexCoord2fv(tep[1][3]); glVertex3fv(ep[1][3]); - glNormal3fv(en[0][4]); glTexCoord2fv(tep[0][4]); glVertex3fv(ep[0][4]); - glNormal3fv(en[1][4]); glTexCoord2fv(tep[1][4]); glVertex3fv(ep[1][4]); - glNormal3fv(en[0][5]); glTexCoord2fv(tep[0][5]); glVertex3fv(ep[0][5]); - glNormal3fv(en[1][5]); glTexCoord2fv(tep[1][5]); glVertex3fv(ep[1][5]); - glNormal3fv(en[0][6]); glTexCoord2fv(tep[0][6]); glVertex3fv(ep[0][6]); - glNormal3fv(en[1][6]); glTexCoord2fv(tep[1][6]); glVertex3fv(ep[1][6]); - glNormal3fv(en[0][7]); glTexCoord2fv(tep[0][7]); glVertex3fv(ep[0][7]); - glNormal3fv(en[1][7]); glTexCoord2fv(tep[1][7]); glVertex3fv(ep[1][7]); - glNormal3fv(en[0][8]); glTexCoord2fv(tep[0][8]); glVertex3fv(ep[0][8]); - glNormal3fv(en[1][8]); glTexCoord2fv(tep[1][8]); glVertex3fv(ep[1][8]); - glEnd(); - glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(en[1][0]); glTexCoord2fv(tep[1][0]); glVertex3fv(ep[1][0]); - glNormal3fv(en[2][0]); glTexCoord2fv(tep[2][0]); glVertex3fv(ep[2][0]); - glNormal3fv(en[1][1]); glTexCoord2fv(tep[1][1]); glVertex3fv(ep[1][1]); - glNormal3fv(en[2][1]); glTexCoord2fv(tep[2][1]); glVertex3fv(ep[2][1]); - glNormal3fv(en[1][2]); glTexCoord2fv(tep[1][2]); glVertex3fv(ep[1][2]); - glNormal3fv(en[2][2]); glTexCoord2fv(tep[2][2]); glVertex3fv(ep[2][2]); - glNormal3fv(en[1][3]); glTexCoord2fv(tep[1][3]); glVertex3fv(ep[1][3]); - glNormal3fv(en[2][3]); glTexCoord2fv(tep[2][3]); glVertex3fv(ep[2][3]); - glNormal3fv(en[1][4]); glTexCoord2fv(tep[1][4]); glVertex3fv(ep[1][4]); - glNormal3fv(en[2][4]); glTexCoord2fv(tep[2][4]); glVertex3fv(ep[2][4]); - glNormal3fv(en[1][5]); glTexCoord2fv(tep[1][5]); glVertex3fv(ep[1][5]); - glNormal3fv(en[2][5]); glTexCoord2fv(tep[2][5]); glVertex3fv(ep[2][5]); - glNormal3fv(en[1][6]); glTexCoord2fv(tep[1][6]); glVertex3fv(ep[1][6]); - glNormal3fv(en[2][6]); glTexCoord2fv(tep[2][6]); glVertex3fv(ep[2][6]); - glNormal3fv(en[1][7]); glTexCoord2fv(tep[1][7]); glVertex3fv(ep[1][7]); - glNormal3fv(en[2][7]); glTexCoord2fv(tep[2][7]); glVertex3fv(ep[2][7]); - glNormal3fv(en[1][8]); glTexCoord2fv(tep[1][8]); glVertex3fv(ep[1][8]); - glNormal3fv(en[2][8]); glTexCoord2fv(tep[2][8]); glVertex3fv(ep[2][8]); - glEnd(); - glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(en[2][0]); glTexCoord2fv(tep[2][0]); glVertex3fv(ep[2][0]); - glNormal3fv(en[3][0]); glTexCoord2fv(tep[3][0]); glVertex3fv(ep[3][0]); - glNormal3fv(en[2][1]); glTexCoord2fv(tep[2][1]); glVertex3fv(ep[2][1]); - glNormal3fv(en[3][1]); glTexCoord2fv(tep[3][1]); glVertex3fv(ep[3][1]); - glNormal3fv(en[2][2]); glTexCoord2fv(tep[2][2]); glVertex3fv(ep[2][2]); - glNormal3fv(en[3][2]); glTexCoord2fv(tep[3][2]); glVertex3fv(ep[3][2]); - glNormal3fv(en[2][3]); glTexCoord2fv(tep[2][3]); glVertex3fv(ep[2][3]); - glNormal3fv(en[3][3]); glTexCoord2fv(tep[3][3]); glVertex3fv(ep[3][3]); - glNormal3fv(en[2][4]); glTexCoord2fv(tep[2][4]); glVertex3fv(ep[2][4]); - glNormal3fv(en[3][4]); glTexCoord2fv(tep[3][4]); glVertex3fv(ep[3][4]); - glNormal3fv(en[2][5]); glTexCoord2fv(tep[2][5]); glVertex3fv(ep[2][5]); - glNormal3fv(en[3][5]); glTexCoord2fv(tep[3][5]); glVertex3fv(ep[3][5]); - glNormal3fv(en[2][6]); glTexCoord2fv(tep[2][6]); glVertex3fv(ep[2][6]); - glNormal3fv(en[3][6]); glTexCoord2fv(tep[3][6]); glVertex3fv(ep[3][6]); - glNormal3fv(en[2][7]); glTexCoord2fv(tep[2][7]); glVertex3fv(ep[2][7]); - glNormal3fv(en[3][7]); glTexCoord2fv(tep[3][7]); glVertex3fv(ep[3][7]); - glNormal3fv(en[2][8]); glTexCoord2fv(tep[2][8]); glVertex3fv(ep[2][8]); - glNormal3fv(en[3][8]); glTexCoord2fv(tep[3][8]); glVertex3fv(ep[3][8]); - glEnd(); - glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(en[3][0]); glTexCoord2fv(tep[3][0]); glVertex3fv(ep[3][0]); - glNormal3fv(en[4][0]); glTexCoord2fv(tep[4][0]); glVertex3fv(ep[4][0]); - glNormal3fv(en[3][1]); glTexCoord2fv(tep[3][1]); glVertex3fv(ep[3][1]); - glNormal3fv(en[4][1]); glTexCoord2fv(tep[4][1]); glVertex3fv(ep[4][1]); - glNormal3fv(en[3][2]); glTexCoord2fv(tep[3][2]); glVertex3fv(ep[3][2]); - glNormal3fv(en[4][2]); glTexCoord2fv(tep[4][2]); glVertex3fv(ep[4][2]); - glNormal3fv(en[3][3]); glTexCoord2fv(tep[3][3]); glVertex3fv(ep[3][3]); - glNormal3fv(en[4][3]); glTexCoord2fv(tep[4][3]); glVertex3fv(ep[4][3]); - glNormal3fv(en[3][4]); glTexCoord2fv(tep[3][4]); glVertex3fv(ep[3][4]); - glNormal3fv(en[4][4]); glTexCoord2fv(tep[4][4]); glVertex3fv(ep[4][4]); - glNormal3fv(en[3][5]); glTexCoord2fv(tep[3][5]); glVertex3fv(ep[3][5]); - glNormal3fv(en[4][5]); glTexCoord2fv(tep[4][5]); glVertex3fv(ep[4][5]); - glNormal3fv(en[3][6]); glTexCoord2fv(tep[3][6]); glVertex3fv(ep[3][6]); - glNormal3fv(en[4][6]); glTexCoord2fv(tep[4][6]); glVertex3fv(ep[4][6]); - glNormal3fv(en[3][7]); glTexCoord2fv(tep[3][7]); glVertex3fv(ep[3][7]); - glNormal3fv(en[4][7]); glTexCoord2fv(tep[4][7]); glVertex3fv(ep[4][7]); - glNormal3fv(en[3][8]); glTexCoord2fv(tep[3][8]); glVertex3fv(ep[3][8]); - glNormal3fv(en[4][8]); glTexCoord2fv(tep[4][8]); glVertex3fv(ep[4][8]); - glEnd(); - glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(en[4][0]); glTexCoord2fv(tep[4][0]); glVertex3fv(ep[4][0]); - glNormal3fv(en[5][0]); glTexCoord2fv(tep[5][0]); glVertex3fv(ep[5][0]); - glNormal3fv(en[4][1]); glTexCoord2fv(tep[4][1]); glVertex3fv(ep[4][1]); - glNormal3fv(en[5][1]); glTexCoord2fv(tep[5][1]); glVertex3fv(ep[5][1]); - glNormal3fv(en[4][2]); glTexCoord2fv(tep[4][2]); glVertex3fv(ep[4][2]); - glNormal3fv(en[5][2]); glTexCoord2fv(tep[5][2]); glVertex3fv(ep[5][2]); - glNormal3fv(en[4][3]); glTexCoord2fv(tep[4][3]); glVertex3fv(ep[4][3]); - glNormal3fv(en[5][3]); glTexCoord2fv(tep[5][3]); glVertex3fv(ep[5][3]); - glNormal3fv(en[4][4]); glTexCoord2fv(tep[4][4]); glVertex3fv(ep[4][4]); - glNormal3fv(en[5][4]); glTexCoord2fv(tep[5][4]); glVertex3fv(ep[5][4]); - glNormal3fv(en[4][5]); glTexCoord2fv(tep[4][5]); glVertex3fv(ep[4][5]); - glNormal3fv(en[5][5]); glTexCoord2fv(tep[5][5]); glVertex3fv(ep[5][5]); - glNormal3fv(en[4][6]); glTexCoord2fv(tep[4][6]); glVertex3fv(ep[4][6]); - glNormal3fv(en[5][6]); glTexCoord2fv(tep[5][6]); glVertex3fv(ep[5][6]); - glNormal3fv(en[4][7]); glTexCoord2fv(tep[4][7]); glVertex3fv(ep[4][7]); - glNormal3fv(en[5][7]); glTexCoord2fv(tep[5][7]); glVertex3fv(ep[5][7]); - glNormal3fv(en[4][8]); glTexCoord2fv(tep[4][8]); glVertex3fv(ep[4][8]); - glNormal3fv(en[5][8]); glTexCoord2fv(tep[5][8]); glVertex3fv(ep[5][8]); - glEnd(); - glBegin(GL_TRIANGLE_STRIP); - glNormal3fv(en[5][0]); glTexCoord2fv(tep[5][0]); glVertex3fv(ep[5][0]); - glNormal3fv(en[6][0]); glTexCoord2fv(tep[6][0]); glVertex3fv(ep[6][0]); - glNormal3fv(en[5][1]); glTexCoord2fv(tep[5][1]); glVertex3fv(ep[5][1]); - glNormal3fv(en[6][1]); glTexCoord2fv(tep[6][1]); glVertex3fv(ep[6][1]); - glNormal3fv(en[5][2]); glTexCoord2fv(tep[5][2]); glVertex3fv(ep[5][2]); - glNormal3fv(en[6][2]); glTexCoord2fv(tep[6][2]); glVertex3fv(ep[6][2]); - glNormal3fv(en[5][3]); glTexCoord2fv(tep[5][3]); glVertex3fv(ep[5][3]); - glNormal3fv(en[6][3]); glTexCoord2fv(tep[6][3]); glVertex3fv(ep[6][3]); - glNormal3fv(en[5][4]); glTexCoord2fv(tep[5][4]); glVertex3fv(ep[5][4]); - glNormal3fv(en[6][4]); glTexCoord2fv(tep[6][4]); glVertex3fv(ep[6][4]); - glNormal3fv(en[5][5]); glTexCoord2fv(tep[5][5]); glVertex3fv(ep[5][5]); - glNormal3fv(en[6][5]); glTexCoord2fv(tep[6][5]); glVertex3fv(ep[6][5]); - glNormal3fv(en[5][6]); glTexCoord2fv(tep[5][6]); glVertex3fv(ep[5][6]); - glNormal3fv(en[6][6]); glTexCoord2fv(tep[6][6]); glVertex3fv(ep[6][6]); - glNormal3fv(en[5][7]); glTexCoord2fv(tep[5][7]); glVertex3fv(ep[5][7]); - glNormal3fv(en[6][7]); glTexCoord2fv(tep[6][7]); glVertex3fv(ep[6][7]); - glNormal3fv(en[5][8]); glTexCoord2fv(tep[5][8]); glVertex3fv(ep[5][8]); - glNormal3fv(en[6][8]); glTexCoord2fv(tep[6][8]); glVertex3fv(ep[6][8]); - glEnd(); - - glEndList(); -} - -static void BuildLogo(void) -{ - - glNewList(logo, GL_COMPILE); - - glTranslatef(5.5, -3.5, 4.5); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -5.0); - glCallList(singleCylinder); - BendRight(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -5.0); - glCallList(singleCylinder); - BendLeft(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -5.0); - glCallList(singleCylinder); - BendRight(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -5.0); - glCallList(singleCylinder); - BendLeft(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -5.0); - glCallList(singleCylinder); - BendRight(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -7.0); - glCallList(doubleCylinder); - BendForward(); - glCallList(elbow); - glTranslatef(0.0, 0.0, -5.0); - glCallList(singleCylinder); - BendLeft(); - glCallList(elbow); - - glEndList(); -} - -static void BuildLists(void) -{ - - singleCylinder = glGenLists(1); - doubleCylinder = glGenLists(1); - elbow = glGenLists(1); - logo = glGenLists(1); - - BuildSingleCylinder(); - BuildDoubleCylinder(); - BuildElbow(); - BuildLogo(); -} - -static void Init(void) -{ - static float ambient[] = {0.1, 0.1, 0.1, 1.0}; - static float diffuse[] = {0.5, 1.0, 1.0, 1.0}; - static float position[] = {90.0, 90.0, 150.0, 0.0}; - static float front_mat_shininess[] = {30.0}; - static float front_mat_specular[] = {0.2, 0.2, 0.2, 1.0}; - static float front_mat_diffuse[] = {0.5, 0.28, 0.38, 1.0}; - static float back_mat_shininess[] = {50.0}; - static float back_mat_specular[] = {0.5, 0.5, 0.2, 1.0}; - static float back_mat_diffuse[] = {1.0, 1.0, 0.2, 1.0}; - static float lmodel_ambient[] = {1.0, 1.0, 1.0, 1.0}; - static float lmodel_twoside[] = {GL_TRUE}; - - glClearColor(0.0, 0.0, 0.0, 0.0); - - glFrontFace(GL_CW); - - glEnable(GL_DEPTH_TEST); - - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); - glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside); - glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_POSITION, position); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - - glMaterialfv(GL_FRONT, GL_SHININESS, front_mat_shininess); - glMaterialfv(GL_FRONT, GL_SPECULAR, front_mat_specular); - glMaterialfv(GL_FRONT, GL_DIFFUSE, front_mat_diffuse); - glMaterialfv(GL_BACK, GL_SHININESS, back_mat_shininess); - glMaterialfv(GL_BACK, GL_SPECULAR, back_mat_specular); - glMaterialfv(GL_BACK, GL_DIFFUSE, back_mat_diffuse); - - glEnable(GL_CLIP_PLANE0); - - if (rgb) { - glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, decal); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, repeat); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, repeat); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, nearest); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, nearest); - glTexImage2D(GL_TEXTURE_2D, 0, 3, CHECKIMAGEWIDTH, CHECKIMAGEHEIGHT, 0, - GL_RGB, GL_UNSIGNED_BYTE, (GLvoid *)checkImage); - glEnable(GL_TEXTURE_2D); - - glCullFace(GL_BACK); - glEnable(GL_CULL_FACE); - } else { - SetGreyRamp(); - /* commented out by BrianP because it's the wrong way to handle a 4-bit visual! - if (doubleBuffer) { - colorIndexes[1] = 10; - colorIndexes[2] = 15; - } - */ - glMaterialiv(GL_FRONT_AND_BACK, GL_COLOR_INDEXES, colorIndexes); - } - - BuildLists(); - - dithering = GL_TRUE; - shade = GL_TRUE; - doStipple = GL_FALSE; - polyMode = GL_BACK; -} - -static void Reshape(int width, int height) -{ - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(90, 1.0, 1.0, 200.0); - glMatrixMode(GL_MODELVIEW); -} - -static void Key2(int key, int x, int y) -{ - (void) x; - (void) y; - switch (key) { - case GLUT_KEY_LEFT: - yRotation += 0.5; - break; - case GLUT_KEY_RIGHT: - yRotation -= 0.5; - break; - case GLUT_KEY_UP: - plane[3] += 2.0; - break; - case GLUT_KEY_DOWN: - plane[3] -= 2.0; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - (void) x; - (void) y; - switch (key) { - case 27: - exit(1); - - case 'Z': - zTranslation -= 1.0; - break; - case 'z': - zTranslation += 1.0; - break; - - case '1': - glPolygonMode(polyMode, GL_POINT); - break; - case '2': - glPolygonMode(polyMode, GL_LINE); - break; - case '3': - glPolygonMode(polyMode, GL_FILL); - break; - case 'p': - switch (polyMode) { - case GL_BACK: - polyMode = GL_FRONT; - printf("PolygonMode GL_FRONT\n"); - break; - case GL_FRONT: - polyMode = GL_FRONT_AND_BACK; - printf("PolygonMode GL_FRONT_AND_BACK\n"); - break; - case GL_FRONT_AND_BACK: - polyMode = GL_BACK; - printf("PolygonMode GL_BACK\n"); - break; - default: - break; - } - break; - - case '4': - glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST); - break; - case '5': - glEnable(GL_POLYGON_SMOOTH); - if (rgb) { - glBlendFunc(GL_SRC_ALPHA, GL_ONE); - glEnable(GL_BLEND); - glDisable(GL_DEPTH_TEST); - } else { - SetUpAntiAliasedGrayScale(); - } - break; - case '6': - glDisable(GL_POLYGON_SMOOTH); - if (rgb) { - glBlendFunc(GL_ONE, GL_ZERO); - glDisable(GL_BLEND); - glEnable(GL_DEPTH_TEST); - } else { - SetGreyRamp(); - } - break; - - case '8': - dithering = !dithering; - (dithering) ? glEnable(GL_DITHER) : glDisable(GL_DITHER); - break; - - case '9': - doStipple = !doStipple; - if (doStipple) { - glPolygonStipple(stipple); - glEnable(GL_POLYGON_STIPPLE); - } else { - glDisable(GL_POLYGON_STIPPLE); - } - break; - - case '0': - shade = !shade; - (shade) ? glShadeModel(GL_SMOOTH) : glShadeModel(GL_FLAT); - break; - - case 'q': - glDisable(GL_CULL_FACE); - printf("disable culling\n"); - break; - case 'w': - glEnable(GL_CULL_FACE); - glCullFace(GL_FRONT); - printf("enable front face culling\n"); - break; - case 'e': - glEnable(GL_CULL_FACE); - glCullFace(GL_BACK); - printf("enable back face culling\n"); - break; - - case 'r': - glFrontFace(GL_CW); - break; - case 't': - glFrontFace(GL_CCW); - break; - case 'y': - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - glPixelStorei(GL_UNPACK_LSB_FIRST, 0); - glPolygonStipple(stipple); - break; - case 'u': - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - glPixelStorei(GL_UNPACK_LSB_FIRST, 1); - glPolygonStipple(stipple); - break; - - case 'a': - glEnable(GL_TEXTURE_2D); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, repeat); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, repeat); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, nearest); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, nearest); - glTexImage2D(GL_TEXTURE_2D, 0, 4, BRICKIMAGEWIDTH, - BRICKIMAGEHEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, - (GLvoid *)brickImage); - break; - case 's': - glEnable(GL_TEXTURE_2D); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, repeat); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, repeat); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, nearest); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, nearest); - glTexImage2D(GL_TEXTURE_2D, 0, 3, CHECKIMAGEWIDTH, - CHECKIMAGEHEIGHT, 0, GL_RGB, GL_UNSIGNED_BYTE, - (GLvoid *)checkImage); - break; - case 'd': - glDisable(GL_TEXTURE_2D); - break; - - case 'f': - glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, decal); - break; - case 'g': - glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, modulate); - break; - - case 'n': - /* added by BrianP */ - noDraw = !noDraw; - if (noDraw) { - glDrawBuffer( GL_NONE ); - } - else { - if (doubleBuffer) { - glDrawBuffer( GL_BACK ); - } - else { - glDrawBuffer( GL_FRONT ); - } - } - break; - - case 'l': - /* Line Smooth - added by BrianP */ - LineSmooth = !LineSmooth; - if (LineSmooth) { - glEnable(GL_LINE_SMOOTH); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glEnable(GL_BLEND); - } - else { - glDisable(GL_LINE_SMOOTH); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glDisable(GL_BLEND); - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - - glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - - glTranslatef(0, 0, zTranslation); - glRotatef(30.0, 1, 0, 0); - glRotatef(yRotation, 0, 1, 0); - glClipPlane(GL_CLIP_PLANE0, plane); - glCallList(logo); - - glPopMatrix(); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - unsigned int type; - - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - glutInitWindowPosition(0, 0); glutInitWindowSize( 300, 300); - - type = GLUT_DEPTH; - type |= (rgb) ? GLUT_RGB : GLUT_INDEX; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Logo Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/nurb.c b/progs/samples/nurb.c deleted file mode 100644 index dc8991295e8..00000000000 --- a/progs/samples/nurb.c +++ /dev/null @@ -1,357 +0,0 @@ -/* - * 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 <stdlib.h> -#include <string.h> -#include <math.h> -#include <GL/glut.h> - - -#ifndef CALLBACK -#define CALLBACK -#endif - - -#define INREAL float - -#define S_NUMPOINTS 13 -#define S_ORDER 3 -#define S_NUMKNOTS (S_NUMPOINTS + S_ORDER) -#define T_NUMPOINTS 3 -#define T_ORDER 3 -#define T_NUMKNOTS (T_NUMPOINTS + T_ORDER) -#define SQRT_TWO 1.41421356237309504880 - - -typedef INREAL Point[4]; - - -GLenum doubleBuffer; - -GLenum expectedError; -GLint rotX = 40, rotY = 40; -INREAL sknots[S_NUMKNOTS] = { - -1.0, -1.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, - 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 9.0, 9.0 -}; -INREAL tknots[T_NUMKNOTS] = { - 1.0, 1.0, 1.0, 2.0, 2.0, 2.0 -}; -Point ctlpoints[S_NUMPOINTS][T_NUMPOINTS] = { - { - { - 4.0, 2.0, 2.0, 1.0 - }, - { - 4.0, 1.6, 2.5, 1.0 - }, - { - 4.0, 2.0, 3.0, 1.0 - } - }, - { - { - 5.0, 4.0, 2.0, 1.0 - }, - { - 5.0, 4.0, 2.5, 1.0 - }, - { - 5.0, 4.0, 3.0, 1.0 - } - }, - { - { - 6.0, 5.0, 2.0, 1.0 - }, - { - 6.0, 5.0, 2.5, 1.0 - }, - { - 6.0, 5.0, 3.0, 1.0 - } - }, - { - { - SQRT_TWO*6.0, SQRT_TWO*6.0, SQRT_TWO*2.0, SQRT_TWO - }, - { - SQRT_TWO*6.0, SQRT_TWO*6.0, SQRT_TWO*2.5, SQRT_TWO - }, - { - SQRT_TWO*6.0, SQRT_TWO*6.0, SQRT_TWO*3.0, SQRT_TWO - } - }, - { - { - 5.2, 6.7, 2.0, 1.0 - }, - { - 5.2, 6.7, 2.5, 1.0 - }, - { - 5.2, 6.7, 3.0, 1.0 - } - }, - { - { - SQRT_TWO*4.0, SQRT_TWO*6.0, SQRT_TWO*2.0, SQRT_TWO - }, - { - SQRT_TWO*4.0, SQRT_TWO*6.0, SQRT_TWO*2.5, SQRT_TWO - }, - { - SQRT_TWO*4.0, SQRT_TWO*6.0, SQRT_TWO*3.0, SQRT_TWO - } - }, - { - { - 4.0, 5.2, 2.0, 1.0 - }, - { - 4.0, 4.6, 2.5, 1.0 - }, - { - 4.0, 5.2, 3.0, 1.0 - } - }, - { - { - SQRT_TWO*4.0, SQRT_TWO*6.0, SQRT_TWO*2.0, SQRT_TWO - }, - { - SQRT_TWO*4.0, SQRT_TWO*6.0, SQRT_TWO*2.5, SQRT_TWO - }, - { - SQRT_TWO*4.0, SQRT_TWO*6.0, SQRT_TWO*3.0, SQRT_TWO - } - }, - { - { - 2.8, 6.7, 2.0, 1.0 - }, - { - 2.8, 6.7, 2.5, 1.0 - }, - { - 2.8, 6.7, 3.0, 1.0 - } - }, - { - { - SQRT_TWO*2.0, SQRT_TWO*6.0, SQRT_TWO*2.0, SQRT_TWO - }, - { - SQRT_TWO*2.0, SQRT_TWO*6.0, SQRT_TWO*2.5, SQRT_TWO - }, - { - SQRT_TWO*2.0, SQRT_TWO*6.0, SQRT_TWO*3.0, SQRT_TWO - } - }, - { - { - 2.0, 5.0, 2.0, 1.0 - }, - { - 2.0, 5.0, 2.5, 1.0 - }, - { - 2.0, 5.0, 3.0, 1.0 - } - }, - { - { - 3.0, 4.0, 2.0, 1.0 - }, - { - 3.0, 4.0, 2.5, 1.0 - }, - { - 3.0, 4.0, 3.0, 1.0 - } - }, - { - { - 4.0, 2.0, 2.0, 1.0 - }, - { - 4.0, 1.6, 2.5, 1.0 - }, - { - 4.0, 2.0, 3.0, 1.0 - } - } -}; -GLUnurbsObj *theNurbs; - - -static void CALLBACK ErrorCallback(GLenum which) -{ - - if (which != expectedError) { - fprintf(stderr, "Unexpected error occured (%d):\n", which); - fprintf(stderr, " %s\n", (char *) gluErrorString(which)); - } -} - -typedef void (GLAPIENTRY *callback_t)(); - -static void Init(void) -{ - - theNurbs = gluNewNurbsRenderer(); - gluNurbsCallback(theNurbs, GLU_ERROR, (callback_t) ErrorCallback); - - gluNurbsProperty(theNurbs, GLU_SAMPLING_TOLERANCE, 15.0); - gluNurbsProperty(theNurbs, GLU_DISPLAY_MODE, GLU_OUTLINE_PATCH); - - expectedError = GLU_INVALID_ENUM; - gluNurbsProperty(theNurbs, ~0, 15.0); - expectedError = GLU_NURBS_ERROR13; - gluEndSurface(theNurbs); - expectedError = 0; - - glColor3f(1.0, 1.0, 1.0); -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-2.0, 2.0, -2.0, 2.0, 0.8, 10.0); - gluLookAt(7.0, 4.5, 4.0, 4.5, 4.5, 2.5, 6.0, -3.0, 2.0); - glMatrixMode(GL_MODELVIEW); -} - -static void Key2(int key, int x, int y) -{ - - switch (key) { - case GLUT_KEY_DOWN: - rotX -= 5; - break; - case GLUT_KEY_UP: - rotX += 5; - break; - case GLUT_KEY_LEFT: - rotY -= 5; - break; - case GLUT_KEY_RIGHT: - rotY += 5; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - } -} - -static void Draw(void) -{ - - glClear(GL_COLOR_BUFFER_BIT); - - glPushMatrix(); - - glTranslatef(4.0, 4.5, 2.5); - glRotatef(rotY, 1, 0, 0); - glRotatef(rotX, 0, 1, 0); - glTranslatef(-4.0, -4.5, -2.5); - - gluBeginSurface(theNurbs); - gluNurbsSurface(theNurbs, S_NUMKNOTS, sknots, T_NUMKNOTS, tknots, - 4*T_NUMPOINTS, 4, &ctlpoints[0][0][0], S_ORDER, - T_ORDER, GL_MAP2_VERTEX_4); - gluEndSurface(theNurbs); - - glPopMatrix(); - - 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 { - printf("%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( 300, 300); - - type = GLUT_RGB; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("NURBS Test") == GL_FALSE) { - exit(1); - } - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/oglinfo.c b/progs/samples/oglinfo.c deleted file mode 100644 index 4fe51efb3cb..00000000000 --- a/progs/samples/oglinfo.c +++ /dev/null @@ -1,218 +0,0 @@ -/* oglinfo.c */ - -/* This demo modified by BrianP to accomodate Mesa and test - * the GLX 1.1 functions. - */ - - - -#include <GL/gl.h> -#include <GL/glx.h> -#include <GL/glu.h> -#include <stdio.h> -#include <string.h> - -int visual_request0[] = { None }; /* don't need much of a visual */ -int visual_request1[] = { GLX_RGBA, None }; /* in case CI failed */ - -int main(int argc, char **argv) -{ - char *display_name = NULL; - char *string; - Display *dpy; - int screen_num; - int major, minor; - XVisualInfo *vis; - GLXContext ctx; - Window root, win; - Colormap cmap; - XSetWindowAttributes swa; - int dontcare; - - /* parse arguments */ - if(argc > 1) { - if(!strcmp(argv[1],"-display")) - display_name = argv[2]; - else { - fprintf(stderr, "Usage: %s [-display <display>]\n",argv[0]); - return 0; - } - } - - /* get display */ - if (!(dpy = XOpenDisplay(display_name))) { - fprintf(stderr,"Error: XOpenDisplay() failed.\n"); - return 1; - } - - /* does the server know about OpenGL & GLX? */ -#ifndef MESA - if(!XQueryExtension(dpy, "GLX", &dontcare, &dontcare, &dontcare)) { - fprintf(stderr,"This system doesn't appear to support OpenGL\n"); - return 1; - } -#else - (void) dontcare; -#endif - - /* find the glx version */ - if(glXQueryVersion(dpy, &major, &minor)) - printf("GLX Version: %d.%d\n", major, minor); - else { - fprintf(stderr, "Error: glXQueryVersion() failed.\n"); - return 1; - } - - /* get screen number */ - screen_num = DefaultScreen(dpy); - -/* This #ifdef isn't redundant. It keeps the build from breaking -** if you are building on a machine that has an old (1.0) version -** of glx. -** -** This program could still be *run* on a machine that has an old -** version of glx, even if it was *compiled* on a version that has -** a new version. -** -** If compiled on a system with an old version of glx, then it will -** never recognize glx extensions, since that code would have been -** #ifdef'ed out. -*/ -#ifdef GLX_VERSION_1_1 - - /* - ** This test guarantees that glx, on the display you are inquiring, - ** suppports glXQueryExtensionsString(). - */ - if(minor > 0 || major > 1) - string = (char *) glXQueryExtensionsString(dpy, screen_num); - else - string = ""; - - if(string) - printf("GLX Extensions (client & server): %s\n", - string); - else { - fprintf(stderr, "Error: glXQueryExtensionsString() failed.\n"); - return 1; - } - - if (minor>0 || major>1) { - printf("glXGetClientString(GLX_VENDOR): %s\n", glXGetClientString(dpy,GLX_VENDOR)); - printf("glXGetClientString(GLX_VERSION): %s\n", glXGetClientString(dpy,GLX_VERSION)); - printf("glXGetClientString(GLX_EXTENSIONS): %s\n", glXGetClientString(dpy,GLX_EXTENSIONS)); - printf("glXQueryServerString(GLX_VENDOR): %s\n", glXQueryServerString(dpy,screen_num,GLX_VENDOR)); - printf("glXQueryServerString(GLX_VERSION): %s\n", glXQueryServerString(dpy,screen_num,GLX_VERSION)); - printf("glXQueryServerString(GLX_EXTENSIONS): %s\n", glXQueryServerString(dpy,screen_num,GLX_EXTENSIONS)); - } - - -#endif - - /* get any valid OpenGL visual */ - if (!(vis = glXChooseVisual(dpy, screen_num, visual_request0))) { - if (!(vis = glXChooseVisual(dpy, screen_num, visual_request1))) { - fprintf(stderr,"Error: glXChooseVisual() failed.\n"); - return 1; - } - } - - /* get context */ - ctx = glXCreateContext(dpy,vis,0,GL_TRUE); - - /* root window */ - root = RootWindow(dpy,vis->screen); - - /* get RGBA colormap */ - cmap = XCreateColormap(dpy, root, vis->visual, AllocNone); - - /* get window */ - swa.colormap = cmap; - swa.border_pixel = 0; - swa.event_mask = StructureNotifyMask; - win = XCreateWindow(dpy, root, 0, 0, 1, 1, 0, vis->depth, - InputOutput,vis->visual, - CWBorderPixel|CWColormap|CWEventMask, - &swa); - - glXMakeCurrent(dpy,win,ctx); - - string = (char *) glGetString(GL_VERSION); - if(string) -#ifdef MESA - printf("Mesa Version: %s\n", string); -#else - printf("OpenGL Version: %s\n", string); -#endif - else { - fprintf(stderr, "Error: glGetString(GL_VERSION) failed.\n"); - return 1; - } - - string = (char *) glGetString(GL_EXTENSIONS); - - if(string) -#ifdef MESA - printf("Mesa Extensions: %s\n", string); -#else - printf("OpenGL Extensions: %s\n", string); -#endif - else { - fprintf(stderr, "Error: glGetString(GL_EXTENSIONS) failed.\n"); - return 1; - } - - string = (char *) glGetString(GL_RENDERER); - - if(string) -#ifdef MESA - printf("Mesa Renderer: %s\n", string); -#else - printf("OpenGL renderer: %s\n", string); -#endif - else { - fprintf(stderr, "Error: glGetString(GL_RENDERER) failed.\n"); - return 1; - } - -/* -** This #ifdef prevents a build failure if you compile on an a -** machine with an old GLU library. -** -** If you build on a pre GLU 1.1 machine, you will never be able -** to get glu info, even if you run on a GLU 1.1 or latter machine, -** since the code has been #ifdef'ed out. -*/ -#ifdef GLU_VERSION_1_1 - - /* - ** If the glx version is 1.1 or latter, gluGetString() is guaranteed - ** to exist. - */ - if(minor > 0 || major > 1) - string = (char *) gluGetString(GLU_VERSION); - else - string = "1.0"; - - if(string) - printf("GLU Version: %s\n", string); - else { - fprintf(stderr, "Error: gluGetString(GLU_VERSION) failed.\n"); - return 1; - } - - if(minor > 0 || major > 1) - string = (char *) gluGetString(GLU_EXTENSIONS); - else - string = ""; - - if(string) - printf("GLU Extensions: %s\n", string); - else { - fprintf(stderr, "Error: gluGetString(GLU_EXTENSIONS) failed.\n"); - return 1; - } - -#endif - return 0; -} diff --git a/progs/samples/olympic.c b/progs/samples/olympic.c deleted file mode 100644 index 209a8c141b2..00000000000 --- a/progs/samples/olympic.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - * 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. - */ - -/* - * Nov 20, 1995 use stdlib's rand()/srand() instead of random()/srand48(), etc. - */ - -/* - * Modified by Li Wei([email protected]) to be able to run in Windows - * 6/13 - * - * Modified by Brian Paul to compile with Windows OR Unix. 7/23/97 - */ - - -#define _HPUX_SOURCE - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <math.h> -#include <GL/glut.h> - -#ifndef RAND_MAX -# define RAND_MAX 32767 -#endif - - -#define XSIZE 100 -#define YSIZE 75 - -#define RINGS 5 -#define BLUERING 0 -#define BLACKRING 1 -#define REDRING 2 -#define YELLOWRING 3 -#define GREENRING 4 - -#define BACKGROUND 8 - - -GLenum rgb, doubleBuffer; - -#include "tkmap.c" - -unsigned char rgb_colors[RINGS][3]; -int mapped_colors[RINGS]; -float dests[RINGS][3]; -float offsets[RINGS][3]; -float angs[RINGS]; -float rotAxis[RINGS][3]; -int iters[RINGS]; -GLuint theTorus; - - -static void FillTorus(float rc, int numc, float rt, int numt) -{ - int i, j, k; - double s, t; - double x, y, z; - double pi, twopi; - - pi = 3.14159265358979323846; - twopi = 2 * pi; - - for (i = 0; i < numc; i++) { - glBegin(GL_QUAD_STRIP); - for (j = 0; j <= numt; j++) { - for (k = 1; k >= 0; k--) { - s = (i + k) % numc + 0.5; - t = j % numt; - - x = cos(t*twopi/numt) * cos(s*twopi/numc); - y = sin(t*twopi/numt) * cos(s*twopi/numc); - z = sin(s*twopi/numc); - glNormal3f(x, y, z); - - x = (rt + rc * cos(s*twopi/numc)) * cos(t*twopi/numt); - y = (rt + rc * cos(s*twopi/numc)) * sin(t*twopi/numt); - z = rc * sin(s*twopi/numc); - glVertex3f(x, y, z); - } - } - glEnd(); - } -} - -static float Clamp(int iters_left, float t) -{ - if (iters_left < 3) { - return 0.0; - } - return (iters_left-2)*t/iters_left; -} - -static void DrawScene(void) -{ - int i, j; - GLboolean goIdle; - static double t0 = -1.; - double t, dt; - t = glutGet(GLUT_ELAPSED_TIME) / 1000.; - if (t0 < 0.) - t0 = t; - dt = t - t0; - - if (dt < 1./30.) - return; - - t0 = t; - - goIdle = GL_TRUE; - for (i = 0; i < RINGS; i++) { - if (iters[i]) { - for (j = 0; j < 3; j++) { - offsets[i][j] = Clamp(iters[i], offsets[i][j]); - } - angs[i] = Clamp(iters[i], angs[i]); - iters[i]--; - goIdle = GL_FALSE; - } - } - if (goIdle) { - glutIdleFunc(NULL); - } - - glPushMatrix(); - - glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - gluLookAt(0,0,10, 0,0,0, 0,1,0); - - for (i = 0; i < RINGS; i++) { - if (rgb) { - glColor3ubv(rgb_colors[i]); - } else { - glIndexi(mapped_colors[i]); - } - glPushMatrix(); - glTranslatef(dests[i][0]+offsets[i][0], dests[i][1]+offsets[i][1], - dests[i][2]+offsets[i][2]); - glRotatef(angs[i], rotAxis[i][0], rotAxis[i][1], rotAxis[i][2]); - glCallList(theTorus); - glPopMatrix(); - } - - glPopMatrix(); - - glFlush(); - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static float MyRand(void) -{ - return 10.0 * ( (float) rand() / (float) RAND_MAX - 0.5 ); -} - -#if !defined(GLUTCALLBACK) -#define GLUTCALLBACK -#endif - -static void GLUTCALLBACK glut_post_redisplay_p(void) -{ - glutPostRedisplay(); -} - -static void ReInit(void) -{ - int i; - float deviation; - - deviation = MyRand() / 2; - deviation = deviation * deviation; - for (i = 0; i < RINGS; i++) { - offsets[i][0] = MyRand(); - offsets[i][1] = MyRand(); - offsets[i][2] = MyRand(); - angs[i] = 260.0 * MyRand(); - rotAxis[i][0] = MyRand(); - rotAxis[i][1] = MyRand(); - rotAxis[i][2] = MyRand(); - iters[i] = (deviation * MyRand() + 60.0); - } - glutIdleFunc(glut_post_redisplay_p); -} - -static void Init(void) -{ - float base, height; - float aspect, x, y; - int i; - - float top_y = 1.0; - float bottom_y = 0.0; - float top_z = 0.15; - float bottom_z = 0.69; - float spacing = 2.5; - static float lmodel_ambient[] = {0.0, 0.0, 0.0, 0.0}; - static float lmodel_twoside[] = {GL_FALSE}; - static float lmodel_local[] = {GL_FALSE}; - static float light0_ambient[] = {0.1, 0.1, 0.1, 1.0}; - static float light0_diffuse[] = {1.0, 1.0, 1.0, 0.0}; - static float light0_position[] = {0.8660254, 0.5, 1, 0}; - static float light0_specular[] = {1.0, 1.0, 1.0, 0.0}; - static float bevel_mat_ambient[] = {0.0, 0.0, 0.0, 1.0}; - static float bevel_mat_shininess[] = {40.0}; - static float bevel_mat_specular[] = {1.0, 1.0, 1.0, 0.0}; - static float bevel_mat_diffuse[] = {1.0, 0.0, 0.0, 0.0}; - - srand( (unsigned int) glutGet(GLUT_ELAPSED_TIME) ); - - ReInit(); - for (i = 0; i < RINGS; i++) { - rgb_colors[i][0] = rgb_colors[i][1] = rgb_colors[i][2] = 0; - } - rgb_colors[BLUERING][2] = 255; - rgb_colors[REDRING][0] = 255; - rgb_colors[GREENRING][1] = 255; - rgb_colors[YELLOWRING][0] = 255; - rgb_colors[YELLOWRING][1] = 255; - mapped_colors[BLUERING] = COLOR_BLUE; - mapped_colors[REDRING] = COLOR_RED; - mapped_colors[GREENRING] = COLOR_GREEN; - mapped_colors[YELLOWRING] = COLOR_YELLOW; - mapped_colors[BLACKRING] = COLOR_BLACK; - - dests[BLUERING][0] = -spacing; - dests[BLUERING][1] = top_y; - dests[BLUERING][2] = top_z; - - dests[BLACKRING][0] = 0.0; - dests[BLACKRING][1] = top_y; - dests[BLACKRING][2] = top_z; - - dests[REDRING][0] = spacing; - dests[REDRING][1] = top_y; - dests[REDRING][2] = top_z; - - dests[YELLOWRING][0] = -spacing / 2.0; - dests[YELLOWRING][1] = bottom_y; - dests[YELLOWRING][2] = bottom_z; - - dests[GREENRING][0] = spacing / 2.0; - dests[GREENRING][1] = bottom_y; - dests[GREENRING][2] = bottom_z; - - base = 2.0; - height = 2.0; - theTorus = glGenLists(1); - glNewList(theTorus, GL_COMPILE); - FillTorus(0.1, 8, 1.0, 25); - glEndList(); - - x = (float)XSIZE; - y = (float)YSIZE; - aspect = x / y; - glEnable(GL_CULL_FACE); - glCullFace(GL_BACK); - glEnable(GL_DEPTH_TEST); - glClearDepth(1.0); - - if (rgb) { - glClearColor(0.5, 0.5, 0.5, 0.0); - glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient); - glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse); - glLightfv(GL_LIGHT0, GL_SPECULAR, light0_specular); - glLightfv(GL_LIGHT0, GL_POSITION, light0_position); - glEnable(GL_LIGHT0); - - glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, lmodel_local); - glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside); - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); - glEnable(GL_LIGHTING); - - glMaterialfv(GL_FRONT, GL_AMBIENT, bevel_mat_ambient); - glMaterialfv(GL_FRONT, GL_SHININESS, bevel_mat_shininess); - glMaterialfv(GL_FRONT, GL_SPECULAR, bevel_mat_specular); - glMaterialfv(GL_FRONT, GL_DIFFUSE, bevel_mat_diffuse); - - glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE); - glEnable(GL_COLOR_MATERIAL); - glShadeModel(GL_SMOOTH); - } else { - glClearIndex(BACKGROUND); - glShadeModel(GL_FLAT); - } - - glMatrixMode(GL_PROJECTION); - gluPerspective(45, 1.33, 0.1, 100.0); - glMatrixMode(GL_MODELVIEW); -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, width, height); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case 32: - ReInit(); - break; - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_TRUE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%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( 400, 300); - - type = GLUT_DEPTH; - type |= (rgb) ? GLUT_RGB : GLUT_INDEX; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Olympic") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(DrawScene); - glutIdleFunc(glut_post_redisplay_p); - - glutMainLoop(); - return 0; -} diff --git a/progs/samples/overlay.c b/progs/samples/overlay.c deleted file mode 100644 index 6087cef2815..00000000000 --- a/progs/samples/overlay.c +++ /dev/null @@ -1,378 +0,0 @@ -/* - * 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 <time.h> -#include <GL/glut.h> - - -#ifndef PI -#define PI 3.141592657 -#endif - - -enum { - NORMAL = 0, - WEIRD = 1 -}; - -enum { - STREAK = 0, - CIRCLE = 1 -}; - -#define MAXSTARS 400 -#define MAXPOS 10000 -#define MAXWARP 10 -#define MAXANGLES 6000 - - -typedef struct _starRec { - GLint type; - float x[2], y[2], z[2]; - float offsetX, offsetY, offsetR, rotation; -} starRec; - - -GLenum doubleBuffer; -GLint windW, windH; - -GLenum flag = NORMAL, overlayInit = GL_FALSE; -GLint starCount = MAXSTARS / 2; -float speed = 1.0; -GLint nitro = 0; -starRec stars[MAXSTARS]; -float sinTable[MAXANGLES]; - - -static float Sin(float angle) -{ - - return (sinTable[(GLint)angle]); -} - -static float Cos(float angle) -{ - - return (sinTable[((GLint)angle+(MAXANGLES/4))%MAXANGLES]); -} - -static void NewStar(GLint n, GLint d) -{ - - if (rand()%4 == 0) { - stars[n].type = CIRCLE; - } else { - stars[n].type = STREAK; - } - stars[n].x[0] = (float)(rand() % MAXPOS - MAXPOS / 2); - stars[n].y[0] = (float)(rand() % MAXPOS - MAXPOS / 2); - stars[n].z[0] = (float)(rand() % MAXPOS + d); - if (rand()%4 == 0 && flag == WEIRD) { - stars[n].offsetX = (float)(rand() % 100 - 100 / 2); - stars[n].offsetY = (float)(rand() % 100 - 100 / 2); - stars[n].offsetR = (float)(rand() % 25 - 25 / 2); - } else { - stars[n].offsetX = 0.0; - stars[n].offsetY = 0.0; - stars[n].offsetR = 0.0; - } -} - -static void RotatePoint(float *x, float *y, float rotation) -{ - float tmpX, tmpY; - - tmpX = *x * Cos(rotation) - *y * Sin(rotation); - tmpY = *y * Cos(rotation) + *x * Sin(rotation); - *x = tmpX; - *y = tmpY; -} - -static void MoveStars(void) -{ - float offset; - GLint n; - - offset = speed * 60.0; - - for (n = 0; n < starCount; n++) { - stars[n].x[1] = stars[n].x[0]; - stars[n].y[1] = stars[n].y[0]; - stars[n].z[1] = stars[n].z[0]; - stars[n].x[0] += stars[n].offsetX; - stars[n].y[0] += stars[n].offsetY; - stars[n].z[0] -= offset; - stars[n].rotation += stars[n].offsetR; - if (stars[n].rotation > MAXANGLES) { - stars[n].rotation = 0.0; - } - } -} - -static GLenum StarPoint(GLint n) -{ - float x0, y0, x1, y1, width; - GLint i; - - x0 = stars[n].x[0] * windW / stars[n].z[0]; - y0 = stars[n].y[0] * windH / stars[n].z[0]; - RotatePoint(&x0, &y0, stars[n].rotation); - x0 += windW / 2.0; - y0 += windH / 2.0; - - if (x0 >= 0.0 && x0 < windW && y0 >= 0.0 && y0 < windH) { - if (stars[n].type == STREAK) { - x1 = stars[n].x[1] * windW / stars[n].z[1]; - y1 = stars[n].y[1] * windH / stars[n].z[1]; - RotatePoint(&x1, &y1, stars[n].rotation); - x1 += windW / 2.0; - y1 += windH / 2.0; - - glLineWidth(MAXPOS/100.0/stars[n].z[0]+1.0); - glColor3f(1.0, (MAXWARP-speed)/MAXWARP, (MAXWARP-speed)/MAXWARP); - if (fabs(x0-x1) < 1.0 && fabs(y0-y1) < 1.0) { - glBegin(GL_POINTS); - glVertex2f(x0, y0); - glEnd(); - } else { - glBegin(GL_LINES); - glVertex2f(x0, y0); - glVertex2f(x1, y1); - glEnd(); - } - } else { - width = MAXPOS / 10.0 / stars[n].z[0] + 1.0; - glColor3f(1.0, 0.0, 0.0); - glBegin(GL_POLYGON); - for (i = 0; i < 8; i++) { - float x = x0 + width * Cos((float)i*MAXANGLES/8.0); - float y = y0 + width * Sin((float)i*MAXANGLES/8.0); - glVertex2f(x, y); - }; - glEnd(); - } - return GL_TRUE; - } else { - return GL_FALSE; - } -} - -static void ShowStars(void) -{ - GLint n; - - glClear(GL_COLOR_BUFFER_BIT); - - for (n = 0; n < starCount; n++) { - if (stars[n].z[0] > speed || (stars[n].z[0] > 0.0 && speed < MAXWARP)) { - if (StarPoint(n) == GL_FALSE) { - NewStar(n, MAXPOS); - } - } else { - NewStar(n, MAXPOS); - } - } -} - -static void Init(void) -{ - float angle; - GLint n; - - srand((unsigned int)time(NULL)); - - for (n = 0; n < MAXSTARS; n++) { - NewStar(n, 100); - } - - angle = 0.0; - for (n = 0; n < MAXANGLES ; n++) { - sinTable[n] = sin(angle); - angle += PI / (MAXANGLES / 2.0); - } - - glClearColor(0.0, 0.0, 0.0, 0.0); - - glDisable(GL_DITHER); -} - -static void Reshape(int width, int height) -{ - - windW = (GLint)width; - windH = (GLint)height; - - glutUseLayer(GLUT_OVERLAY); - - glViewport(0, 0, windW, windH); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-0.5, windW+0.5, -0.5, windH+0.5); - glMatrixMode(GL_MODELVIEW); - overlayInit = GL_FALSE; - - glutUseLayer(GLUT_NORMAL); - - glViewport(0, 0, windW, windH); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-0.5, windW+0.5, -0.5, windH+0.5); - glMatrixMode(GL_MODELVIEW); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case 32: - flag = (flag == NORMAL) ? WEIRD : NORMAL; - break; - case 't': - nitro = 1; - break; - default: - return; - } -} - -static void Idle(void) -{ - - if (overlayInit == GL_FALSE) { - glutUseLayer(GLUT_OVERLAY); - glClear(GL_COLOR_BUFFER_BIT); -/* glColor3f(1.0, 0.0, 0.0);*/ - - glIndexf( 2.0 ); - glBegin(GL_POLYGON); - glVertex2i(windW/4-10, windH/4-10); - glVertex2i(windW/2-10, windH/4-10); - glVertex2i(windW/2-10, windH/2-10); - glVertex2i(windW/4-10, windH/2-10); - glEnd(); - - glIndexf( 0.0 ); - glBegin(GL_POLYGON); - glVertex2i(windW/4, windH/4); - glVertex2i(windW/2, windH/4); - glVertex2i(windW/2, windH/2); - glVertex2i(windW/4, windH/2); - glEnd(); - - glIndexf( 1.0 ); - glBegin(GL_POLYGON); - glVertex2i(windW/4+10, windH/4+10); - glVertex2i(windW/2+10, windH/4+10); - glVertex2i(windW/2+10, windH/2+10); - glVertex2i(windW/4+10, windH/2+10); - glEnd(); - - glutUseLayer(GLUT_NORMAL); - overlayInit = GL_TRUE; - } - - MoveStars(); - ShowStars(); - if (nitro > 0) { - speed = (float)(nitro / 10) + 1.0; - if (speed > MAXWARP) { - speed = MAXWARP; - } - if (++nitro > MAXWARP*10) { - nitro = -nitro; - } - } else if (nitro < 0) { - nitro++; - speed = (float)(-nitro / 10) + 1.0; - if (speed > MAXWARP) { - speed = MAXWARP; - } - } - - glFlush(); - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - doubleBuffer = GL_TRUE; - - 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; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - GLenum type; - - glutInit(&argc, argv); - - if (!glutLayerGet(GLUT_OVERLAY_POSSIBLE)) - { - fprintf(stderr, "Overlay not available\n"); - return(1); - } - - if (Args(argc, argv) == GL_FALSE) { - return(1); - } - - windW = 300; - windH = 300; - glutInitWindowPosition(0, 0); glutInitWindowSize( 300, 300); - - type = GLUT_RGB; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Overlay Test") == GL_FALSE) { - return(1); - } - - glutEstablishOverlay(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutIdleFunc(Idle); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/point.c b/progs/samples/point.c deleted file mode 100644 index 4cb6ad7d517..00000000000 --- a/progs/samples/point.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * 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_RED COLOR_RED -#define CI_ANTI_ALIAS_GREEN 16 -#define CI_ANTI_ALIAS_YELLOW 32 -#define CI_ANTI_ALIAS_RED 48 - - -GLenum rgb, doubleBuffer, windType; -GLint windW, windH; - -#include "tkmap.c" - -GLenum mode; -GLint size; -float point[3] = { - 1.0, 1.0, 0.0 -}; - - -static void Init(void) -{ - GLint i; - - glClearColor(0.0, 0.0, 0.0, 0.0); - - glBlendFunc(GL_SRC_ALPHA, GL_ZERO); - - if (!rgb) { - for (i = 0; i < 16; i++) { - glutSetColor(i+CI_ANTI_ALIAS_RED, i/15.0, 0.0, 0.0); - glutSetColor(i+CI_ANTI_ALIAS_YELLOW, i/15.0, i/15.0, 0.0); - glutSetColor(i+CI_ANTI_ALIAS_GREEN, 0.0, i/15.0, 0.0); - } - } - - mode = GL_FALSE; - size = 1; -} - -static void Reshape(int width, int height) -{ - - windW = (GLint)width; - windH = (GLint)height; - - glViewport(0, 0, width, height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-windW/2, windW/2, -windH/2, windH/2); - glMatrixMode(GL_MODELVIEW); -} - -static void Key2(int key, int x, int y) -{ - - switch (key) { - case GLUT_KEY_LEFT: - point[0] -= 0.25; - break; - case GLUT_KEY_RIGHT: - point[0] += 0.25; - break; - case GLUT_KEY_UP: - point[1] += 0.25; - break; - case GLUT_KEY_DOWN: - point[1] -= 0.25; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case '1': - mode = !mode; - break; - case 'W': - size++; - break; - case 'w': - size--; - if (size < 1) { - size = 1; - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - - glClear(GL_COLOR_BUFFER_BIT); - - SetColor(COLOR_YELLOW); - glBegin(GL_LINE_STRIP); - glVertex2f(-windW/2, 0); - glVertex2f(windW/2, 0); - glEnd(); - glBegin(GL_LINE_STRIP); - glVertex2f(0, -windH/2); - glVertex2f(0, windH/2); - glEnd(); - - if (mode) { - glEnable(GL_BLEND); - glEnable(GL_POINT_SMOOTH); - } else { - glDisable(GL_BLEND); - glDisable(GL_POINT_SMOOTH); - } - - glPointSize(size); - if (mode) { - (rgb) ? glColor3f(1.0, 0.0, 0.0) : glIndexf(CI_ANTI_ALIAS_RED); - } else { - (rgb) ? glColor3f(1.0, 0.0, 0.0) : glIndexf(CI_RED); - } - glBegin(GL_POINTS); - glVertex3fv(point); - glEnd(); - - glDisable(GL_POINT_SMOOTH); - glDisable(GL_BLEND); - - glPointSize(1); - SetColor(COLOR_GREEN); - glBegin(GL_POINTS); - glVertex3fv(point); - glEnd(); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - windW = 300; - windH = 300; - glutInitWindowPosition(0, 0); glutInitWindowSize( windW, windH); - - windType = (rgb) ? GLUT_RGB : GLUT_INDEX; - windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(windType); - - if (glutCreateWindow("Point Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/prim.c b/progs/samples/prim.c deleted file mode 100644 index c04750725fb..00000000000 --- a/progs/samples/prim.c +++ /dev/null @@ -1,545 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <GL/glut.h> - - -#define PIXEL_CENTER(x) ((long)(x) + 0.5) - -#define GAP 10 -#define ROWS 3 -#define COLS 4 - -#define OPENGL_WIDTH 48 -#define OPENGL_HEIGHT 13 - - -GLenum rgb, doubleBuffer, windType; -GLint windW, windH; - -GLenum mode1, mode2; -GLint boxW, boxH; -GLubyte OpenGL_bits[] = { - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01, - 0x7f, 0xfb, 0xff, 0xff, 0xff, 0x01, - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x3e, 0x8f, 0xb7, 0xf9, 0xfc, 0x01, - 0x63, 0xdb, 0xb0, 0x8d, 0x0d, 0x00, - 0x63, 0xdb, 0xb7, 0x8d, 0x0d, 0x00, - 0x63, 0xdb, 0xb6, 0x8d, 0x0d, 0x00, - 0x63, 0x8f, 0xf3, 0xcc, 0x0d, 0x00, - 0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0a, - 0x63, 0x00, 0x00, 0x0c, 0x4c, 0x0e, - 0x63, 0x00, 0x00, 0x8c, 0xed, 0x0e, - 0x3e, 0x00, 0x00, 0xf8, 0x0c, 0x00, -}; - - -#include "tkmap.c" - -static void Init(void) -{ - - mode1 = GL_TRUE; - mode2 = GL_TRUE; -} - -static void Reshape(int width, int height) -{ - - windW = (GLint)width; - windH = (GLint)height; -} - -static void RotateColorMask(void) -{ - static GLint rotation = 0; - - rotation = (rotation + 1) & 0x3; - switch (rotation) { - case 0: - glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); - glIndexMask( 0xff ); - break; - case 1: - glColorMask(GL_FALSE, GL_TRUE, GL_TRUE, GL_TRUE); - glIndexMask(0xFE); - break; - case 2: - glColorMask(GL_TRUE, GL_FALSE, GL_TRUE, GL_TRUE); - glIndexMask(0xFD); - break; - case 3: - glColorMask(GL_TRUE, GL_TRUE, GL_FALSE, GL_TRUE); - glIndexMask(0xFB); - break; - } -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case '1': - mode1 = !mode1; - break; - case '2': - mode2 = !mode2; - break; - case '3': - RotateColorMask(); - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Viewport(GLint row, GLint column) -{ - GLint x, y; - - boxW = (windW - (COLS + 1) * GAP) / COLS; - boxH = (windH - (ROWS + 1) * GAP) / ROWS; - - x = GAP + column * (boxW + GAP); - y = GAP + row * (boxH + GAP); - - glViewport(x, y, boxW, boxH); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(-boxW/2, boxW/2, -boxH/2, boxH/2, 0.0, 1.0); - glMatrixMode(GL_MODELVIEW); - - glEnable(GL_SCISSOR_TEST); - glScissor(x, y, boxW, boxH); -} - -static void Point(void) -{ - GLint i; - - glBegin(GL_POINTS); - SetColor(COLOR_WHITE); - glVertex2i(0, 0); - for (i = 1; i < 8; i++) { - GLint j = i * 2; - SetColor(COLOR_BLACK+i); - glVertex2i(-j, -j); - glVertex2i(-j, 0); - glVertex2i(-j, j); - glVertex2i(0, j); - glVertex2i(j, j); - glVertex2i(j, 0); - glVertex2i(j, -j); - glVertex2i(0, -j); - } - glEnd(); -} - -static void Lines(void) -{ - GLint i; - - glPushMatrix(); - - glTranslatef(-12, 0, 0); - for (i = 1; i < 8; i++) { - SetColor(COLOR_BLACK+i); - glBegin(GL_LINES); - glVertex2i(-boxW/4, -boxH/4); - glVertex2i(boxW/4, boxH/4); - glEnd(); - glTranslatef(4, 0, 0); - } - - glPopMatrix(); - - glBegin(GL_LINES); - glVertex2i(0, 0); - glEnd(); -} - -static void LineStrip(void) -{ - - glBegin(GL_LINE_STRIP); - SetColor(COLOR_RED); - glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4)); - SetColor(COLOR_GREEN); - glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4)); - SetColor(COLOR_BLUE); - glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4)); - SetColor(COLOR_WHITE); - glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4)); - glEnd(); - - glBegin(GL_LINE_STRIP); - glVertex2i(0, 0); - glEnd(); -} - -static void LineLoop(void) -{ - - glBegin(GL_LINE_LOOP); - SetColor(COLOR_RED); - glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(-boxH/4)); - SetColor(COLOR_GREEN); - glVertex2f(PIXEL_CENTER(-boxW/4), PIXEL_CENTER(boxH/4)); - SetColor(COLOR_BLUE); - glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(boxH/4)); - SetColor(COLOR_WHITE); - glVertex2f(PIXEL_CENTER(boxW/4), PIXEL_CENTER(-boxH/4)); - glEnd(); - - glEnable(GL_LOGIC_OP); - glLogicOp(GL_XOR); - - glEnable(GL_BLEND); - glBlendFunc(GL_ONE, GL_ONE); - - SetColor(COLOR_MAGENTA); - glBegin(GL_LINE_LOOP); - glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(-boxH/8)); - glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8)); - glEnd(); - glBegin(GL_LINE_LOOP); - glVertex2f(PIXEL_CENTER(-boxW/8), PIXEL_CENTER(boxH/8+5)); - glVertex2f(PIXEL_CENTER(boxW/8), PIXEL_CENTER(boxH/8+5)); - glEnd(); - glDisable(GL_LOGIC_OP); - glDisable(GL_BLEND); - - SetColor(COLOR_GREEN); - glBegin(GL_POINTS); - glVertex2i(0, 0); - glEnd(); - - glBegin(GL_LINE_LOOP); - glVertex2i(0, 0); - glEnd(); -} - -static void Bitmap(void) -{ - - glBegin(GL_LINES); - SetColor(COLOR_GREEN); - glVertex2i(-boxW/2, 0); - glVertex2i(boxW/2, 0); - glVertex2i(0, -boxH/2); - glVertex2i(0, boxH/2); - SetColor(COLOR_RED); - glVertex2i(0, -3); - glVertex2i(0, -3+OPENGL_HEIGHT); - SetColor(COLOR_BLUE); - glVertex2i(0, -3); - glVertex2i(OPENGL_WIDTH, -3); - glEnd(); - - SetColor(COLOR_GREEN); - - glPixelStorei(GL_UNPACK_LSB_FIRST, GL_TRUE); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - - glRasterPos2i(0, 0); - glBitmap(OPENGL_WIDTH, OPENGL_HEIGHT, 0, 3, 0.0, 0.0, OpenGL_bits); -} - -static void Triangles(void) -{ - - glBegin(GL_TRIANGLES); - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, -boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/8, -boxH/16); - SetColor(COLOR_BLUE); - glVertex2i(boxW/8, -boxH/16); - - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/8, boxH/16); - SetColor(COLOR_BLUE); - glVertex2i(boxW/8, boxH/16); - glEnd(); - - glBegin(GL_TRIANGLES); - glVertex2i(0, 0); - glVertex2i(-100, 100); - glEnd(); -} - -static void TriangleStrip(void) -{ - - glBegin(GL_TRIANGLE_STRIP); - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, -boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/4, boxH/4); - SetColor(COLOR_BLUE); - glVertex2i(0, -boxH/4); - SetColor(COLOR_WHITE); - glVertex2i(0, boxH/4); - SetColor(COLOR_CYAN); - glVertex2i(boxW/4, -boxH/4); - SetColor(COLOR_YELLOW); - glVertex2i(boxW/4, boxH/4); - glEnd(); - - glBegin(GL_TRIANGLE_STRIP); - glVertex2i(0, 0); - glVertex2i(-100, 100); - glEnd(); -} - -static void TriangleFan(void) -{ - GLint vx[8][2]; - GLint x0, y0, x1, y1, x2, y2, x3, y3; - GLint i; - - y0 = -boxH/4; - y1 = y0 + boxH/2/3; - y2 = y1 + boxH/2/3; - y3 = boxH/4; - x0 = -boxW/4; - x1 = x0 + boxW/2/3; - x2 = x1 + boxW/2/3; - x3 = boxW/4; - - vx[0][0] = x0; vx[0][1] = y1; - vx[1][0] = x0; vx[1][1] = y2; - vx[2][0] = x1; vx[2][1] = y3; - vx[3][0] = x2; vx[3][1] = y3; - vx[4][0] = x3; vx[4][1] = y2; - vx[5][0] = x3; vx[5][1] = y1; - vx[6][0] = x2; vx[6][1] = y0; - vx[7][0] = x1; vx[7][1] = y0; - - glBegin(GL_TRIANGLE_FAN); - SetColor(COLOR_WHITE); - glVertex2i(0, 0); - for (i = 0; i < 8; i++) { - SetColor(COLOR_WHITE-i); - glVertex2iv(vx[i]); - } - glEnd(); - - glBegin(GL_TRIANGLE_FAN); - glVertex2i(0, 0); - glVertex2i(-100, 100); - glEnd(); -} - -static void Rect(void) -{ - - SetColor(COLOR_GREEN); - glRecti(-boxW/4, -boxH/4, boxW/4, boxH/4); -} - -static void PolygonFunc(void) -{ - GLint vx[8][2]; - GLint x0, y0, x1, y1, x2, y2, x3, y3; - GLint i; - - y0 = -boxH/4; - y1 = y0 + boxH/2/3; - y2 = y1 + boxH/2/3; - y3 = boxH/4; - x0 = -boxW/4; - x1 = x0 + boxW/2/3; - x2 = x1 + boxW/2/3; - x3 = boxW/4; - - vx[0][0] = x0; vx[0][1] = y1; - vx[1][0] = x0; vx[1][1] = y2; - vx[2][0] = x1; vx[2][1] = y3; - vx[3][0] = x2; vx[3][1] = y3; - vx[4][0] = x3; vx[4][1] = y2; - vx[5][0] = x3; vx[5][1] = y1; - vx[6][0] = x2; vx[6][1] = y0; - vx[7][0] = x1; vx[7][1] = y0; - - glBegin(GL_POLYGON); - for (i = 0; i < 8; i++) { - SetColor(COLOR_WHITE-i); - glVertex2iv(vx[i]); - } - glEnd(); - - glBegin(GL_POLYGON); - glVertex2i(0, 0); - glVertex2i(100, 100); - glEnd(); -} - -static void Quads(void) -{ - - glBegin(GL_QUADS); - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, -boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/8, -boxH/16); - SetColor(COLOR_BLUE); - glVertex2i(boxW/8, -boxH/16); - SetColor(COLOR_WHITE); - glVertex2i(boxW/4, -boxH/4); - - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/8, boxH/16); - SetColor(COLOR_BLUE); - glVertex2i(boxW/8, boxH/16); - SetColor(COLOR_WHITE); - glVertex2i(boxW/4, boxH/4); - glEnd(); - - glBegin(GL_QUADS); - glVertex2i(0, 0); - glVertex2i(100, 100); - glVertex2i(-100, 100); - glEnd(); -} - -static void QuadStrip(void) -{ - - glBegin(GL_QUAD_STRIP); - SetColor(COLOR_GREEN); - glVertex2i(-boxW/4, -boxH/4); - SetColor(COLOR_RED); - glVertex2i(-boxW/4, boxH/4); - SetColor(COLOR_BLUE); - glVertex2i(0, -boxH/4); - SetColor(COLOR_WHITE); - glVertex2i(0, boxH/4); - SetColor(COLOR_CYAN); - glVertex2i(boxW/4, -boxH/4); - SetColor(COLOR_YELLOW); - glVertex2i(boxW/4, boxH/4); - glEnd(); - - glBegin(GL_QUAD_STRIP); - glVertex2i(0, 0); - glVertex2i(100, 100); - glVertex2i(-100, 100); - glEnd(); -} - -static void Draw(void) -{ - - glViewport(0, 0, windW, windH); - glDisable(GL_SCISSOR_TEST); - - glPushAttrib(GL_COLOR_BUFFER_BIT); - - glColorMask(1, 1, 1, 1); - glIndexMask(~0); - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - glPopAttrib(); - - if (mode1) { - glShadeModel(GL_SMOOTH); - } else { - glShadeModel(GL_FLAT); - } - - if (mode2) { - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - } else { - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - } - - Viewport(0, 0); Point(); - Viewport(0, 1); Lines(); - Viewport(0, 2); LineStrip(); - Viewport(0, 3); LineLoop(); - - Viewport(1, 0); Bitmap(); - Viewport(1, 1); TriangleFan(); - Viewport(1, 2); Triangles(); - Viewport(1, 3); TriangleStrip(); - - Viewport(2, 0); Rect(); - Viewport(2, 1); PolygonFunc(); - Viewport(2, 2); Quads(); - Viewport(2, 3); QuadStrip(); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - windW = 600; - windH = 300; - glutInitWindowPosition(0, 0); glutInitWindowSize( windW, windH); - - windType = (rgb) ? GLUT_RGB : GLUT_INDEX; - windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(windType); - - if (glutCreateWindow("Primitive Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/quad.c b/progs/samples/quad.c deleted file mode 100644 index 193850abc45..00000000000 --- a/progs/samples/quad.c +++ /dev/null @@ -1,457 +0,0 @@ -/* - * 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> - - -#ifndef CALLBACK -#define CALLBACK -#endif - - -#define PI 3.141592654 -#define BLACK 0 -#define GRAY 128 -#define WHITE 255 -#define RD 0xA4,0x00,0x00,0xFF -#define WT 0xFF,0xFF,0xFF,0xFF -#define brickImageWidth 16 -#define brickImageHeight 16 - - -#include "loadppm.c" - -GLenum rgb, doubleBuffer; - -#include "tkmap.c" - -float black[3] = { - 0.0, 0.0, 0.0 -}; -float blue[3] = { - 0.0, 0.0, 1.0 -}; -float gray[3] = { - 0.5, 0.5, 0.5 -}; -float white[3] = { - 1.0, 1.0, 1.0 -}; - -GLenum doDither = GL_TRUE; -GLenum shade = GL_TRUE; -GLenum texture = GL_TRUE; - -float xRotation = 30.0, yRotation = 30.0, zRotation = 0.0; -GLint radius1, radius2; -GLdouble angle1, angle2; -GLint slices, stacks; -GLint height; -GLint orientation = GLU_OUTSIDE; -GLint whichQuadric=0; -GLUquadricObj *quadObj; - -GLubyte brickImage[4*brickImageWidth*brickImageHeight] = { - RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, - WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, - RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, - RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, - RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, - RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, - WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, - RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, - RD, RD, RD, RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, - WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, WT, - RD, RD, RD, RD, WT, RD, RD, RD, RD, RD, RD, RD, RD, RD, WT, RD -}; -char *texFileName = 0; - - -static void CALLBACK ErrorHandler(GLenum which) -{ - - fprintf(stderr, "Quad Error: %s\n", (char *) gluErrorString(which)); -} - -typedef void (GLAPIENTRY *callback_t)(); - -static void Init(void) -{ - static GLint colorIndexes[3] = {0, 200, 255}; - static float ambient[] = {0.1, 0.1, 0.1, 1.0}; - static float diffuse[] = {0.5, 1.0, 1.0, 1.0}; - static float position[] = {90.0, 90.0, 150.0, 0.0}; - static float front_mat_shininess[] = {30.0}; - static float front_mat_specular[] = {0.2, 0.2, 0.2, 1.0}; - static float front_mat_diffuse[] = {0.5, 0.28, 0.38, 1.0}; - static float back_mat_shininess[] = {50.0}; - static float back_mat_specular[] = {0.5, 0.5, 0.2, 1.0}; - static float back_mat_diffuse[] = {1.0, 1.0, 0.2, 1.0}; - static float lmodel_ambient[] = {1.0, 1.0, 1.0, 1.0}; - static float lmodel_twoside[] = {GL_TRUE}; - static float decal[] = {GL_DECAL}; - static float repeat[] = {GL_REPEAT}; - static float nearest[] = {GL_NEAREST}; - static PPMImage *image; - - if (!rgb) { - SetGreyRamp(); - } - glClearColor(0.0, 0.0, 0.0, 0.0); - - glEnable(GL_DEPTH_TEST); - - glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_POSITION, position); - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); - glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - - glMaterialfv(GL_FRONT, GL_SHININESS, front_mat_shininess); - glMaterialfv(GL_FRONT, GL_SPECULAR, front_mat_specular); - glMaterialfv(GL_FRONT, GL_DIFFUSE, front_mat_diffuse); - glMaterialfv(GL_BACK, GL_SHININESS, back_mat_shininess); - glMaterialfv(GL_BACK, GL_SPECULAR, back_mat_specular); - glMaterialfv(GL_BACK, GL_DIFFUSE, back_mat_diffuse); - if (!rgb) { - glMaterialiv( GL_FRONT_AND_BACK, GL_COLOR_INDEXES, colorIndexes); - } - - glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, decal); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, repeat); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, repeat); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, nearest); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, nearest); - if (texFileName) { - image = LoadPPM(texFileName); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - gluBuild2DMipmaps(GL_TEXTURE_2D, 3, image->sizeX, image->sizeY, - GL_RGB, GL_UNSIGNED_BYTE, image->data); - } else { - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - glTexImage2D(GL_TEXTURE_2D, 0, 4, brickImageWidth, brickImageHeight, - 0, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid *)brickImage); - } - - quadObj = gluNewQuadric(); - gluQuadricCallback(quadObj, GLU_ERROR, (callback_t) ErrorHandler); - - radius1 = 10; - radius2 = 5; - angle1 = 90; - angle2 = 180; - slices = 16; - stacks = 10; - height = 20; -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-1, 1, -1, 1, 1, 10); - gluLookAt(2, 2, 2, 0, 0, 0, 0, 0, 1); - glMatrixMode(GL_MODELVIEW); -} - -static void Key2(int key, int x, int y) -{ - - switch (key) { - case GLUT_KEY_LEFT: - yRotation += 5; - break; - case GLUT_KEY_RIGHT: - yRotation -= 5; - break; - case GLUT_KEY_UP: - xRotation += 5; - break; - case GLUT_KEY_DOWN: - xRotation -= 5; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - - case 'X': - zRotation += 5; - break; - case 'x': - zRotation -= 5; - break; - - case '1': - gluQuadricDrawStyle(quadObj, GLU_FILL); - break; - case '2': - gluQuadricDrawStyle(quadObj, GLU_POINT); - break; - case '3': - gluQuadricDrawStyle(quadObj, GLU_LINE); - break; - case '4': - gluQuadricDrawStyle(quadObj, GLU_SILHOUETTE); - break; - - case '0': - shade = !shade; - if (shade) { - glShadeModel(GL_SMOOTH); - gluQuadricNormals(quadObj, GLU_SMOOTH); - } else { - glShadeModel(GL_FLAT); - gluQuadricNormals(quadObj, GLU_FLAT); - } - break; - - case 'A': - stacks++; - break; - case 'a': - stacks--; - break; - - case 'S': - slices++; - break; - case 's': - slices--; - break; - - case 'd': - switch(orientation) { - case GLU_OUTSIDE: - orientation = GLU_INSIDE; - break; - case GLU_INSIDE: - default: - orientation = GLU_OUTSIDE; - break; - } - gluQuadricOrientation(quadObj, orientation); - break; - - case 'f': - whichQuadric = (whichQuadric + 1) % 4; - break; - - case 'G': - radius1 += 1; - break; - case 'g': - radius1 -= 1; - break; - - case 'J': - radius2 += 1; - break; - case 'j': - radius2 -= 1; - break; - - case 'H': - height += 2; - break; - case 'h': - height -= 2; - break; - - case 'K': - angle1 += 5; - break; - case 'k': - angle1 -= 5; - break; - - case 'L': - angle2 += 5; - break; - case 'l': - angle2 -= 5; - break; - - case 'z': - texture = !texture; - if (texture) { - gluQuadricTexture(quadObj, GL_TRUE); - glEnable(GL_TEXTURE_2D); - } else { - gluQuadricTexture(quadObj, GL_FALSE); - glDisable(GL_TEXTURE_2D); - } - break; - - case 'q': - glDisable(GL_CULL_FACE); - break; - case 'w': - glEnable(GL_CULL_FACE); - glCullFace(GL_FRONT); - break; - case 'e': - glEnable(GL_CULL_FACE); - glCullFace(GL_BACK); - break; - - case 'r': - glFrontFace(GL_CW); - break; - case 't': - glFrontFace(GL_CCW); - break; - - case 'y': - doDither = !doDither; - (doDither) ? glEnable(GL_DITHER) : glDisable(GL_DITHER); - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - - glLoadIdentity(); - glRotatef(xRotation, 1, 0, 0); - glRotatef(yRotation, 0, 1, 0); - glRotatef(zRotation, 0, 0, 1); - - glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - - glColor3f(1.0, 1.0, 1.0); - switch (whichQuadric) { - case 0: - glTranslatef(0, 0, -height/20.0); - gluCylinder(quadObj, radius1/10.0, radius2/10.0, height/10.0, - slices, stacks); - break; - case 1: - gluSphere(quadObj, radius1/10.0, slices, stacks); - break; - case 2: - gluPartialDisk(quadObj, radius2/10.0, radius1/10.0, slices, - stacks, angle1, angle2); - break; - case 3: - gluDisk(quadObj, radius2/10.0, radius1/10.0, slices, stacks); - break; - } - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else if (strcmp(argv[i], "-f") == 0) { - if (i+1 >= argc || argv[i+1][0] == '-') { - printf("-f (No file name).\n"); - return GL_FALSE; - } else { - texFileName = argv[++i]; - } - } else { - printf("%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( 300, 300); - - type = GLUT_DEPTH; - type |= (rgb) ? GLUT_RGB : GLUT_INDEX; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Quad Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/rgbtoppm.c b/progs/samples/rgbtoppm.c deleted file mode 100644 index 403578ef423..00000000000 --- a/progs/samples/rgbtoppm.c +++ /dev/null @@ -1,303 +0,0 @@ - -/* texture.c - by David Blythe, SGI */ - -/* texload is a simplistic routine for reading an SGI .rgb image file. */ - -#include <assert.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <GL/glut.h> - -typedef struct _ImageRec { - unsigned short imagic; - unsigned short type; - unsigned short dim; - unsigned short xsize, ysize, zsize; - unsigned int min, max; - unsigned int wasteBytes; - char name[80]; - unsigned long colorMap; - FILE *file; - unsigned char *tmp; - unsigned long rleEnd; - unsigned int *rowStart; - int *rowSize; -} ImageRec; - -static void -rgbtorgb(unsigned char *r,unsigned char *g,unsigned char *b,unsigned char *l,int n) { - while(n--) { - l[0] = r[0]; - l[1] = g[0]; - l[2] = b[0]; - l += 3; r++; g++; b++; - } -} - -static void -ConvertShort(unsigned short *array, unsigned int length) { - unsigned short b1, b2; - unsigned char *ptr; - - ptr = (unsigned char *)array; - while (length--) { - b1 = *ptr++; - b2 = *ptr++; - *array++ = (b1 << 8) | (b2); - } -} - -static void -ConvertUint(unsigned *array, unsigned int length) { - unsigned int b1, b2, b3, b4; - unsigned char *ptr; - - ptr = (unsigned char *)array; - while (length--) { - b1 = *ptr++; - b2 = *ptr++; - b3 = *ptr++; - b4 = *ptr++; - *array++ = (b1 << 24) | (b2 << 16) | (b3 << 8) | (b4); - } -} - -static ImageRec *ImageOpen(char *fileName) -{ - union { - int testWord; - char testByte[4]; - } endianTest; - ImageRec *image; - int swapFlag; - int x; - int result; - - endianTest.testWord = 1; - if (endianTest.testByte[0] == 1) { - swapFlag = 1; - } else { - swapFlag = 0; - } - - image = (ImageRec *)malloc(sizeof(ImageRec)); - if (image == NULL) { - fprintf(stderr, "Out of memory!\n"); - exit(1); - } - if ((image->file = fopen(fileName, "rb")) == NULL) { - free(image); - return NULL; - } - - result = fread(image, 1, 12, image->file); - assert(result == 12); - - if (swapFlag) { - ConvertShort(&image->imagic, 1); - ConvertShort(&image->type, 1); - ConvertShort(&image->dim, 1); - ConvertShort(&image->xsize, 1); - ConvertShort(&image->ysize, 1); - ConvertShort(&image->zsize, 1); - } - - image->tmp = (unsigned char *)malloc(image->xsize*256); - if (image->tmp == NULL) { - fprintf(stderr, "\nOut of memory!\n"); - exit(1); - } - - if ((image->type & 0xFF00) == 0x0100) { - x = image->ysize * image->zsize * (int) sizeof(unsigned); - image->rowStart = (unsigned *)malloc(x); - image->rowSize = (int *)malloc(x); - if (image->rowStart == NULL || image->rowSize == NULL) { - fprintf(stderr, "\nOut of memory!\n"); - exit(1); - } - image->rleEnd = 512 + (2 * x); - fseek(image->file, 512, SEEK_SET); - result = fread(image->rowStart, 1, x, image->file); - assert(result == x); - result = fread(image->rowSize, 1, x, image->file); - assert(result == x); - if (swapFlag) { - ConvertUint(image->rowStart, x/(int) sizeof(unsigned)); - ConvertUint((unsigned *)image->rowSize, x/(int) sizeof(int)); - } - } - return image; -} - -static void -ImageClose(ImageRec *image) { - fclose(image->file); - free(image->tmp); - free(image); -} - -static void -ImageGetRow(ImageRec *image, unsigned char *buf, int y, int z) { - unsigned char *iPtr, *oPtr, pixel; - int count; - int result; - - if ((image->type & 0xFF00) == 0x0100) { - fseek(image->file, (long) image->rowStart[y+z*image->ysize], SEEK_SET); - result = fread(image->tmp, 1, (unsigned int)image->rowSize[y+z*image->ysize], - image->file); - assert(result == (unsigned int)image->rowSize[y+z*image->ysize]); - - iPtr = image->tmp; - oPtr = buf; - for (;;) { - pixel = *iPtr++; - count = (int)(pixel & 0x7F); - if (!count) { - return; - } - if (pixel & 0x80) { - while (count--) { - *oPtr++ = *iPtr++; - } - } else { - pixel = *iPtr++; - while (count--) { - *oPtr++ = pixel; - } - } - } - } else { - fseek(image->file, 512+(y*image->xsize)+(z*image->xsize*image->ysize), - SEEK_SET); - result = fread(buf, 1, image->xsize, image->file); - assert(result == image->xsize); - } -} - -#if 0 -static GLubyte * -read_alpha_texture(char *name, int *width, int *height) -{ - unsigned char *base, *lptr; - ImageRec *image; - int y; - - image = ImageOpen(name); - if(!image) { - return NULL; - } - - (*width)=image->xsize; - (*height)=image->ysize; - if (image->zsize != 1) { - ImageClose(image); - return NULL; - } - - base = (unsigned char *)malloc(image->xsize*image->ysize*sizeof(unsigned char)); - lptr = base; - for(y=0; y<image->ysize; y++) { - ImageGetRow(image,lptr,y,0); - lptr += image->xsize; - } - ImageClose(image); - - return (unsigned char *) base; -} -#endif - -static GLubyte * -read_rgb_texture(char *name, int *width, int *height) -{ - unsigned char *base, *ptr; - unsigned char *rbuf, *gbuf, *bbuf, *abuf; - ImageRec *image; - int y; - - image = ImageOpen(name); - - if(!image) - return NULL; - (*width)=image->xsize; - (*height)=image->ysize; - if (image->zsize != 3 && image->zsize != 4) { - ImageClose(image); - return NULL; - } - - base = (unsigned char*)malloc(image->xsize*image->ysize*sizeof(unsigned int)*3); - rbuf = (unsigned char *)malloc(image->xsize*sizeof(unsigned char)); - gbuf = (unsigned char *)malloc(image->xsize*sizeof(unsigned char)); - bbuf = (unsigned char *)malloc(image->xsize*sizeof(unsigned char)); - abuf = (unsigned char *)malloc(image->xsize*sizeof(unsigned char)); - if(!base || !rbuf || !gbuf || !bbuf || !abuf) { - if (base) free(base); - if (rbuf) free(rbuf); - if (gbuf) free(gbuf); - if (bbuf) free(bbuf); - if (abuf) free(abuf); - ImageClose(image); - return NULL; - } - ptr = base; - for(y=0; y<image->ysize; y++) { - if(image->zsize == 4) { - ImageGetRow(image,rbuf,y,0); - ImageGetRow(image,gbuf,y,1); - ImageGetRow(image,bbuf,y,2); - ImageGetRow(image,abuf,y,3); /* Discard. */ - rgbtorgb(rbuf,gbuf,bbuf,ptr,image->xsize); - ptr += (image->xsize * 3); - } else { - ImageGetRow(image,rbuf,y,0); - ImageGetRow(image,gbuf,y,1); - ImageGetRow(image,bbuf,y,2); - rgbtorgb(rbuf,gbuf,bbuf,ptr,image->xsize); - ptr += (image->xsize * 3); - } - } - ImageClose(image); - free(rbuf); - free(gbuf); - free(bbuf); - free(abuf); - - return (GLubyte *) base; -} - -int main(int argc, char **argv) -{ - int width = 0; - int height = 0; - GLubyte *data; - char buff[32]; - int n; - FILE *fo; - - if (argc != 3) - { - fprintf(stderr, "usage: %s <infile.rgb> <outfile.p6>\n", argv[0]); - return 1; - } - - data = read_rgb_texture(argv[1], &width, &height); - - n = sprintf(buff, "P6\n%d %d\n255\n", width, height); - - /* [dBorca] avoid LF to CRLF conversion */ - if ((fo = fopen(argv[2], "wb")) == NULL) { - fprintf(stderr, "Cannot open output file!\n"); - exit(1); - } - - fwrite(buff, n, 1, fo); - fwrite(data, width * 3, height, fo); - - fclose(fo); - - return 0; -} diff --git a/progs/samples/select.c b/progs/samples/select.c deleted file mode 100644 index 31ed93b9e05..00000000000 --- a/progs/samples/select.c +++ /dev/null @@ -1,462 +0,0 @@ -/* - * 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 <stdlib.h> -#include <math.h> -#include <string.h> -#include <time.h> -#include <GL/glut.h> - - -#define MAXOBJS 10000 -#define MAXSELECT 100 -#define MAXFEED 300 -#define SOLID 1 -#define LINE 2 -#define POINT 3 - - -GLint windW, windH; - -GLuint selectBuf[MAXSELECT]; -GLfloat feedBuf[MAXFEED]; -GLint vp[4]; -float zRotation = 90.0; -float zoom = 1.0; -GLint objectCount; -GLint numObjects; -struct object { - float v1[2]; - float v2[2]; - float v3[2]; - float color[3]; -} objects[MAXOBJS]; -GLenum linePoly = GL_FALSE; - - -static void InitObjects(GLint num) -{ - GLint i; - float x, y; - - if (num > MAXOBJS) { - num = MAXOBJS; - } - if (num < 1) { - num = 1; - } - objectCount = num; - - srand((unsigned int)time(NULL)); - for (i = 0; i < num; i++) { - x = (rand() % 300) - 150; - y = (rand() % 300) - 150; - - objects[i].v1[0] = x + (rand() % 50) - 25; - objects[i].v2[0] = x + (rand() % 50) - 25; - objects[i].v3[0] = x + (rand() % 50) - 25; - objects[i].v1[1] = y + (rand() % 50) - 25; - objects[i].v2[1] = y + (rand() % 50) - 25; - objects[i].v3[1] = y + (rand() % 50) - 25; - objects[i].color[0] = ((rand() % 100) + 50) / 150.0; - objects[i].color[1] = ((rand() % 100) + 50) / 150.0; - objects[i].color[2] = ((rand() % 100) + 50) / 150.0; - } -} - -static void Init(void) -{ - - numObjects = 10; - InitObjects(numObjects); - glGetIntegerv(GL_VIEWPORT, vp); - -#if 0 /* debug - test culling */ - glCullFace(GL_BACK); - glFrontFace(GL_CW); - glEnable(GL_CULL_FACE); -#endif -} - -static void Reshape(int width, int height) -{ - - windW = (GLint)width; - windH = (GLint)height; -} - -static void Render(GLenum mode) -{ - GLint i; - - for (i = 0; i < objectCount; i++) { - if (mode == GL_SELECT) { - glLoadName(i); - } - glColor3fv(objects[i].color); - glBegin(GL_POLYGON); - glVertex2fv(objects[i].v1); - glVertex2fv(objects[i].v2); - glVertex2fv(objects[i].v3); - glEnd(); - } -} - -static GLint DoSelect(GLint x, GLint y) -{ - GLint hits; - - glSelectBuffer(MAXSELECT, selectBuf); - (void)glRenderMode(GL_SELECT); - glInitNames(); - glPushName(~0); - - glPushMatrix(); - - glViewport(0, 0, windW, windH); - glGetIntegerv(GL_VIEWPORT, vp); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPickMatrix(x, windH-y, 4, 4, vp); - gluOrtho2D(-175, 175, -175, 175); - glMatrixMode(GL_MODELVIEW); - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - glScalef(zoom, zoom, zoom); - glRotatef(zRotation, 0, 0, 1); - - Render(GL_SELECT); - - glPopMatrix(); - - hits = glRenderMode(GL_RENDER); - if (hits <= 0) { - return -1; - } - - return selectBuf[(hits-1)*4+3]; -} - -static void RecolorTri(GLint h) -{ - - objects[h].color[0] = ((rand() % 100) + 50) / 150.0; - objects[h].color[1] = ((rand() % 100) + 50) / 150.0; - objects[h].color[2] = ((rand() % 100) + 50) / 150.0; -} - -static void DeleteTri(GLint h) -{ - - objects[h] = objects[objectCount-1]; - objectCount--; -} - -static void GrowTri(GLint h) -{ - float v[2]; - float *oldV = NULL; - GLint i; - - v[0] = objects[h].v1[0] + objects[h].v2[0] + objects[h].v3[0]; - v[1] = objects[h].v1[1] + objects[h].v2[1] + objects[h].v3[1]; - v[0] /= 3; - v[1] /= 3; - - for (i = 0; i < 3; i++) { - switch (i) { - case 0: - oldV = objects[h].v1; - break; - case 1: - oldV = objects[h].v2; - break; - case 2: - oldV = objects[h].v3; - break; - } - oldV[0] = 1.5 * (oldV[0] - v[0]) + v[0]; - oldV[1] = 1.5 * (oldV[1] - v[1]) + v[1]; - } -} - -static void Mouse(int button, int state, int mouseX, int mouseY) -{ - GLint hit; - - if (state != GLUT_DOWN) - return; - - hit = DoSelect((GLint)mouseX, (GLint)mouseY); - if (hit != -1) { - if (button == GLUT_LEFT_BUTTON) { - RecolorTri(hit); - } - if (button == GLUT_MIDDLE_BUTTON) { - GrowTri(hit); - } - if (button == GLUT_RIGHT_BUTTON) { - DeleteTri(hit); - } - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - - glPushMatrix(); - - glViewport(0, 0, windW, windH); - glGetIntegerv(GL_VIEWPORT, vp); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-175, 175, -175, 175); - glMatrixMode(GL_MODELVIEW); - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - glScalef(zoom, zoom, zoom); - glRotatef(zRotation, 0, 0, 1); - - Render(GL_RENDER); - - glPopMatrix(); - - glFlush(); -} - -static void DrawZoom(GLint x, GLint y) -{ - - glPushMatrix(); - - glViewport(0, 0, windW, windH); - glGetIntegerv(GL_VIEWPORT, vp); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPickMatrix(x, windH-y, 4, 4, vp); - gluOrtho2D(-175, 175, -175, 175); - glMatrixMode(GL_MODELVIEW); - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - glScalef(zoom, zoom, zoom); - glRotatef(zRotation, 0, 0, 1); - - Render(GL_RENDER); - - glPopMatrix(); -} - -static void DumpFeedbackVert(GLint *i, GLint n) -{ - GLint index; - - index = *i; - if (index+7 > n) { - *i = n; - printf(" ???\n"); - return; - } - printf(" (%g %g %g), color = (%4.2f %4.2f %4.2f)\n", - feedBuf[index], - feedBuf[index+1], - feedBuf[index+2], - feedBuf[index+3], - feedBuf[index+4], - feedBuf[index+5]); - index += 7; - *i = index; -} - -static void DrawFeedback(GLint n) -{ - GLint i; - GLint verts; - - printf("Feedback results (%d floats):\n", n); - for (i = 0; i < n; i++) { - switch ((GLint)feedBuf[i]) { - case GL_POLYGON_TOKEN: - printf("Polygon"); - i++; - if (i < n) { - verts = (GLint)feedBuf[i]; - i++; - printf(": %d vertices", verts); - } else { - verts = 0; - } - printf("\n"); - while (verts) { - DumpFeedbackVert(&i, n); - verts--; - } - i--; - break; - case GL_LINE_TOKEN: - printf("Line:\n"); - i++; - DumpFeedbackVert(&i, n); - DumpFeedbackVert(&i, n); - i--; - break; - case GL_LINE_RESET_TOKEN: - printf("Line Reset:\n"); - i++; - DumpFeedbackVert(&i, n); - DumpFeedbackVert(&i, n); - i--; - break; - default: - printf("%9.2f\n", feedBuf[i]); - break; - } - } - if (i == MAXFEED) { - printf("...\n"); - } - printf("\n"); -} - -static void DoFeedback(void) -{ - GLint x; - - glFeedbackBuffer(MAXFEED, GL_3D_COLOR, feedBuf); - (void)glRenderMode(GL_FEEDBACK); - - glPushMatrix(); - - glViewport(0, 0, windW, windH); - glGetIntegerv(GL_VIEWPORT, vp); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-175, 175, -175, 175); - glMatrixMode(GL_MODELVIEW); - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - glScalef(zoom, zoom, zoom); - glRotatef(zRotation, 0, 0, 1); - - Render(GL_FEEDBACK); - - glPopMatrix(); - - x = glRenderMode(GL_RENDER); - if (x == -1) { - x = MAXFEED; - } - - DrawFeedback((GLint)x); -} - -static void Key2(int key, int x, int y) -{ - switch (key) { - case GLUT_KEY_LEFT: - zRotation += 0.5; - break; - case GLUT_KEY_RIGHT: - zRotation -= 0.5; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - switch (key) { - case 27: - exit(1); - case 'Z': - zoom /= 0.75; - break; - case 'z': - zoom *= 0.75; - break; - case 'f': - DoFeedback(); - break; - case 'd': - DrawZoom(x, y); - break; - case 'l': - linePoly = !linePoly; - if (linePoly) { - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - } else { - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -int main(int argc, char **argv) -{ - GLenum type; - - glutInit(&argc, argv); - - windW = 300; - windH = 300; - glutInitWindowPosition(0, 0); glutInitWindowSize( windW, windH); - - type = GLUT_RGB | GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Select Test") == GL_FALSE) { - exit(1); - } - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutMouseFunc(Mouse); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/shape.c b/progs/samples/shape.c deleted file mode 100644 index d342ee5b07b..00000000000 --- a/progs/samples/shape.c +++ /dev/null @@ -1,345 +0,0 @@ -/* - * 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 OPENGL_WIDTH 24 -#define OPENGL_HEIGHT 13 - - -GLenum rgb, doubleBuffer, windType; -GLint objectIndex = 0; -GLuint bases[20]; -float angleX = 0.0, angleY = 0.0, angleZ = 0.0; -float scaleX = 1.0, scaleY = 1.0, scaleZ = 1.0; -float shiftX = 0.0, shiftY = 0.0, shiftZ = 0.0; - - -#include "tkmap.c" - -static void Init(void) -{ - - bases[0] = glGenLists(1); - glNewList(bases[0], GL_COMPILE); - glutWireSphere(1.0, 20, 10); - glEndList(); - - bases[1] = glGenLists(1); - glNewList(bases[1], GL_COMPILE); - glutSolidSphere(1.0, 20, 10); - glEndList(); - - bases[2] = glGenLists(1); - glNewList(bases[2], GL_COMPILE); - glutWireCube(1.0); - glEndList(); - - bases[3] = glGenLists(1); - glNewList(bases[3], GL_COMPILE); - glutSolidCube(1.0); - glEndList(); - - bases[4] = glGenLists(1); - glNewList(bases[4], GL_COMPILE); - glutWireTorus(1.0, 1.0, 10, 20); - glEndList(); - - bases[5] = glGenLists(1); - glNewList(bases[5], GL_COMPILE); - glutSolidTorus(1.0, 1.0, 10, 20); - glEndList(); - - bases[6] = glGenLists(1); - glNewList(bases[6], GL_COMPILE); - glutWireIcosahedron(); - glEndList(); - - bases[7] = glGenLists(1); - glNewList(bases[7], GL_COMPILE); - glutSolidIcosahedron(); - glEndList(); - - bases[8] = glGenLists(1); - glNewList(bases[8], GL_COMPILE); - glutWireOctahedron(); - glEndList(); - - bases[9] = glGenLists(1); - glNewList(bases[9], GL_COMPILE); - glutSolidOctahedron(); - glEndList(); - - bases[10] = glGenLists(1); - glNewList(bases[10], GL_COMPILE); - glutWireTetrahedron(); - glEndList(); - - bases[11] = glGenLists(1); - glNewList(bases[11], GL_COMPILE); - glutSolidTetrahedron(); - glEndList(); - - bases[12] = glGenLists(1); - glNewList(bases[12], GL_COMPILE); - glutWireDodecahedron(); - glEndList(); - - bases[13] = glGenLists(1); - glNewList(bases[13], GL_COMPILE); - glutSolidDodecahedron(); - glEndList(); - - bases[14] = glGenLists(1); - glNewList(bases[14], GL_COMPILE); - glutWireCone(5.0, 5.0, 20, 10); - glEndList(); - - bases[15] = glGenLists(1); - glNewList(bases[15], GL_COMPILE); - glutSolidCone(5.0, 5.0, 20, 10); - glEndList(); - - bases[16] = glGenLists(1); - glNewList(bases[16], GL_COMPILE); - glutWireTeapot(1.0); - glEndList(); - - bases[17] = glGenLists(1); - glNewList(bases[17], GL_COMPILE); - glutSolidTeapot(1.0); - glEndList(); - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClearIndex(0.0); -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(-400.0, 400.0, -200.0, 200.0, -400.0, 400.0); - glMatrixMode(GL_MODELVIEW); -} - -static void Key2(int key, int x, int y) -{ - - switch (key) { - case GLUT_KEY_LEFT: - shiftX -= 20.0; - break; - case GLUT_KEY_RIGHT: - shiftX += 20.0; - break; - case GLUT_KEY_UP: - shiftY += 20.0; - break; - case GLUT_KEY_DOWN: - shiftY -= 20.0; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - - case 32: - objectIndex++; - if (objectIndex > 17) { - objectIndex = 0; - } - break; - - case 'n': - shiftZ += 20.0; - break; - case 'm': - shiftZ -= 20.0; - break; - - case 'q': - scaleX -= 0.1; - if (scaleX < 0.1) { - scaleX = 0.1; - } - break; - case 'w': - scaleX += 0.1; - break; - case 'a': - scaleY -= 0.1; - if (scaleY < 0.1) { - scaleY = 0.1; - } - break; - case 's': - scaleY += 0.1; - break; - case 'z': - scaleZ -= 0.1; - if (scaleZ < 0.1) { - scaleZ = 0.1; - } - break; - case 'x': - scaleZ += 0.1; - break; - - case 'e': - angleX -= 5.0; - if (angleX < 0.0) { - angleX = 360.0 + angleX; - } - break; - case 'r': - angleX += 5.0; - if (angleX > 360.0) { - angleX = angleX - 360.0; - } - break; - case 'd': - angleY -= 5.0; - if (angleY < 0.0) { - angleY = 360.0 + angleY; - } - break; - case 'f': - angleY += 5.0; - if (angleY > 360.0) { - angleY = angleY - 360.0; - } - break; - case 'c': - angleZ -= 5.0; - if (angleZ < 0.0) { - angleZ = 360.0 + angleZ; - } - break; - case 'v': - angleZ += 5.0; - if (angleZ > 360.0) { - angleZ = angleZ - 360.0; - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - - glClear(GL_COLOR_BUFFER_BIT); - - SetColor(COLOR_WHITE); - - glPushMatrix(); - - glTranslatef(shiftX, shiftY, shiftZ); - glRotatef(angleX, 1.0, 0.0, 0.0); - glRotatef(angleY, 0.0, 1.0, 0.0); - glRotatef(angleZ, 0.0, 0.0, 1.0); - glScalef(scaleX, scaleY, scaleZ); - - glCallList(bases[objectIndex]); - glPopMatrix(); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - glutInitWindowPosition(0, 0); glutInitWindowSize( 400, 400); - - windType = (rgb) ? GLUT_RGB : GLUT_INDEX; - windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(windType); - - if (glutCreateWindow("Font Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/sphere.c b/progs/samples/sphere.c deleted file mode 100644 index 23d4fe32c02..00000000000 --- a/progs/samples/sphere.c +++ /dev/null @@ -1,1014 +0,0 @@ -/* - * 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. - */ - -/* BEP: renamed "nearest" as "nnearest" to avoid math.h collision on AIX */ - -#include <stdio.h> -#include <string.h> -#include <math.h> -#include <stdlib.h> -#include <GL/glut.h> -#include "readtex.h" - - -#ifndef PI -#define PI 3.14159265358979323846 -#endif - - -GLenum doubleBuffer; -int W = 400, H = 400; - -char *imageFileName = "../images/reflect.rgb"; - -float *minFilter, *magFilter, *sWrapMode, *tWrapMode; -float decal[] = {GL_DECAL}; -float modulate[] = {GL_MODULATE}; -float repeat[] = {GL_REPEAT}; -float clamp[] = {GL_CLAMP}; -float nnearest[] = {GL_NEAREST}; -float linear[] = {GL_LINEAR}; -float nearest_mipmap_nearest[] = {GL_NEAREST_MIPMAP_NEAREST}; -float nearest_mipmap_linear[] = {GL_NEAREST_MIPMAP_LINEAR}; -float linear_mipmap_nearest[] = {GL_LINEAR_MIPMAP_NEAREST}; -float linear_mipmap_linear[] = {GL_LINEAR_MIPMAP_LINEAR}; -GLint sphereMap[] = {GL_SPHERE_MAP}; - -float xRotation = 0.0, yRotation = 0.0; -float zTranslate = -3.0; -GLenum autoRotate = GL_TRUE; -GLboolean isLit = GL_TRUE; -GLboolean isFogged = GL_FALSE; -GLboolean doTexture = GL_TRUE; -float *textureEnvironment = modulate; - -int cube, cage, cylinder, torus, genericObject; - -float c[6][4][4][3] = { - { - { - { - 1.0, 1.0, -1.0 - }, - { - 0.0, 1.0, -1.0 - }, - { - 0.0, 0.0, -1.0 - }, - { - 1.0, 0.0, -1.0 - }, - }, - { - { - 0.0, 1.0, -1.0 - }, - { - -1.0, 1.0, -1.0 - }, - { - -1.0, 0.0, -1.0 - }, - { - 0.0, 0.0, -1.0 - }, - }, - { - { - 0.0, 0.0, -1.0 - }, - { - -1.0, 0.0, -1.0 - }, - { - -1.0, -1.0, -1.0 - }, - { - 0.0, -1.0, -1.0 - }, - }, - { - { - 1.0, 0.0, -1.0 - }, - { - 0.0, 0.0, -1.0 - }, - { - 0.0, -1.0, -1.0 - }, - { - 1.0, -1.0, -1.0 - }, - }, - }, - { - { - { - 1.0, 1.0, 1.0 - }, - { - 1.0, 1.0, 0.0 - }, - { - 1.0, 0.0, 0.0 - }, - { - 1.0, 0.0, 1.0 - }, - }, - { - { - 1.0, 1.0, 0.0 - }, - { - 1.0, 1.0, -1.0 - }, - { - 1.0, 0.0, -1.0 - }, - { - 1.0, 0.0, 0.0 - }, - }, - { - { - 1.0, 0.0, -1.0 - }, - { - 1.0, -1.0, -1.0 - }, - { - 1.0, -1.0, 0.0 - }, - { - 1.0, 0.0, 0.0 - }, - }, - { - { - 1.0, 0.0, 0.0 - }, - { - 1.0, -1.0, 0.0 - }, - { - 1.0, -1.0, 1.0 - }, - { - 1.0, 0.0, 1.0 - }, - }, - }, - { - { - { - -1.0, 1.0, 1.0 - }, - { - 0.0, 1.0, 1.0 - }, - { - 0.0, 0.0, 1.0 - }, - { - -1.0, 0.0, 1.0 - }, - }, - { - { - 0.0, 1.0, 1.0 - }, - { - 1.0, 1.0, 1.0 - }, - { - 1.0, 0.0, 1.0 - }, - { - 0.0, 0.0, 1.0 - }, - }, - { - { - 1.0, 0.0, 1.0 - }, - { - 1.0, -1.0, 1.0 - }, - { - 0.0, -1.0, 1.0 - }, - { - 0.0, 0.0, 1.0 - }, - }, - { - { - 0.0, -1.0, 1.0 - }, - { - -1.0, -1.0, 1.0 - }, - { - -1.0, 0.0, 1.0 - }, - { - 0.0, 0.0, 1.0 - }, - }, - }, - { - { - { - -1.0, 1.0, -1.0 - }, - { - -1.0, 1.0, 0.0 - }, - { - -1.0, 0.0, 0.0 - }, - { - -1.0, 0.0, -1.0 - }, - }, - { - { - -1.0, 1.0, 0.0 - }, - { - -1.0, 1.0, 1.0 - }, - { - -1.0, 0.0, 1.0 - }, - { - -1.0, 0.0, 0.0 - }, - }, - { - { - -1.0, 0.0, 1.0 - }, - { - -1.0, -1.0, 1.0 - }, - { - -1.0, -1.0, 0.0 - }, - { - -1.0, 0.0, 0.0 - }, - }, - { - { - -1.0, -1.0, 0.0 - }, - { - -1.0, -1.0, -1.0 - }, - { - -1.0, 0.0, -1.0 - }, - { - -1.0, 0.0, 0.0 - }, - }, - }, - { - { - { - -1.0, 1.0, 1.0 - }, - { - -1.0, 1.0, 0.0 - }, - { - 0.0, 1.0, 0.0 - }, - { - 0.0, 1.0, 1.0 - }, - }, - { - { - -1.0, 1.0, 0.0 - }, - { - -1.0, 1.0, -1.0 - }, - { - 0.0, 1.0, -1.0 - }, - { - 0.0, 1.0, 0.0 - }, - }, - { - { - 0.0, 1.0, -1.0 - }, - { - 1.0, 1.0, -1.0 - }, - { - 1.0, 1.0, 0.0 - }, - { - 0.0, 1.0, 0.0 - }, - }, - { - { - 1.0, 1.0, 0.0 - }, - { - 1.0, 1.0, 1.0 - }, - { - 0.0, 1.0, 1.0 - }, - { - 0.0, 1.0, 0.0 - }, - }, - }, - { - { - { - -1.0, -1.0, -1.0 - }, - { - -1.0, -1.0, 0.0 - }, - { - 0.0, -1.0, 0.0 - }, - { - 0.0, -1.0, -1.0 - }, - }, - { - { - -1.0, -1.0, 0.0 - }, - { - -1.0, -1.0, 1.0 - }, - { - 0.0, -1.0, 1.0 - }, - { - 0.0, -1.0, 0.0 - }, - }, - { - { - 0.0, -1.0, 1.0 - }, - { - 1.0, -1.0, 1.0 - }, - { - 1.0, -1.0, 0.0 - }, - { - 0.0, -1.0, 0.0 - }, - }, - { - { - 1.0, -1.0, 0.0 - }, - { - 1.0, -1.0, -1.0 - }, - { - 0.0, -1.0, -1.0 - }, - { - 0.0, -1.0, 0.0 - }, - }, - } -}; - -float n[6][3] = { - { - 0.0, 0.0, -1.0 - }, - { - 1.0, 0.0, 0.0 - }, - { - 0.0, 0.0, 1.0 - }, - { - -1.0, 0.0, 0.0 - }, - { - 0.0, 1.0, 0.0 - }, - { - 0.0, -1.0, 0.0 - } -}; - -GLfloat identity[16] = { - 1, 0, 0, 0, - 0, 1, 0, 0, - 0, 0, 1, 0, - 0, 0, 0, 1, -}; - - -static void BuildCylinder(int numEdges) -{ - int i, top = 1.0, bottom = -1.0; - float x[100], y[100], angle; - - for (i = 0; i <= numEdges; i++) { - angle = i * 2.0 * PI / numEdges; - x[i] = cos(angle); /* was cosf() */ - y[i] = sin(angle); /* was sinf() */ - } - - glNewList(cylinder, GL_COMPILE); - glBegin(GL_TRIANGLE_STRIP); - for (i = 0; i <= numEdges; i++) { - glNormal3f(x[i], y[i], 0.0); - glVertex3f(x[i], y[i], bottom); - glVertex3f(x[i], y[i], top); - } - glEnd(); - glBegin(GL_TRIANGLE_FAN); - glNormal3f(0.0, 0.0, 1.0); - glVertex3f(0.0, 0.0, top); - for (i = 0; i <= numEdges; i++) { - glVertex3f(x[i], -y[i], top); - } - glEnd(); - glBegin(GL_TRIANGLE_FAN); - glNormal3f(0.0, 0.0, -1.0); - glVertex3f(0.0, 0.0, bottom); - for (i = 0; i <= numEdges; i++) { - glVertex3f(x[i], y[i], bottom); - } - glEnd(); - glEndList(); -} - -static void BuildTorus(float rc, int numc, float rt, int numt) -{ - int i, j, k; - double s, t; - double x, y, z; - double pi, twopi; - - pi = 3.14159265358979323846; - twopi = 2.0 * pi; - - glNewList(torus, GL_COMPILE); - for (i = 0; i < numc; i++) { - glBegin(GL_QUAD_STRIP); - for (j = 0; j <= numt; j++) { - for (k = 0; k <= 1; k++) { - s = (i + k) % numc + 0.5; - t = j % numt; - - x = cos(t*twopi/numt) * cos(s*twopi/numc); - y = sin(t*twopi/numt) * cos(s*twopi/numc); - z = sin(s*twopi/numc); - glNormal3f(x, y, z); - - x = (rt + rc * cos(s*twopi/numc)) * cos(t*twopi/numt); - y = (rt + rc * cos(s*twopi/numc)) * sin(t*twopi/numt); - z = rc * sin(s*twopi/numc); - glVertex3f(x, y, z); - } - } - glEnd(); - } - glEndList(); -} - -static void BuildCage(void) -{ - int i; - float inc; - float right, left, top, bottom, front, back; - - front = 0.0; - back = -8.0; - - left = -4.0; - bottom = -4.0; - right = 4.0; - top = 4.0; - - inc = 2.0 * 4.0 * 0.1; - - glNewList(cage, GL_COMPILE); - for (i = 0; i < 10; i++) { - - /* - ** Back - */ - glBegin(GL_LINES); - glVertex3f(left+i*inc, top, back); - glVertex3f(left+i*inc, bottom, back); - glEnd(); - glBegin(GL_LINES); - glVertex3f(right, bottom+i*inc, back); - glVertex3f(left, bottom+i*inc, back); - glEnd(); - - /* - ** Front - */ - glBegin(GL_LINES); - glVertex3f(left+i*inc, top, front); - glVertex3f(left+i*inc, bottom, front); - glEnd(); - glBegin(GL_LINES); - glVertex3f(right, bottom+i*inc, front); - glVertex3f(left, bottom+i*inc, front); - glEnd(); - - /* - ** Left - */ - glBegin(GL_LINES); - glVertex3f(left, bottom+i*inc, front); - glVertex3f(left, bottom+i*inc, back); - glEnd(); - glBegin(GL_LINES); - glVertex3f(left, top, back+i*inc); - glVertex3f(left, bottom, back+i*inc); - glEnd(); - - /* - ** Right - */ - glBegin(GL_LINES); - glVertex3f(right, top-i*inc, front); - glVertex3f(right, top-i*inc, back); - glEnd(); - glBegin(GL_LINES); - glVertex3f(right, top, back+i*inc); - glVertex3f(right, bottom, back+i*inc); - glEnd(); - - /* - ** Top - */ - glBegin(GL_LINES); - glVertex3f(left+i*inc, top, front); - glVertex3f(left+i*inc, top, back); - glEnd(); - glBegin(GL_LINES); - glVertex3f(right, top, back+i*inc); - glVertex3f(left, top, back+i*inc); - glEnd(); - - /* - ** Bottom - */ - glBegin(GL_LINES); - glVertex3f(right-i*inc, bottom, front); - glVertex3f(right-i*inc, bottom, back); - glEnd(); - glBegin(GL_LINES); - glVertex3f(right, bottom, back+i*inc); - glVertex3f(left, bottom, back+i*inc); - glEnd(); - } - glEndList(); -} - -static void BuildCube(void) -{ - int i, j; - - glNewList(cube, GL_COMPILE); - for (i = 0; i < 6; i++) { - for (j = 0; j < 4; j++) { - glNormal3fv(n[i]); - glBegin(GL_POLYGON); - glVertex3fv(c[i][j][0]); - glVertex3fv(c[i][j][1]); - glVertex3fv(c[i][j][2]); - glVertex3fv(c[i][j][3]); - glEnd(); - } - } - glEndList(); -} - -static void BuildLists(void) -{ - - cube = glGenLists(1); - BuildCube(); - - cage = glGenLists(2); - BuildCage(); - - cylinder = glGenLists(3); - BuildCylinder(60); - - torus = glGenLists(4); - BuildTorus(0.65, 20, .85, 65); - - genericObject = torus; -} - -static void SetDefaultSettings(void) -{ - - magFilter = nnearest; - minFilter = nnearest; - sWrapMode = repeat; - tWrapMode = repeat; - textureEnvironment = modulate; - autoRotate = GL_TRUE; -} - -static unsigned char *AlphaPadImage(int bufSize, unsigned char *inData, int alpha) -{ - unsigned char *outData, *out_ptr, *in_ptr; - int i; - - outData = (unsigned char *) malloc(bufSize * 4); - out_ptr = outData; - in_ptr = inData; - - for (i = 0; i < bufSize; i++) { - *out_ptr++ = *in_ptr++; - *out_ptr++ = *in_ptr++; - *out_ptr++ = *in_ptr++; - *out_ptr++ = alpha; - } - - free (inData); - return outData; -} - -static void Init(void) -{ - float ambient[] = {0.0, 0.0, 0.0, 1.0}; - float diffuse[] = {1.0, 1.0, 1.0, 1.0}; - float specular[] = {1.0, 1.0, 1.0, 1.0}; - float position[] = {0.0, 0.0, 4.0, 0.0}; - float fog_color[] = {0.0, 0.0, 0.0, 1.0}; - float mat_ambient[] = {0.0, 0.0, 0.0, 1.0}; - float mat_shininess[] = {90.0}; - float mat_specular[] = {1.0, 1.0, 1.0, 1.0}; - float mat_diffuse[] = {0.8, 0.8, 0.8, 1.0}; - float lmodel_ambient[] = {0.2, 0.2, 0.2, 1.0}; - float lmodel_twoside[] = {GL_TRUE}; - int w, h; - GLenum format; - GLubyte *image; - - printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); - - SetDefaultSettings(); - - image = LoadRGBImage(imageFileName, &w, &h, &format); - if (!image) { - printf("Error: couldn't load %s\n", imageFileName); - exit(1); - } - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - gluBuild2DMipmaps(GL_TEXTURE_2D, format, w, h, - GL_RGB, GL_UNSIGNED_BYTE, image); - - free(image); - - glFogf(GL_FOG_DENSITY, 0.125); - glFogi(GL_FOG_MODE, GL_LINEAR); - glFogf(GL_FOG_START, 4.0); - glFogf(GL_FOG_END, 8.5); - glFogfv(GL_FOG_COLOR, fog_color); - - glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_SPECULAR, specular); - glLightfv(GL_LIGHT0, GL_POSITION, position); - glEnable(GL_LIGHT0); - - glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess); - glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular); - glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse); - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, mat_ambient); - - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); - glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside); - glShadeModel(GL_SMOOTH); - - - glClearColor(0.0, 0.0, 0.0, 0.0); - glEnable(GL_DEPTH_TEST); - - glFrontFace(GL_CW); - glEnable(GL_CULL_FACE); - glCullFace(GL_BACK); - - glTexGeniv(GL_S, GL_TEXTURE_GEN_MODE, sphereMap); - glTexGeniv(GL_T, GL_TEXTURE_GEN_MODE, sphereMap); - glEnable(GL_TEXTURE_GEN_S); - glEnable(GL_TEXTURE_GEN_T); - - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, magFilter); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, minFilter); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, sWrapMode); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, tWrapMode); - - glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, textureEnvironment); - - BuildLists(); -} - -static void ReInit(void) -{ - if (genericObject == torus) { - glEnable(GL_DEPTH_TEST); - } else { - glDisable(GL_DEPTH_TEST); - } - glEnable(GL_DEPTH_TEST); - -#if 0 - if (isFogged) { - textureEnvironment = modulate; - } -#endif - - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, magFilter); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, minFilter); - glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, textureEnvironment); -} - -static void Draw(void) -{ - glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - - /* draw cage */ - if (isFogged) - glEnable(GL_FOG); - else - glDisable(GL_FOG); - glColor3f(1, 1, 1); - glDisable(GL_LIGHTING); - glDisable(GL_TEXTURE_2D); - glCallList(cage); - - /* draw object */ - if (isLit) - glEnable(GL_LIGHTING); - else - glColor3f(1.0, 0.5, 0.2); - if (doTexture) - glEnable(GL_TEXTURE_2D); - - glPushMatrix(); - glTranslatef(0.0, 0.0, zTranslate); - glRotatef(xRotation, 1, 0, 0); - glRotatef(yRotation, 0, 1, 0); - glCallList(genericObject); - glPopMatrix(); - - glFlush(); - glutSwapBuffers(); -} - -static void Reshape(int width, int height) -{ - W = width; - H = height; - ReInit(); - glViewport( 0, 0, width, height ); /*new*/ - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-0.2, 0.2, -0.2, 0.2, 0.15, 9.0); - glMatrixMode(GL_MODELVIEW); -} - -static void Idle(void) -{ - static double t0 = -1.; - double t, dt; - t = glutGet(GLUT_ELAPSED_TIME) / 1000.; - if (t0 < 0.) - t0 = t; - dt = t - t0; - t0 = t; - - xRotation += .75*60.*dt; - yRotation += .375*60.*dt; - glutPostRedisplay(); -} - -static void Key2(int key, int x, int y) -{ - - switch (key) { - case GLUT_KEY_LEFT: - yRotation -= 0.5; - autoRotate = GL_FALSE; - ReInit(); - break; - case GLUT_KEY_RIGHT: - yRotation += 0.5; - autoRotate = GL_FALSE; - ReInit(); - break; - case GLUT_KEY_UP: - xRotation -= 0.5; - autoRotate = GL_FALSE; - ReInit(); - break; - case GLUT_KEY_DOWN: - xRotation += 0.5; - autoRotate = GL_FALSE; - ReInit(); - break; - default: - return; - } - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - /* free(image->data);*/ - exit(1); - - case 'a': - autoRotate = !autoRotate; - if (autoRotate) - glutIdleFunc(Idle); - else - glutIdleFunc(NULL); - - ReInit(); - break; - case 'o': - if (genericObject == cube) { - genericObject = cylinder; - } - else if (genericObject == cylinder) { - genericObject = torus; - } - else { - genericObject = cube; - } - ReInit(); - break; - case 'd': - textureEnvironment = decal; - ReInit(); - break; - case 'm': - textureEnvironment = modulate; - ReInit(); - break; - case 'l': - isLit = !isLit; - ReInit(); - break; - case 'f': - isFogged = !isFogged; - ReInit(); - break; - case 't': - doTexture = !doTexture; - ReInit(); - break; - case '0': - magFilter = nnearest; - ReInit(); - break; - case '1': - magFilter = linear; - ReInit(); - break; - case '2': - minFilter = nnearest; - ReInit(); - break; - case '3': - minFilter = linear; - ReInit(); - break; - case '4': - minFilter = nearest_mipmap_nearest; - ReInit(); - break; - case '5': - minFilter = nearest_mipmap_linear; - ReInit(); - break; - case '6': - minFilter = linear_mipmap_nearest; - ReInit(); - break; - case '7': - minFilter = linear_mipmap_linear; - ReInit(); - break; - default: - return; - } - glutPostRedisplay(); -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - doubleBuffer = GL_TRUE; - - 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 if (strcmp(argv[i], "-f") == 0) { - if (i+1 >= argc || argv[i+1][0] == '-') { - printf("-f (No file name).\n"); - return GL_FALSE; - } else { - imageFileName = argv[++i]; - } - } else { - printf("%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); - } - - if (imageFileName == 0) { - printf("No image file.\n"); - exit(1); - } - - glutInitWindowPosition(0, 0); glutInitWindowSize( W, H); - - type = GLUT_RGB | GLUT_DEPTH; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Texture Test") == GL_FALSE) { - exit(1); - } - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutIdleFunc(Idle); - - glutMainLoop(); - return 0; -} diff --git a/progs/samples/star.c b/progs/samples/star.c deleted file mode 100644 index 2c44ebfd49e..00000000000 --- a/progs/samples/star.c +++ /dev/null @@ -1,345 +0,0 @@ -/* - * 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> - - -#ifndef PI -#define PI 3.141592657 -#endif - -enum { - NORMAL = 0, - WEIRD = 1 -}; - -enum { - STREAK = 0, - CIRCLE = 1 -}; - -#define MAXSTARS 400 -#define MAXPOS 10000 -#define MAXWARP 500 -#define MAXANGLES 6000 - - -typedef struct _starRec { - GLint type; - float x[2], y[2], z[2]; - float offsetX, offsetY, offsetR, rotation; -} starRec; - - -GLenum doubleBuffer; -GLint windW, windH; - -GLenum flag = NORMAL; -GLint starCount = MAXSTARS / 2; -float speed = 1.0; -GLint nitro = 0; -starRec stars[MAXSTARS]; -float sinTable[MAXANGLES]; - - -static float Sin(float angle) -{ - - return (sinTable[(GLint)angle]); -} - -static float Cos(float angle) -{ - - return (sinTable[((GLint)angle+(MAXANGLES/4))%MAXANGLES]); -} - -static void NewStar(GLint n, GLint d) -{ - - if (rand()%4 == 0) { - stars[n].type = CIRCLE; - } else { - stars[n].type = STREAK; - } - stars[n].x[0] = (float)(rand() % MAXPOS - MAXPOS / 2); - stars[n].y[0] = (float)(rand() % MAXPOS - MAXPOS / 2); - stars[n].z[0] = (float)(rand() % MAXPOS + d); - if (rand()%4 == 0 && flag == WEIRD) { - stars[n].offsetX = (float)(rand() % 100 - 100 / 2); - stars[n].offsetY = (float)(rand() % 100 - 100 / 2); - stars[n].offsetR = (float)(rand() % 25 - 25 / 2); - } else { - stars[n].offsetX = 0.0; - stars[n].offsetY = 0.0; - stars[n].offsetR = 0.0; - } -} - -static void RotatePoint(float *x, float *y, float rotation) -{ - float tmpX, tmpY; - - tmpX = *x * Cos(rotation) - *y * Sin(rotation); - tmpY = *y * Cos(rotation) + *x * Sin(rotation); - *x = tmpX; - *y = tmpY; -} - -static void MoveStars(void) -{ - float offset; - GLint n; - static double t0 = -1.; - double t, dt; - t = glutGet(GLUT_ELAPSED_TIME) / 1000.; - if (t0 < 0.) - t0 = t; - dt = 85.*(t - t0); - t0 = t; - - offset = speed * 60.0; - - for (n = 0; n < starCount; n++) { - stars[n].x[1] = stars[n].x[0]; - stars[n].y[1] = stars[n].y[0]; - stars[n].z[1] = stars[n].z[0]; - stars[n].x[0] += stars[n].offsetX*dt; - stars[n].y[0] += stars[n].offsetY*dt; - stars[n].z[0] -= offset*dt; - stars[n].rotation += stars[n].offsetR*dt; - if (stars[n].rotation > MAXANGLES) { - stars[n].rotation = 0.0; - } - else if (stars[n].rotation < 0.0) { - stars[n].rotation += 360.0; - } - } -} - -static GLenum StarPoint(GLint n) -{ - float x0, y0, x1, y1, width; - GLint i; - - x0 = stars[n].x[0] * windW / stars[n].z[0]; - y0 = stars[n].y[0] * windH / stars[n].z[0]; - RotatePoint(&x0, &y0, stars[n].rotation); - x0 += windW / 2.0; - y0 += windH / 2.0; - - if (x0 >= 0.0 && x0 < windW && y0 >= 0.0 && y0 < windH) { - if (stars[n].type == STREAK) { - x1 = stars[n].x[1] * windW / stars[n].z[1]; - y1 = stars[n].y[1] * windH / stars[n].z[1]; - RotatePoint(&x1, &y1, stars[n].rotation); - x1 += windW / 2.0; - y1 += windH / 2.0; - - glLineWidth(MAXPOS/100.0/stars[n].z[0]+1.0); - glColor3f(1.0, (MAXWARP-speed)/MAXWARP, (MAXWARP-speed)/MAXWARP); - if (fabs(x0-x1) < 1.0 && fabs(y0-y1) < 1.0) { - glBegin(GL_POINTS); - glVertex2f(x0, y0); - glEnd(); - } else { - glBegin(GL_LINES); - glVertex2f(x0, y0); - glVertex2f(x1, y1); - glEnd(); - } - } else { - width = MAXPOS / 10.0 / stars[n].z[0] + 1.0; - glColor3f(1.0, 0.0, 0.0); - glBegin(GL_POLYGON); - for (i = 0; i < 8; i++) { - float x = x0 + width * Cos((float)i*MAXANGLES/8.0); - float y = y0 + width * Sin((float)i*MAXANGLES/8.0); - glVertex2f(x, y); - }; - glEnd(); - } - return GL_TRUE; - } else { - return GL_FALSE; - } -} - -static void ShowStars(void) -{ - GLint n; - - glClear(GL_COLOR_BUFFER_BIT); - - for (n = 0; n < starCount; n++) { - if (stars[n].z[0] > speed || (stars[n].z[0] > 0.0 && speed < MAXWARP)) { - if (StarPoint(n) == GL_FALSE) { - NewStar(n, MAXPOS); - } - } else { - NewStar(n, MAXPOS); - } - } -} - -static void Init(void) -{ - float angle; - GLint n; - - srand((unsigned int) glutGet(GLUT_ELAPSED_TIME) ); - - for (n = 0; n < MAXSTARS; n++) { - NewStar(n, 100); - } - - angle = 0.0; - for (n = 0; n < MAXANGLES ; n++) { - sinTable[n] = sin(angle); - angle += PI / (MAXANGLES / 2.0); - } - - glClearColor(0.0, 0.0, 0.0, 0.0); - - glDisable(GL_DITHER); -} - -static void Reshape(int width, int height) -{ - - windW = (GLint)width; - windH = (GLint)height; - - glViewport(0, 0, windW, windH); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-0.5, windW+0.5, -0.5, windH+0.5); - glMatrixMode(GL_MODELVIEW); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case 32: - flag = (flag == NORMAL) ? WEIRD : NORMAL; - break; - case 't': - nitro = 1; - break; - default: - return; - } -} - -static void Draw(void) -{ - - MoveStars(); - ShowStars(); - if (nitro > 0) { - speed = (float)(nitro / 10) + 1.0; - if (speed > MAXWARP) { - speed = MAXWARP; - } - if (++nitro > MAXWARP*10) { - nitro = -nitro; - } - } else if (nitro < 0) { - nitro++; - speed = (float)(-nitro / 10) + 1.0; - if (speed > MAXWARP) { - speed = MAXWARP; - } - } - - glFlush(); - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - doubleBuffer = GL_TRUE; - - 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; - } - } - return GL_TRUE; -} - -#if !defined(GLUTCALLBACK) -#define GLUTCALLBACK -#endif - -static void GLUTCALLBACK glut_post_redisplay_p(void) -{ - glutPostRedisplay(); -} - -int main(int argc, char **argv) -{ - GLenum type; - - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - windW = 300; - windH = 300; - glutInitWindowPosition(0, 0); glutInitWindowSize( 300, 300); - - type = GLUT_RGB; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Stars") == GL_FALSE) { - exit(1); - } - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutIdleFunc(glut_post_redisplay_p); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/stencil.c b/progs/samples/stencil.c deleted file mode 100644 index e00bbb61b0d..00000000000 --- a/progs/samples/stencil.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * 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 <stdlib.h> -#include <string.h> -#include <math.h> -#include <GL/glut.h> - - -static void Init(void) -{ - glShadeModel(GL_FLAT); - glClearColor(0.0, 0.0, 0.0, 0.0); - - glClearStencil(0); - glStencilMask(1); - glEnable(GL_STENCIL_TEST); -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(-5.0, 5.0, -5.0, 5.0, -5.0, 5.0); - glMatrixMode(GL_MODELVIEW); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - } -} - -static void Draw(void) -{ - - glClear(GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT); - - glStencilFunc(GL_ALWAYS, 1, 1); - glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); - - glColor3ub(200, 0, 0); - glBegin(GL_POLYGON); - glVertex3i(-4, -4, 0); - glVertex3i( 4, -4, 0); - glVertex3i( 0, 4, 0); - glEnd(); - - glStencilFunc(GL_EQUAL, 1, 1); - glStencilOp(GL_INCR, GL_KEEP, GL_DECR); - - glColor3ub(0, 200, 0); - glBegin(GL_POLYGON); - glVertex3i(3, 3, 0); - glVertex3i(-3, 3, 0); - glVertex3i(-3, -3, 0); - glVertex3i(3, -3, 0); - glEnd(); - - glStencilFunc(GL_EQUAL, 1, 1); - glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); - - glColor3ub(0, 0, 200); - glBegin(GL_POLYGON); - glVertex3i(3, 3, 0); - glVertex3i(-3, 3, 0); - glVertex3i(-3, -3, 0); - glVertex3i(3, -3, 0); - glEnd(); - - glFlush(); -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-dr") == 0) { - } else { - printf("%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( 300, 300); - - type = GLUT_RGB | GLUT_SINGLE | GLUT_STENCIL; - glutInitDisplayMode(type); - - if (glutCreateWindow("Stencil Test") == GL_FALSE) { - exit(1); - } - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/stretch.c b/progs/samples/stretch.c deleted file mode 100644 index 11201dca230..00000000000 --- a/progs/samples/stretch.c +++ /dev/null @@ -1,390 +0,0 @@ -/* - * 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 <stdlib.h> -#include <string.h> -#include <math.h> -#include <GL/glut.h> - - -#define STEPCOUNT 40 -#define FALSE 0 -#define TRUE 1 -#define MAX(a, b) (((a) > (b)) ? (a) : (b)) -#define MIN(a, b) (((a) < (b)) ? (a) : (b)) - - -enum { - OP_NOOP = 0, - OP_STRETCH, - OP_DRAWPOINT, - OP_DRAWIMAGE -}; - - -typedef struct _cRec { - float x, y; -} cRec; - -typedef struct _vertexRec { - float x, y; - float dX, dY; - float tX, tY; -} vertexRec; - - -#include "loadppm.c" - -GLenum doubleBuffer; -int imageSizeX, imageSizeY; -char *fileName = 0; -PPMImage *image; -cRec cList[50]; -vertexRec vList[5]; -int cCount, cIndex[2], cStep; -GLenum op = OP_NOOP; - - -static void DrawImage(void) -{ - - glRasterPos2i(0, 0); - glDrawPixels(image->sizeX, image->sizeY, GL_RGB, GL_UNSIGNED_BYTE, - image->data); - - glFlush(); - if (doubleBuffer) { - glutSwapBuffers(); - } - - glRasterPos2i(0, 0); - glDrawPixels(image->sizeX, image->sizeY, GL_RGB, GL_UNSIGNED_BYTE, - image->data); -} - -static void DrawPoint(void) -{ - int i; - - glColor3f(1.0, 0.0, 1.0); - glPointSize(3.0); - glBegin(GL_POINTS); - for (i = 0; i < cCount; i++) { - glVertex2f(cList[i].x, cList[i].y); - } - glEnd(); - - glFlush(); - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static void InitVList(void) -{ - - vList[0].x = 0.0; - vList[0].y = 0.0; - vList[0].dX = 0.0; - vList[0].dY = 0.0; - vList[0].tX = 0.0; - vList[0].tY = 0.0; - - vList[1].x = (float)imageSizeX; - vList[1].y = 0.0; - vList[1].dX = 0.0; - vList[1].dY = 0.0; - vList[1].tX = 1.0; - vList[1].tY = 0.0; - - vList[2].x = (float)imageSizeX; - vList[2].y = (float)imageSizeY; - vList[2].dX = 0.0; - vList[2].dY = 0.0; - vList[2].tX = 1.0; - vList[2].tY = 1.0; - - vList[3].x = 0.0; - vList[3].y = (float)imageSizeY; - vList[3].dX = 0.0; - vList[3].dY = 0.0; - vList[3].tX = 0.0; - vList[3].tY = 1.0; - - vList[4].x = cList[0].x; - vList[4].y = cList[0].y; - vList[4].dX = (cList[1].x - cList[0].x) / STEPCOUNT; - vList[4].dY = (cList[1].y - cList[0].y) / STEPCOUNT; - vList[4].tX = cList[0].x / (float)imageSizeX; - vList[4].tY = cList[0].y / (float)imageSizeY; -} - -static void ScaleImage(int sizeX, int sizeY) -{ - GLubyte *buf; - - buf = (GLubyte *)malloc(3*sizeX*sizeY); - gluScaleImage(GL_RGB, image->sizeX, image->sizeY, GL_UNSIGNED_BYTE, - image->data, sizeX, sizeY, GL_UNSIGNED_BYTE, buf); - free(image->data); - image->data = buf; - image->sizeX = sizeX; - image->sizeY = sizeY; -} - -static void SetPoint(int x, int y) -{ - - cList[cCount].x = (float)x; - cList[cCount].y = (float)y; - cCount++; -} - -static void Stretch(void) -{ - - glBegin(GL_TRIANGLES); - glTexCoord2f(vList[0].tX, vList[0].tY); - glVertex2f(vList[0].x, vList[0].y); - glTexCoord2f(vList[1].tX, vList[1].tY); - glVertex2f(vList[1].x, vList[1].y); - glTexCoord2f(vList[4].tX, vList[4].tY); - glVertex2f(vList[4].x, vList[4].y); - glEnd(); - - glBegin(GL_TRIANGLES); - glTexCoord2f(vList[1].tX, vList[1].tY); - glVertex2f(vList[1].x, vList[1].y); - glTexCoord2f(vList[2].tX, vList[2].tY); - glVertex2f(vList[2].x, vList[2].y); - glTexCoord2f(vList[4].tX, vList[4].tY); - glVertex2f(vList[4].x, vList[4].y); - glEnd(); - - glBegin(GL_TRIANGLES); - glTexCoord2f(vList[2].tX, vList[2].tY); - glVertex2f(vList[2].x, vList[2].y); - glTexCoord2f(vList[3].tX, vList[3].tY); - glVertex2f(vList[3].x, vList[3].y); - glTexCoord2f(vList[4].tX, vList[4].tY); - glVertex2f(vList[4].x, vList[4].y); - glEnd(); - - glBegin(GL_TRIANGLES); - glTexCoord2f(vList[3].tX, vList[3].tY); - glVertex2f(vList[3].x, vList[3].y); - glTexCoord2f(vList[0].tX, vList[0].tY); - glVertex2f(vList[0].x, vList[0].y); - glTexCoord2f(vList[4].tX, vList[4].tY); - glVertex2f(vList[4].x, vList[4].y); - glEnd(); - - glFlush(); - if (doubleBuffer) { - glutSwapBuffers(); - } - - if (++cStep < STEPCOUNT) { - vList[4].x += vList[4].dX; - vList[4].y += vList[4].dY; - } else { - cIndex[0] = cIndex[1]; - cIndex[1] = cIndex[1] + 1; - if (cIndex[1] == cCount) { - cIndex[1] = 0; - } - vList[4].dX = (cList[cIndex[1]].x - cList[cIndex[0]].x) / STEPCOUNT; - vList[4].dY = (cList[cIndex[1]].y - cList[cIndex[0]].y) / STEPCOUNT; - cStep = 0; - } -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - free(image->data); - exit(1); - case 32: - if (cCount > 1) { - InitVList(); - cIndex[0] = 0; - cIndex[1] = 1; - cStep = 0; - glEnable(GL_TEXTURE_2D); - op = OP_STRETCH; - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Mouse(int button, int state, int mouseX, int mouseY) -{ - - if (state != GLUT_DOWN) - return; - - if (op == OP_STRETCH) { - glDisable(GL_TEXTURE_2D); - cCount = 0; - op = OP_DRAWIMAGE; - } else { - SetPoint(mouseX, imageSizeY-mouseY); - op = OP_DRAWPOINT; - } - - glutPostRedisplay(); -} - -static void Animate(void) -{ - static double t0 = -1.; - double t, dt; - t = glutGet(GLUT_ELAPSED_TIME) / 1000.; - if (t0 < 0.) - t0 = t; - dt = t - t0; - - if (dt < 1./60.) - return; - - t0 = t; - - switch (op) { - case OP_STRETCH: - Stretch(); - break; - case OP_DRAWPOINT: - DrawPoint(); - break; - case OP_DRAWIMAGE: - DrawImage(); - break; - default: - break; - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - doubleBuffer = GL_TRUE; - - 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 if (strcmp(argv[i], "-f") == 0) { - if (i+1 >= argc || argv[i+1][0] == '-') { - printf("-f (No file name).\n"); - return GL_FALSE; - } else { - fileName = argv[++i]; - } - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -#if !defined(GLUTCALLBACK) -#define GLUTCALLBACK -#endif - -static void GLUTCALLBACK glut_post_redisplay_p(void) -{ - glutPostRedisplay(); -} - -int main(int argc, char **argv) -{ - GLenum type; - - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - if (fileName == 0) { - printf("No image file.\n"); - exit(1); - } - - image = LoadPPM(fileName); - - /* changed powf and logf to pow and log -Brian */ - imageSizeX = (int)pow(2.0, (float)((int)(log(image->sizeX)/log(2.0)))); - imageSizeY = (int)pow(2.0, (float)((int)(log(image->sizeY)/log(2.0)))); - - glutInitWindowPosition(0, 0); glutInitWindowSize( imageSizeX, imageSizeY); - - type = GLUT_RGB; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Stretch") == GL_FALSE) { - exit(1); - } - - glViewport(0, 0, imageSizeX, imageSizeY); - gluOrtho2D(0, imageSizeX, 0, imageSizeY); - glClearColor(0.0, 0.0, 0.0, 0.0); - - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - glPixelStorei(GL_PACK_ALIGNMENT, 1); - - ScaleImage(imageSizeX, imageSizeY); - - glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexImage2D(GL_TEXTURE_2D, 0, 3, image->sizeX, image->sizeY, 0, - GL_RGB, GL_UNSIGNED_BYTE, (unsigned char *)image->data); - - cCount = 0; - cIndex[0] = 0; - cIndex[1] = 0; - cStep = 0; - op = OP_DRAWIMAGE; - - glutKeyboardFunc(Key); - glutMouseFunc(Mouse); - glutDisplayFunc(Animate); - glutIdleFunc(glut_post_redisplay_p); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/texture.c b/progs/samples/texture.c deleted file mode 100644 index 7ee41eef28b..00000000000 --- a/progs/samples/texture.c +++ /dev/null @@ -1,474 +0,0 @@ -/* - * 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 <math.h> -#include <stdlib.h> -#include <GL/glut.h> - - -#include "loadppm.c" - -GLenum doubleBuffer; - -char *texFileName = 0; -PPMImage *image; - -float *minFilter, *magFilter, *sWrapMode, *tWrapMode; -float decal[] = {GL_DECAL}; -float modulate[] = {GL_MODULATE}; -float repeat[] = {GL_REPEAT}; -float clamp[] = {GL_CLAMP}; -float nr[] = {GL_NEAREST}; -float ln[] = {GL_LINEAR}; -float nr_mipmap_nr[] = {GL_NEAREST_MIPMAP_NEAREST}; -float nr_mipmap_ln[] = {GL_NEAREST_MIPMAP_LINEAR}; -float ln_mipmap_nr[] = {GL_LINEAR_MIPMAP_NEAREST}; -float ln_mipmap_ln[] = {GL_LINEAR_MIPMAP_LINEAR}; -GLint sphereMap[] = {GL_SPHERE_MAP}; - -GLenum doSphere = GL_FALSE; -float xRotation = 0.0, yRotation = 0.0, zTranslate = -3.125; - -GLint cube; -float c[6][4][3] = { - { - { - 1.0, 1.0, -1.0 - }, - { - -1.0, 1.0, -1.0 - }, - { - -1.0, -1.0, -1.0 - }, - { - 1.0, -1.0, -1.0 - } - }, - { - { - 1.0, 1.0, 1.0 - }, - { - 1.0, 1.0, -1.0 - }, - { - 1.0, -1.0, -1.0 - }, - { - 1.0, -1.0, 1.0 - } - }, - { - { - -1.0, 1.0, 1.0 - }, - { - 1.0, 1.0, 1.0 - }, - { - 1.0, -1.0, 1.0 - }, - { - -1.0, -1.0, 1.0 - } - }, - { - { - -1.0, 1.0, -1.0 - }, - { - -1.0, 1.0, 1.0 - }, - { - -1.0, -1.0, 1.0 - }, - { - -1.0, -1.0, -1.0 - } - }, - { - { - -1.0, 1.0, 1.0 - }, - { - -1.0, 1.0, -1.0 - }, - { - 1.0, 1.0, -1.0 - }, - { - 1.0, 1.0, 1.0 - } - }, - { - { - -1.0, -1.0, -1.0 - }, - { - -1.0, -1.0, 1.0 - }, - { - 1.0, -1.0, 1.0 - }, - { - 1.0, -1.0, -1.0 - } - } -}; -static float n[6][3] = { - { - 0.0, 0.0, -1.0 - }, - { - 1.0, 0.0, 0.0 - }, - { - 0.0, 0.0, 1.0 - }, - { - -1.0, 0.0, 0.0 - }, - { - 0.0, 1.0, 0.0 - }, - { - 0.0, -1.0, 0.0 - } -}; -static float t[6][4][2] = { - { - { - 1.1, 1.1 - }, - { - -0.1, 1.1 - }, - { - -0.1, -0.1 - }, - { - 1.1, -0.1 - } - }, - { - { - 1.1, 1.1 - }, - { - -0.1, 1.1 - }, - { - -0.1, -0.1 - }, - { - 1.1, -0.1 - } - }, - { - { - -0.1, 1.1 - }, - { - 1.1, 1.1 - }, - { - 1.1, -0.1 - }, - { - -0.1, -0.1 - } - }, - { - { - 1.1, 1.1 - }, - { - -0.1, 1.1 - }, - { - -0.1, -0.1 - }, - { - 1.1, -0.1 - } - }, - { - { - 1.1, 1.1 - }, - { - -0.1, 1.1 - }, - { - -0.1, -0.1 - }, - { - 1.1, -0.1 - } - }, - { - { - 1.1, 1.1 - }, - { - -0.1, 1.1 - }, - { - -0.1, -0.1 - }, - { - 1.1, -0.1 - } - }, -}; - -static void BuildCube(void) -{ - GLint i; - - glNewList(cube, GL_COMPILE); - for (i = 0; i < 6; i++) { - glBegin(GL_POLYGON); - glNormal3fv(n[i]); glTexCoord2fv(t[i][0]); glVertex3fv(c[i][0]); - glNormal3fv(n[i]); glTexCoord2fv(t[i][1]); glVertex3fv(c[i][1]); - glNormal3fv(n[i]); glTexCoord2fv(t[i][2]); glVertex3fv(c[i][2]); - glNormal3fv(n[i]); glTexCoord2fv(t[i][3]); glVertex3fv(c[i][3]); - glEnd(); - } - glEndList(); -} - -static void BuildLists(void) -{ - - cube = glGenLists(1); - BuildCube(); -} - -static void Init(void) -{ - - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - gluBuild2DMipmaps(GL_TEXTURE_2D, 3, image->sizeX, image->sizeY, - GL_RGB, GL_UNSIGNED_BYTE, image->data); - glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, decal); - glEnable(GL_TEXTURE_2D); - - glFrontFace(GL_CCW); - glCullFace(GL_FRONT); - glEnable(GL_CULL_FACE); - - BuildLists(); - - glClearColor(0.0, 0.0, 0.0, 0.0); - - magFilter = nr; - minFilter = nr; - sWrapMode = repeat; - tWrapMode = repeat; -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(145.0, 1.0, 0.01, 1000); - glMatrixMode(GL_MODELVIEW); -} - -static void Key2(int key, int x, int y) -{ - - switch (key) { - case GLUT_KEY_LEFT: - yRotation -= 0.5; - break; - case GLUT_KEY_RIGHT: - yRotation += 0.5; - break; - case GLUT_KEY_UP: - xRotation -= 0.5; - break; - case GLUT_KEY_DOWN: - xRotation += 0.5; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - - case 'T': - zTranslate += 0.25; - break; - case 't': - zTranslate -= 0.25; - break; - - case 's': - doSphere = !doSphere; - if (doSphere) { - glTexGeniv(GL_S, GL_TEXTURE_GEN_MODE, sphereMap); - glTexGeniv(GL_T, GL_TEXTURE_GEN_MODE, sphereMap); - glEnable(GL_TEXTURE_GEN_S); - glEnable(GL_TEXTURE_GEN_T); - } else { - glDisable(GL_TEXTURE_GEN_S); - glDisable(GL_TEXTURE_GEN_T); - } - break; - - case '0': - magFilter = nr; - break; - case '1': - magFilter = ln; - break; - case '2': - minFilter = nr; - break; - case '3': - minFilter = ln; - break; - case '4': - minFilter = nr_mipmap_nr; - break; - case '5': - minFilter = nr_mipmap_ln; - break; - case '6': - minFilter = ln_mipmap_nr; - break; - case '7': - minFilter = ln_mipmap_ln; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Draw(void) -{ - - glClear(GL_COLOR_BUFFER_BIT); - - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, sWrapMode); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, tWrapMode); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, magFilter); - glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, minFilter); - - glPushMatrix(); - - glTranslatef(0.0, 0.0, zTranslate); - glRotatef(xRotation, 1, 0, 0); - glRotatef(yRotation, 0, 1, 0); - glCallList(cube); - - glPopMatrix(); - - 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 if (strcmp(argv[i], "-f") == 0) { - if (i+1 >= argc || argv[i+1][0] == '-') { - printf("-f (No file name).\n"); - return GL_FALSE; - } else { - texFileName = argv[++i]; - } - } else { - printf("%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); - } - - if (texFileName == 0) { - printf("No image file.\n"); - exit(1); - } - - image = LoadPPM(texFileName); - - glutInitWindowPosition(0, 0); glutInitWindowSize( 300, 300); - - type = GLUT_RGB; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Texture Test") == GL_FALSE) { - exit(1); - } - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/tkmap.c b/progs/samples/tkmap.c deleted file mode 100644 index 3ded79cacaa..00000000000 --- a/progs/samples/tkmap.c +++ /dev/null @@ -1,71 +0,0 @@ - -enum { - COLOR_BLACK = 0, - COLOR_RED, - COLOR_GREEN, - COLOR_YELLOW, - COLOR_BLUE, - COLOR_MAGENTA, - COLOR_CYAN, - COLOR_WHITE -}; - -static float RGBMap[9][3] = { - {0, 0, 0}, - {1, 0, 0}, - {0, 1, 0}, - {1, 1, 0}, - {0, 0, 1}, - {1, 0, 1}, - {0, 1, 1}, - {1, 1, 1}, - {0.5, 0.5, 0.5} -}; - -static void SetColor(int c) -{ - if (glutGet(GLUT_WINDOW_RGBA)) - glColor3fv(RGBMap[c]); - else - glIndexf(c); -} - -static void InitMap(void) -{ - int i; - - if (rgb) - return; - - for (i = 0; i < 9; i++) - glutSetColor(i, RGBMap[i][0], RGBMap[i][1], RGBMap[i][2]); -} - -static void SetFogRamp(int density, int startIndex) -{ - int fogValues, colorValues; - int i, j, k; - float intensity; - - fogValues = 1 << density; - colorValues = 1 << startIndex; - for (i = 0; i < colorValues; i++) { - for (j = 0; j < fogValues; j++) { - k = i * fogValues + j; - intensity = (i * fogValues + j * colorValues) / 255.0; - glutSetColor(k, intensity, intensity, intensity); - } - } -} - -static void SetGreyRamp(void) -{ - int i; - float intensity; - - for (i = 0; i < 255; i++) { - intensity = i / 255.0; - glutSetColor(i, intensity, intensity, intensity); - } -} - diff --git a/progs/samples/tri.c b/progs/samples/tri.c deleted file mode 100644 index 700325132ef..00000000000 --- a/progs/samples/tri.c +++ /dev/null @@ -1,403 +0,0 @@ -/* - * 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 SOLID 1 -#define LINE 2 -#define POINT 3 - - -GLenum rgb, doubleBuffer, windType; -GLint windW, windH; - -GLenum dithering = GL_TRUE; -GLenum showVerticies = GL_TRUE; -GLenum hideBottomTriangle = GL_FALSE; -GLenum outline = GL_TRUE; -GLenum culling = GL_FALSE; -GLenum winding = GL_FALSE; -GLenum face = GL_FALSE; -GLenum state = SOLID; -GLenum aaMode = GL_FALSE; -GLenum shade = GL_TRUE; - -GLint color1, color2, color3; - -float zRotation = 90.0; -float zoom = 1.0; - -float boxA[3] = {-100, -100, 0}; -float boxB[3] = { 100, -100, 0}; -float boxC[3] = { 100, 100, 0}; -float boxD[3] = {-100, 100, 0}; - -float p0[3] = {-125,-80, 0}; -float p1[3] = {-125, 80, 0}; -float p2[3] = { 172, 0, 0}; - - -#include "tkmap.c" - -static void Init(void) -{ - float r, g, b; - float percent1, percent2; - GLint i, j; - - glClearColor(0.0, 0.0, 0.0, 0.0); - - glLineStipple(1, 0xF0F0); - - glEnable(GL_SCISSOR_TEST); - - if (!rgb) { - for (j = 0; j <= 12; j++) { - if (j <= 6) { - percent1 = j / 6.0; - r = 1.0 - 0.8 * percent1; - g = 0.2 + 0.8 * percent1; - b = 0.2; - } else { - percent1 = (j - 6) / 6.0; - r = 0.2; - g = 1.0 - 0.8 * percent1; - b = 0.2 + 0.8 * percent1; - } - glutSetColor(j+18, r, g, b); - for (i = 0; i < 16; i++) { - percent2 = i / 15.0; - glutSetColor(j*16+1+32, r*percent2, g*percent2, b*percent2); - } - } - color1 = 18; - color2 = 24; - color3 = 30; - } -} - -static void Reshape(int width, int height) -{ - - windW = (GLint)width; - windH = (GLint)height; -} - -static void Key2(int key, int x, int y) -{ - - switch (key) { - case GLUT_KEY_LEFT: - zRotation += 0.5; - break; - case GLUT_KEY_RIGHT: - zRotation -= 0.5; - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case 'Z': - zoom *= 0.75; - break; - case 'z': - zoom /= 0.75; - if (zoom > 10) { - zoom = 10; - } - break; - case '1': - glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); - break; - case '2': - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - break; - case '3': - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - break; - case '4': - state = POINT; - break; - case '5': - state = LINE; - break; - case '6': - state = SOLID; - break; - case '7': - culling = !culling; - break; - case '8': - winding = !winding; - break; - case '9': - face = !face; - break; - case 'v': - showVerticies = !showVerticies; - break; - case 's': - shade = !shade; - (shade) ? glShadeModel(GL_SMOOTH) : glShadeModel(GL_FLAT); - break; - case 'h': - hideBottomTriangle = !hideBottomTriangle; - break; - case 'o': - outline = !outline; - break; - case 'm': - dithering = !dithering; - break; - case '0': - aaMode = !aaMode; - if (aaMode) { - glEnable(GL_POLYGON_SMOOTH); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE); - if (!rgb) { - color1 = 32; - color2 = 128; - color3 = 224; - } - } else { - glDisable(GL_POLYGON_SMOOTH); - glDisable(GL_BLEND); - if (!rgb) { - color1 = 18; - color2 = 24; - color3 = 30; - } - } - break; - default: - return; - } - - glutPostRedisplay(); -} - -static void BeginPrim(void) -{ - - switch (state) { - case SOLID: - glBegin(GL_POLYGON); - break; - case LINE: - glBegin(GL_LINE_LOOP); - break; - case POINT: - glBegin(GL_POINTS); - break; - default: - break; - } -} - -static void EndPrim(void) -{ - - glEnd(); -} - -static void Draw(void) -{ - float scaleX, scaleY; - - glViewport(0, 0, windW, windH); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-175, 175, -175, 175); - glMatrixMode(GL_MODELVIEW); - - glScissor(0, 0, windW, windH); - - (culling) ? glEnable(GL_CULL_FACE) : glDisable(GL_CULL_FACE); - (winding) ? glFrontFace(GL_CCW) : glFrontFace(GL_CW); - (face) ? glCullFace(GL_FRONT) : glCullFace(GL_BACK); - - (dithering) ? glEnable(GL_DITHER) : glDisable(GL_DITHER); - - glClear(GL_COLOR_BUFFER_BIT); - - SetColor(COLOR_GREEN); - glBegin(GL_LINE_LOOP); - glVertex3fv(boxA); - glVertex3fv(boxB); - glVertex3fv(boxC); - glVertex3fv(boxD); - glEnd(); - - if (!hideBottomTriangle) { - glPushMatrix(); - - glScalef(zoom, zoom, zoom); - glRotatef(zRotation, 0, 0, 1); - - SetColor(COLOR_BLUE); - BeginPrim(); - glVertex3fv(p0); - glVertex3fv(p1); - glVertex3fv(p2); - EndPrim(); - - if (showVerticies) { - (rgb) ? glColor3fv(RGBMap[COLOR_RED]) : glIndexf(color1); - glRectf(p0[0]-2, p0[1]-2, p0[0]+2, p0[1]+2); - (rgb) ? glColor3fv(RGBMap[COLOR_GREEN]) : glIndexf(color2); - glRectf(p1[0]-2, p1[1]-2, p1[0]+2, p1[1]+2); - (rgb) ? glColor3fv(RGBMap[COLOR_BLUE]) : glIndexf(color3); - glRectf(p2[0]-2, p2[1]-2, p2[0]+2, p2[1]+2); - } - - glPopMatrix(); - } - - scaleX = (float)(windW - 20) / 2 / 175 * (175 - 100) + 10; - scaleY = (float)(windH - 20) / 2 / 175 * (175 - 100) + 10; - - glViewport(scaleX, scaleY, windW-2*scaleX, windH-2*scaleY); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(-100, 100, -100, 100); - glMatrixMode(GL_MODELVIEW); - - glScissor(scaleX, scaleY, windW-2*scaleX, windH-2*scaleY); - - glPushMatrix(); - - glScalef(zoom, zoom, zoom); - glRotatef(zRotation, 0,0,1); - - glPointSize(10); - glLineWidth(5); - glEnable(GL_POINT_SMOOTH); - glEnable(GL_LINE_STIPPLE); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - SetColor(COLOR_RED); - BeginPrim(); - (rgb) ? glColor3fv(RGBMap[COLOR_RED]) : glIndexf(color1); - glVertex3fv(p0); - (rgb) ? glColor3fv(RGBMap[COLOR_GREEN]) : glIndexf(color2); - glVertex3fv(p1); - (rgb) ? glColor3fv(RGBMap[COLOR_BLUE]) : glIndexf(color3); - glVertex3fv(p2); - EndPrim(); - - glPointSize(1); - glLineWidth(1); - glDisable(GL_POINT_SMOOTH); - glDisable(GL_LINE_STIPPLE); - glBlendFunc(GL_ONE, GL_ZERO); - - if (outline) { - SetColor(COLOR_WHITE); - glBegin(GL_LINE_LOOP); - glVertex3fv(p0); - glVertex3fv(p1); - glVertex3fv(p2); - glEnd(); - } - - glPopMatrix(); - - glFlush(); - - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_FALSE; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else { - printf("%s (Bad option).\n", argv[i]); - return GL_FALSE; - } - } - return GL_TRUE; -} - -int main(int argc, char **argv) -{ - glutInit(&argc, argv); - - if (Args(argc, argv) == GL_FALSE) { - exit(1); - } - - windW = 600; - windH = 300; - glutInitWindowPosition(0, 0); glutInitWindowSize( windW, windH); - - windType = (rgb) ? GLUT_RGB : GLUT_INDEX; - windType |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(windType); - - if (glutCreateWindow("Triangle Test") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutSpecialFunc(Key2); - glutDisplayFunc(Draw); - glutMainLoop(); - return 0; -} diff --git a/progs/samples/wave.c b/progs/samples/wave.c deleted file mode 100644 index 396a6943e33..00000000000 --- a/progs/samples/wave.c +++ /dev/null @@ -1,619 +0,0 @@ -/* - * 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> - -#ifndef PI -#define PI 3.14159265358979323846 -#endif - -#define GETCOORD(frame, x, y) (&(theMesh.coords[frame*theMesh.numCoords+(x)+(y)*(theMesh.widthX+1)])) -#define GETFACET(frame, x, y) (&(theMesh.facets[frame*theMesh.numFacets+(x)+(y)*theMesh.widthX])) - - -GLenum rgb, doubleBuffer; - -#include "tkmap.c" - -GLint colorIndexes1[3]; -GLint colorIndexes2[3]; -GLenum clearMask = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT; - -GLenum smooth = GL_FALSE; -GLenum lighting = GL_TRUE; -GLenum depth = GL_TRUE; -GLenum stepMode = GL_FALSE; -GLenum spinMode = GL_FALSE; -GLint contouring = 0; - -GLint widthX, widthY; -GLint checkerSize; -float height; - -GLint frames, curFrame = 0, nextFrame = 0; - -struct facet { - float color[3]; - float normal[3]; -}; -struct coord { - float vertex[3]; - float normal[3]; -}; -struct mesh { - GLint widthX, widthY; - GLint numFacets; - GLint numCoords; - GLint frames; - struct coord *coords; - struct facet *facets; -} theMesh; - -GLubyte contourTexture1[] = { - 255, 255, 255, 255, - 255, 255, 255, 255, - 255, 255, 255, 255, - 127, 127, 127, 127, -}; -GLubyte contourTexture2[] = { - 255, 255, 255, 255, - 255, 127, 127, 127, - 255, 127, 127, 127, - 255, 127, 127, 127, -}; - -#if !defined(GLUTCALLBACK) -#define GLUTCALLBACK -#endif - - -static void GLUTCALLBACK glut_post_redisplay_p(void) -{ - static double t0 = -1.; - double t, dt; - t = glutGet(GLUT_ELAPSED_TIME) / 1000.; - if (t0 < 0.) - t0 = t; - dt = t - t0; - - if (dt < 1./30.) - return; - - t0 = t; - - glutPostRedisplay(); -} - -static void Animate(void) -{ - struct coord *coord; - struct facet *facet; - float *lastColor; - float *thisColor; - GLint i, j; - - glClear(clearMask); - - if (nextFrame || !stepMode) { - curFrame++; - } - if (curFrame >= theMesh.frames) { - curFrame = 0; - } - - if ((nextFrame || !stepMode) && spinMode) { - glRotatef(5.0, 0.0, 0.0, 1.0); - } - nextFrame = 0; - - for (i = 0; i < theMesh.widthX; i++) { - glBegin(GL_QUAD_STRIP); - lastColor = NULL; - for (j = 0; j < theMesh.widthY; j++) { - facet = GETFACET(curFrame, i, j); - if (!smooth && lighting) { - glNormal3fv(facet->normal); - } - if (lighting) { - if (rgb) { - thisColor = facet->color; - glColor3fv(facet->color); - } else { - thisColor = facet->color; - glMaterialfv(GL_FRONT_AND_BACK, GL_COLOR_INDEXES, - facet->color); - } - } else { - if (rgb) { - thisColor = facet->color; - glColor3fv(facet->color); - } else { - thisColor = facet->color; - glIndexf(facet->color[1]); - } - } - - if (!lastColor || (thisColor[0] != lastColor[0] && smooth)) { - if (lastColor) { - glEnd(); - glBegin(GL_QUAD_STRIP); - } - coord = GETCOORD(curFrame, i, j); - if (smooth && lighting) { - glNormal3fv(coord->normal); - } - glVertex3fv(coord->vertex); - - coord = GETCOORD(curFrame, i+1, j); - if (smooth && lighting) { - glNormal3fv(coord->normal); - } - glVertex3fv(coord->vertex); - } - - coord = GETCOORD(curFrame, i, j+1); - if (smooth && lighting) { - glNormal3fv(coord->normal); - } - glVertex3fv(coord->vertex); - - coord = GETCOORD(curFrame, i+1, j+1); - if (smooth && lighting) { - glNormal3fv(coord->normal); - } - glVertex3fv(coord->vertex); - - lastColor = thisColor; - } - glEnd(); - } - - glFlush(); - if (doubleBuffer) { - glutSwapBuffers(); - } -} - -static void SetColorMap(void) -{ - static float green[3] = {0.2, 1.0, 0.2}; - static float red[3] = {1.0, 0.2, 0.2}; - float *color = 0, percent; - GLint *indexes = 0, entries, i, j; - - entries = glutGet(GLUT_WINDOW_COLORMAP_SIZE); - - colorIndexes1[0] = 1; - colorIndexes1[1] = 1 + (GLint)((entries - 1) * 0.3); - colorIndexes1[2] = (GLint)((entries - 1) * 0.5); - colorIndexes2[0] = 1 + (GLint)((entries - 1) * 0.5); - colorIndexes2[1] = 1 + (GLint)((entries - 1) * 0.8); - colorIndexes2[2] = entries - 1; - - for (i = 0; i < 2; i++) { - switch (i) { - case 0: - color = green; - indexes = colorIndexes1; - break; - case 1: - color = red; - indexes = colorIndexes2; - break; - } - - for (j = indexes[0]; j < indexes[1]; j++) { - percent = 0.2 + 0.8 * (j - indexes[0]) / - (float)(indexes[1] - indexes[0]); - glutSetColor(j, percent*color[0], percent*color[1], - percent*color[2]); - } - for (j=indexes[1]; j<=indexes[2]; j++) { - percent = (j - indexes[1]) / (float)(indexes[2] - indexes[1]); - glutSetColor(j, percent*(1-color[0])+color[0], - percent*(1-color[1])+color[1], - percent*(1-color[2])+color[2]); - } - } -} - -static void InitMesh(void) -{ - struct coord *coord; - struct facet *facet; - float dp1[3], dp2[3]; - float *pt1, *pt2, *pt3; - float angle, d, x, y; - GLint numFacets, numCoords, frameNum, i, j; - - theMesh.widthX = widthX; - theMesh.widthY = widthY; - theMesh.frames = frames; - - numFacets = widthX * widthY; - numCoords = (widthX + 1) * (widthY + 1); - - theMesh.numCoords = numCoords; - theMesh.numFacets = numFacets; - - theMesh.coords = (struct coord *)malloc(frames*numCoords* - sizeof(struct coord)); - theMesh.facets = (struct facet *)malloc(frames*numFacets* - sizeof(struct facet)); - if (theMesh.coords == NULL || theMesh.facets == NULL) { - printf("Out of memory.\n"); - exit(1); - } - - for (frameNum = 0; frameNum < frames; frameNum++) { - for (i = 0; i <= widthX; i++) { - x = i / (float)widthX; - for (j = 0; j <= widthY; j++) { - y = j / (float)widthY; - - d = sqrt(x*x+y*y); - if (d == 0.0) { - d = 0.0001; - } - angle = 2 * PI * d + (2 * PI / frames * frameNum); - - coord = GETCOORD(frameNum, i, j); - - coord->vertex[0] = x - 0.5; - coord->vertex[1] = y - 0.5; - coord->vertex[2] = (height - height * d) * cos(angle); - - coord->normal[0] = -(height / d) * x * ((1 - d) * 2 * PI * - sin(angle) + cos(angle)); - coord->normal[1] = -(height / d) * y * ((1 - d) * 2 * PI * - sin(angle) + cos(angle)); - coord->normal[2] = -1; - - d = 1.0 / sqrt(coord->normal[0]*coord->normal[0]+ - coord->normal[1]*coord->normal[1]+1); - coord->normal[0] *= d; - coord->normal[1] *= d; - coord->normal[2] *= d; - } - } - for (i = 0; i < widthX; i++) { - for (j = 0; j < widthY; j++) { - facet = GETFACET(frameNum, i, j); - if (((i/checkerSize)%2)^(j/checkerSize)%2) { - if (rgb) { - facet->color[0] = 1.0; - facet->color[1] = 0.2; - facet->color[2] = 0.2; - } else { - facet->color[0] = colorIndexes1[0]; - facet->color[1] = colorIndexes1[1]; - facet->color[2] = colorIndexes1[2]; - } - } else { - if (rgb) { - facet->color[0] = 0.2; - facet->color[1] = 1.0; - facet->color[2] = 0.2; - } else { - facet->color[0] = colorIndexes2[0]; - facet->color[1] = colorIndexes2[1]; - facet->color[2] = colorIndexes2[2]; - } - } - pt1 = GETCOORD(frameNum, i, j)->vertex; - pt2 = GETCOORD(frameNum, i, j+1)->vertex; - pt3 = GETCOORD(frameNum, i+1, j+1)->vertex; - - dp1[0] = pt2[0] - pt1[0]; - dp1[1] = pt2[1] - pt1[1]; - dp1[2] = pt2[2] - pt1[2]; - - dp2[0] = pt3[0] - pt2[0]; - dp2[1] = pt3[1] - pt2[1]; - dp2[2] = pt3[2] - pt2[2]; - - facet->normal[0] = dp1[1] * dp2[2] - dp1[2] * dp2[1]; - facet->normal[1] = dp1[2] * dp2[0] - dp1[0] * dp2[2]; - facet->normal[2] = dp1[0] * dp2[1] - dp1[1] * dp2[0]; - - d = 1.0 / sqrt(facet->normal[0]*facet->normal[0]+ - facet->normal[1]*facet->normal[1]+ - facet->normal[2]*facet->normal[2]); - - facet->normal[0] *= d; - facet->normal[1] *= d; - facet->normal[2] *= d; - } - } - } -} - -static void InitMaterials(void) -{ - static float ambient[] = {0.1, 0.1, 0.1, 1.0}; - static float diffuse[] = {0.5, 1.0, 1.0, 1.0}; - static float position[] = {90.0, 90.0, 150.0, 0.0}; - static float front_mat_shininess[] = {60.0}; - static float front_mat_specular[] = {0.2, 0.2, 0.2, 1.0}; - static float front_mat_diffuse[] = {0.5, 0.28, 0.38, 1.0}; - static float back_mat_shininess[] = {60.0}; - static float back_mat_specular[] = {0.5, 0.5, 0.2, 1.0}; - static float back_mat_diffuse[] = {1.0, 1.0, 0.2, 1.0}; - static float lmodel_ambient[] = {1.0, 1.0, 1.0, 1.0}; - static float lmodel_twoside[] = {GL_TRUE}; - - glMatrixMode(GL_PROJECTION); - gluPerspective(90.0, 1.0, 0.5, 10.0); - - glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_POSITION, position); - glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient); - glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - - glMaterialfv(GL_FRONT, GL_SHININESS, front_mat_shininess); - glMaterialfv(GL_FRONT, GL_SPECULAR, front_mat_specular); - glMaterialfv(GL_FRONT, GL_DIFFUSE, front_mat_diffuse); - glMaterialfv(GL_BACK, GL_SHININESS, back_mat_shininess); - glMaterialfv(GL_BACK, GL_SPECULAR, back_mat_specular); - glMaterialfv(GL_BACK, GL_DIFFUSE, back_mat_diffuse); - if (rgb) { - glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE); - } - - if (rgb) { - glEnable(GL_COLOR_MATERIAL); - } else { - SetColorMap(); - } -} - -static void InitTexture(void) -{ - - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); -} - -static void Init(void) -{ - - glClearColor(0.0, 0.0, 0.0, 0.0); - - glShadeModel(GL_FLAT); - - glFrontFace(GL_CW); - - glEnable(GL_DEPTH_TEST); - - InitMaterials(); - InitTexture(); - InitMesh(); - - glMatrixMode(GL_MODELVIEW); - glTranslatef(0.0, 0.4, -1.8); - glScalef(2.0, 2.0, 2.0); - glRotatef(-35.0, 1.0, 0.0, 0.0); - glRotatef(35.0, 0.0, 0.0, 1.0); -} - -static void Reshape(int width, int height) -{ - - glViewport(0, 0, (GLint)width, (GLint)height); -} - -static void Key(unsigned char key, int x, int y) -{ - - switch (key) { - case 27: - exit(1); - case 'c': - contouring++; - if (contouring == 1) { - static GLfloat map[4] = {0, 0, 20, 0}; - - glTexImage2D(GL_TEXTURE_2D, 0, 3, 4, 4, 0, GL_LUMINANCE, - GL_UNSIGNED_BYTE, (GLvoid *)contourTexture1); - glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); - glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR); - glTexGenfv(GL_S, GL_OBJECT_PLANE, map); - glTexGenfv(GL_T, GL_OBJECT_PLANE, map); - glEnable(GL_TEXTURE_2D); - glEnable(GL_TEXTURE_GEN_S); - glEnable(GL_TEXTURE_GEN_T); - } else if (contouring == 2) { - static GLfloat map[4] = {0, 0, 20, 0}; - - glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR); - glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_EYE_LINEAR); - glPushMatrix(); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTexGenfv(GL_S, GL_EYE_PLANE, map); - glTexGenfv(GL_T, GL_EYE_PLANE, map); - glPopMatrix(); - } else { - contouring = 0; - glDisable(GL_TEXTURE_GEN_S); - glDisable(GL_TEXTURE_GEN_T); - glDisable(GL_TEXTURE_2D); - } - break; - case 's': - smooth = !smooth; - if (smooth) { - glShadeModel(GL_SMOOTH); - } else { - glShadeModel(GL_FLAT); - } - break; - case 'l': - lighting = !lighting; - if (lighting) { - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - if (rgb) { - glEnable(GL_COLOR_MATERIAL); - } - } else { - glDisable(GL_LIGHTING); - glDisable(GL_LIGHT0); - if (rgb) { - glDisable(GL_COLOR_MATERIAL); - } - } - break; - case 'd': - depth = !depth; - if (depth) { - glEnable(GL_DEPTH_TEST); - clearMask |= GL_DEPTH_BUFFER_BIT; - } else { - glDisable(GL_DEPTH_TEST); - clearMask &= ~GL_DEPTH_BUFFER_BIT; - } - break; - case 32: - stepMode = !stepMode; - if (stepMode) { - glutIdleFunc(0); - } else { - glutIdleFunc(glut_post_redisplay_p); - } - break; - case 'n': - if (stepMode) { - nextFrame = 1; - } - break; - case 'a': - spinMode = !spinMode; - break; - default: - return; - } - glutPostRedisplay(); -} - -static GLenum Args(int argc, char **argv) -{ - GLint i; - - rgb = GL_TRUE; - doubleBuffer = GL_TRUE; - frames = 10; - widthX = 10; - widthY = 10; - checkerSize = 2; - height = 0.2; - - for (i = 1; i < argc; i++) { - if (strcmp(argv[i], "-ci") == 0) { - rgb = GL_FALSE; - } else if (strcmp(argv[i], "-rgb") == 0) { - rgb = GL_TRUE; - } else if (strcmp(argv[i], "-sb") == 0) { - doubleBuffer = GL_FALSE; - } else if (strcmp(argv[i], "-db") == 0) { - doubleBuffer = GL_TRUE; - } else if (strcmp(argv[i], "-grid") == 0) { - if (i+2 >= argc || argv[i+1][0] == '-' || argv[i+2][0] == '-') { - printf("-grid (No numbers).\n"); - return GL_FALSE; - } else { - widthX = atoi(argv[++i]); - widthY = atoi(argv[++i]); - } - } else if (strcmp(argv[i], "-size") == 0) { - if (i+1 >= argc || argv[i+1][0] == '-') { - printf("-checker (No number).\n"); - return GL_FALSE; - } else { - checkerSize = atoi(argv[++i]); - } - } else if (strcmp(argv[i], "-wave") == 0) { - if (i+1 >= argc || argv[i+1][0] == '-') { - printf("-wave (No number).\n"); - return GL_FALSE; - } else { - height = atof(argv[++i]); - } - } else if (strcmp(argv[i], "-frames") == 0) { - if (i+1 >= argc || argv[i+1][0] == '-') { - printf("-frames (No number).\n"); - return GL_FALSE; - } else { - frames = atoi(argv[++i]); - } - } else { - printf("%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( 300, 300); - - type = GLUT_DEPTH; - type |= (rgb) ? GLUT_RGB : GLUT_INDEX; - type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; - glutInitDisplayMode(type); - - if (glutCreateWindow("Wave Demo") == GL_FALSE) { - exit(1); - } - - InitMap(); - - Init(); - - glutReshapeFunc(Reshape); - glutKeyboardFunc(Key); - glutDisplayFunc(Animate); - glutIdleFunc(glut_post_redisplay_p); - glutMainLoop(); - return 0; -} |