summaryrefslogtreecommitdiff
path: root/progs/redbook
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-05-21 09:32:38 -0700
committerEric Anholt <eric@anholt.net>2010-05-21 12:20:39 -0700
commit68fc4b415e322f6744299e39864fbc377c6eff74 (patch)
tree4bafffd8b0105174f3c5c0ae327a005be9145990 /progs/redbook
parente4f4489e3fc0b36d72821b55794fb843b2b7fa5f (diff)
Remove demos that have moved to git+ssh://git.freedesktop.org/git/mesa/demos.
The remaining programs are ones I've had difficulty finding a build environment for to make the build system or are unit tests that should probably live next to their code instead. Hopefully people can bring over the build for remaining pieces they care about.
Diffstat (limited to 'progs/redbook')
-rw-r--r--progs/redbook/.gitignore77
-rw-r--r--progs/redbook/Makefile109
-rw-r--r--progs/redbook/Makefile.win78
-rw-r--r--progs/redbook/README41
-rw-r--r--progs/redbook/SConscript86
-rw-r--r--progs/redbook/Windows/redbook.dsw29
-rw-r--r--progs/redbook/Windows/teapots.dsp112
-rw-r--r--progs/redbook/aaindex.c153
-rw-r--r--progs/redbook/aapoly.c171
-rw-r--r--progs/redbook/aargb.c149
-rw-r--r--progs/redbook/accanti.c182
-rw-r--r--progs/redbook/accpersp.c240
-rw-r--r--progs/redbook/alpha.c143
-rw-r--r--progs/redbook/alpha3D.c185
-rw-r--r--progs/redbook/anti.c124
-rw-r--r--progs/redbook/bezcurve.c114
-rw-r--r--progs/redbook/bezmesh.c162
-rw-r--r--progs/redbook/checker.c140
-rw-r--r--progs/redbook/clip.c108
-rw-r--r--progs/redbook/colormat.c153
-rw-r--r--progs/redbook/combiner.c379
-rw-r--r--progs/redbook/convolution.c218
-rw-r--r--progs/redbook/cube.c97
-rw-r--r--progs/redbook/cubemap.c205
-rw-r--r--progs/redbook/depthcue.c115
-rw-r--r--progs/redbook/dof.c251
-rw-r--r--progs/redbook/double.c146
-rw-r--r--progs/redbook/drawf.c103
-rw-r--r--progs/redbook/feedback.c173
-rw-r--r--progs/redbook/fog.c200
-rw-r--r--progs/redbook/fogcoord.c194
-rw-r--r--progs/redbook/fogindex.c152
-rw-r--r--progs/redbook/font.c167
-rw-r--r--progs/redbook/hello.c110
-rw-r--r--progs/redbook/histogram.c213
-rw-r--r--progs/redbook/image.c159
-rw-r--r--progs/redbook/jitter.h222
-rw-r--r--progs/redbook/leeds.binbin720605 -> 0 bytes
-rw-r--r--progs/redbook/light.c113
-rw-r--r--progs/redbook/lines.c138
-rw-r--r--progs/redbook/list.c125
-rw-r--r--progs/redbook/material.c306
-rw-r--r--progs/redbook/minmax.c182
-rw-r--r--progs/redbook/mipmap.c178
-rw-r--r--progs/redbook/model.c126
-rw-r--r--progs/redbook/movelight.c148
-rw-r--r--progs/redbook/multisamp.c188
-rw-r--r--progs/redbook/multitex.c177
-rw-r--r--progs/redbook/mvarray.c136
-rw-r--r--progs/redbook/nurbs.c190
-rw-r--r--progs/redbook/pickdepth.c217
-rw-r--r--progs/redbook/picksquare.c197
-rw-r--r--progs/redbook/plane.c171
-rw-r--r--progs/redbook/planet.c123
-rw-r--r--progs/redbook/pointp.c179
-rw-r--r--progs/redbook/polyoff.c323
-rw-r--r--progs/redbook/polys.c138
-rw-r--r--progs/redbook/quadric.c191
-rw-r--r--progs/redbook/robot.c132
-rw-r--r--progs/redbook/sccolorlight.c141
-rw-r--r--progs/redbook/scene.c141
-rw-r--r--progs/redbook/scenebamb.c140
-rw-r--r--progs/redbook/sceneflat.c140
-rw-r--r--progs/redbook/select.c222
-rw-r--r--progs/redbook/shadowmap.c352
-rw-r--r--progs/redbook/smooth.c106
-rw-r--r--progs/redbook/stencil.c193
-rw-r--r--progs/redbook/stroke.c195
-rw-r--r--progs/redbook/surface.c232
-rw-r--r--progs/redbook/surfpoints.c280
-rw-r--r--progs/redbook/teaambient.c162
-rw-r--r--progs/redbook/teapots.c220
-rw-r--r--progs/redbook/tess.c241
-rw-r--r--progs/redbook/tesswind.c290
-rw-r--r--progs/redbook/texbind.c171
-rw-r--r--progs/redbook/texgen.c207
-rw-r--r--progs/redbook/texprox.c120
-rw-r--r--progs/redbook/texsub.c187
-rw-r--r--progs/redbook/texture3d.c163
-rw-r--r--progs/redbook/texturesurf.c155
-rw-r--r--progs/redbook/torus.c152
-rw-r--r--progs/redbook/trim.c187
-rw-r--r--progs/redbook/unproject.c126
-rw-r--r--progs/redbook/varray.c195
-rw-r--r--progs/redbook/wrap.c180
85 files changed, 0 insertions, 14236 deletions
diff --git a/progs/redbook/.gitignore b/progs/redbook/.gitignore
deleted file mode 100644
index 60a77523e2..0000000000
--- a/progs/redbook/.gitignore
+++ /dev/null
@@ -1,77 +0,0 @@
-.cvsignore
-aaindex
-aapoly
-aargb
-accanti
-accpersp
-alpha
-alpha3D
-anti
-bezcurve
-bezmesh
-checker
-clip
-colormat
-combiner
-convolution
-cube
-cubemap
-depthcue
-dof
-double
-drawf
-feedback
-fog
-fogcoord
-fogindex
-font
-hello
-histogram
-image
-light
-lines
-list
-material
-minmax
-mipmap
-model
-movelight
-multisamp
-multitex
-mvarray
-nurbs
-pickdepth
-picksquare
-plane
-planet
-pointp
-polyoff
-polys
-quadric
-robot
-sccolorlight
-scene
-scenebamb
-sceneflat
-select
-shadowmap
-smooth
-stencil
-stroke
-surface
-surfpoints
-teaambient
-teapots
-tess
-tesswind
-texbind
-texgen
-texprox
-texsub
-texture3d
-texturesurf
-torus
-trim
-unproject
-varray
-wrap
diff --git a/progs/redbook/Makefile b/progs/redbook/Makefile
deleted file mode 100644
index b41e488729..0000000000
--- a/progs/redbook/Makefile
+++ /dev/null
@@ -1,109 +0,0 @@
-# progs/redbook/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 = aaindex \
- aapoly \
- aargb \
- accanti \
- accpersp \
- alpha \
- alpha3D \
- anti \
- bezcurve \
- bezmesh \
- checker \
- clip \
- colormat \
- combiner \
- convolution \
- cube \
- cubemap \
- depthcue \
- dof \
- double \
- drawf \
- feedback \
- fog \
- fogcoord \
- fogindex \
- font \
- hello \
- histogram \
- image \
- light \
- lines \
- list \
- material \
- minmax \
- mipmap \
- model \
- movelight \
- multitex \
- multisamp \
- mvarray \
- nurbs \
- pickdepth \
- picksquare \
- plane \
- planet \
- pointp \
- polyoff \
- polys \
- quadric \
- robot \
- sccolorlight \
- scene \
- scenebamb \
- sceneflat \
- select \
- shadowmap \
- smooth \
- stencil \
- stroke \
- surface \
- surfpoints \
- teaambient \
- teapots \
- tess \
- tesswind \
- texbind \
- texgen \
- texprox \
- texsub \
- texturesurf \
- texture3d \
- torus \
- trim \
- unproject \
- varray \
- wrap
-
-
-
-##### RULES #####
-
-.SUFFIXES:
-.SUFFIXES: .c
-
-.c: $(LIB_DEP)
- $(APP_CC) -I$(INCDIR) $(CFLAGS) $(LDFLAGS) $< $(LIBS) -o $@
-
-
-
-##### TARGETS ######
-
-default: $(PROGS)
-
-
-clean:
- -rm -f $(PROGS)
- -rm -f *.o *~
-
diff --git a/progs/redbook/Makefile.win b/progs/redbook/Makefile.win
deleted file mode 100644
index 7e57b8e47f..0000000000
--- a/progs/redbook/Makefile.win
+++ /dev/null
@@ -1,78 +0,0 @@
-# Makefile for Win32
-
-TOP = ..
-INCDIR = ..\include
-LIBDIR = ..\lib
-
-!include <win32.mak>
-
-SRCS= \
- aaindex.c \
- aapoly.c \
- aargb.c \
- accanti.c \
- accpersp.c \
- alpha.c \
- alpha3D.c \
- anti.c \
- bezcurve.c \
- bezmesh.c \
- checker.c \
- clip.c \
- colormat.c \
- cube.c \
- depthcue.c \
- dof.c \
- double.c \
- drawf.c \
- feedback.c \
- fog.c \
- fogindex.c \
- font.c \
- hello.c \
- image.c \
- light.c \
- lines.c \
- list.c \
- material.c \
- mipmap.c \
- model.c \
- movelight.c \
- nurbs.c \
- pickdepth.c \
- picksquare.c \
- plane.c \
- planet.c \
- polyoff.c \
- polys.c \
- quadric.c \
- robot.c \
- sccolorlight.c \
- scene.c \
- scenebamb.c \
- sceneflat.c \
- select.c \
- smooth.c \
- stencil.c \
- stroke.c \
- surface.c \
- teaambient.c \
- teapots.c \
- tess.c \
- tesswind.c \
- texbind.c \
- texgen.c \
- texprox.c \
- texsub.c \
- texturesurf.c \
- torus.c \
- trim.c \
- unproject.c \
- varray.c \
- wrap.c
-
-!include "$(TOP)/mesawin32.mak"
-
-$(EXES) : $*.obj
- @echo $@
- $(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) \ No newline at end of file
diff --git a/progs/redbook/README b/progs/redbook/README
deleted file mode 100644
index 4c8d5a74c9..0000000000
--- a/progs/redbook/README
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * For the software in this directory
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-
-The source code examples in this directory accompany the examples
-printed in the _OpenGL Programming Guide_, published by Addison-Wesley;
-ISBN 0-201-63274-8.
diff --git a/progs/redbook/SConscript b/progs/redbook/SConscript
deleted file mode 100644
index 750ad36fe0..0000000000
--- a/progs/redbook/SConscript
+++ /dev/null
@@ -1,86 +0,0 @@
-Import('*')
-
-progs = [
- 'aaindex',
- 'aapoly',
- 'aargb',
- 'accanti',
- 'accpersp',
- 'alpha3D',
- 'alpha',
- 'anti',
- 'bezcurve',
- 'bezmesh',
- 'checker',
- 'clip',
- 'colormat',
- 'combiner',
- 'convolution',
- 'cube',
- 'cubemap',
- 'depthcue',
- 'dof',
- 'double',
- 'drawf',
- 'feedback',
- 'fog',
- 'fogcoord',
- 'fogindex',
- 'font',
- 'hello',
- 'histogram',
- 'image',
- 'light',
- 'lines',
- 'list',
- 'material',
- 'minmax',
- 'mipmap',
- 'model',
- 'movelight',
- 'multisamp',
- 'multitex',
- 'mvarray',
- 'nurbs',
- 'pickdepth',
- 'picksquare',
- 'plane',
- 'planet',
- 'pointp',
- 'polyoff',
- 'polys',
- 'quadric',
- 'robot',
- 'sccolorlight',
- 'scenebamb',
- 'scene',
- 'sceneflat',
- 'select',
- 'shadowmap',
- 'smooth',
- 'stencil',
- 'stroke',
- 'surface',
- 'surfpoints',
- 'teaambient',
- 'teapots',
- 'tess',
- 'tesswind',
- 'texbind',
- 'texgen',
- 'texprox',
- 'texsub',
- 'texturesurf',
- 'texture3d',
- 'torus',
- 'trim',
- 'unproject',
- 'varray',
- 'wrap',
-]
-
-for prog in progs:
- progs_env.Program(
- target = prog,
- source = prog + '.c',
- )
diff --git a/progs/redbook/Windows/redbook.dsw b/progs/redbook/Windows/redbook.dsw
deleted file mode 100644
index a739af4a4e..0000000000
--- a/progs/redbook/Windows/redbook.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "teapots"=".\teapots.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/progs/redbook/Windows/teapots.dsp b/progs/redbook/Windows/teapots.dsp
deleted file mode 100644
index b74ed08925..0000000000
--- a/progs/redbook/Windows/teapots.dsp
+++ /dev/null
@@ -1,112 +0,0 @@
-# Microsoft Developer Studio Project File - Name="teapots" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=teapots - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "teapots.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "teapots.mak" CFG="teapots - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "teapots - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "teapots - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "teapots - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../../../lib/GLUT32.LIB ../../../lib/GLU32.LIB ../../../lib/OPENGL32.LIB /nologo /subsystem:console /machine:I386 /out:"../teapots.exe"
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Desc=Copy DLLs
-PostBuild_Cmds=copy ..\..\..\lib\*.dll ..
-# End Special Build Tool
-
-!ELSEIF "$(CFG)" == "teapots - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../../../lib/GLUT32.LIB ../../../lib/GLU32.LIB ../../../lib/OPENGL32.LIB /nologo /subsystem:console /debug /machine:I386 /out:"../teapots.exe" /pdbtype:sept
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Desc=Copy DLLs
-PostBuild_Cmds=copy ..\..\..\lib\*.dll ..
-# End Special Build Tool
-
-!ENDIF
-
-# Begin Target
-
-# Name "teapots - Win32 Release"
-# Name "teapots - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\teapots.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/progs/redbook/aaindex.c b/progs/redbook/aaindex.c
deleted file mode 100644
index 6011ec44b6..0000000000
--- a/progs/redbook/aaindex.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * aaindex.c
- * This program draws shows how to draw anti-aliased lines in color
- * index mode. It draws two diagonal lines to form an X; when 'r'
- * is typed in the window, the lines are rotated in opposite
- * directions.
- */
-#include <GL/glut.h>
-#include "stdlib.h"
-
-#define RAMPSIZE 16
-#define RAMP1START 32
-#define RAMP2START 48
-
-static float rotAngle = 0.;
-
-/* Initialize antialiasing for color index mode,
- * including loading a green color ramp starting
- * at RAMP1START, and a blue color ramp starting
- * at RAMP2START. The ramps must be a multiple of 16.
- */
-static void init(void)
-{
- int i;
-
- for (i = 0; i < RAMPSIZE; i++) {
- GLfloat shade;
- shade = (GLfloat) i/(GLfloat) RAMPSIZE;
- glutSetColor(RAMP1START+(GLint)i, 0., shade, 0.);
- glutSetColor(RAMP2START+(GLint)i, 0., 0., shade);
- }
-
- glEnable (GL_LINE_SMOOTH);
- glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
- glLineWidth (1.5);
-
- glClearIndex ((GLfloat) RAMP1START);
-}
-
-/* Draw 2 diagonal lines to form an X
- */
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- glIndexi(RAMP1START);
- glPushMatrix();
- glRotatef(-rotAngle, 0.0, 0.0, 0.1);
- glBegin (GL_LINES);
- glVertex2f (-0.5, 0.5);
- glVertex2f (0.5, -0.5);
- glEnd ();
- glPopMatrix();
-
- glIndexi(RAMP2START);
- glPushMatrix();
- glRotatef(rotAngle, 0.0, 0.0, 0.1);
- glBegin (GL_LINES);
- glVertex2f (0.5, 0.5);
- glVertex2f (-0.5, -0.5);
- glEnd ();
- glPopMatrix();
-
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- gluOrtho2D (-1.0, 1.0,
- -1.0*(GLfloat)h/(GLfloat)w, 1.0*(GLfloat)h/(GLfloat)w);
- else
- gluOrtho2D (-1.0*(GLfloat)w/(GLfloat)h,
- 1.0*(GLfloat)w/(GLfloat)h, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'r':
- case 'R':
- rotAngle += 20.;
- if (rotAngle >= 360.) rotAngle = 0.;
- glutPostRedisplay();
- break;
- case 27: /* Escape Key */
- exit(0);
- break;
- default:
- break;
- }
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * color index display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_INDEX);
- glutInitWindowSize (200, 200);
- glutCreateWindow (argv[0]);
- init();
- glutReshapeFunc (reshape);
- glutKeyboardFunc (keyboard);
- glutDisplayFunc (display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/aapoly.c b/progs/redbook/aapoly.c
deleted file mode 100644
index 64d06b7b3d..0000000000
--- a/progs/redbook/aapoly.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * aapoly.c
- * This program draws filled polygons with antialiased
- * edges. The special GL_SRC_ALPHA_SATURATE blending
- * function is used.
- * Pressing the 't' key turns the antialiasing on and off.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-GLboolean polySmooth = GL_TRUE;
-
-static void init(void)
-{
- glCullFace (GL_BACK);
- glEnable (GL_CULL_FACE);
- glBlendFunc (GL_SRC_ALPHA_SATURATE, GL_ONE);
- glClearColor (0.0, 0.0, 0.0, 0.0);
-}
-
-#define NFACE 6
-#define NVERT 8
-static void drawCube(GLdouble x0, GLdouble x1, GLdouble y0, GLdouble y1,
- GLdouble z0, GLdouble z1)
-{
- static GLfloat v[8][3];
- static GLfloat c[8][4] = {
- {0.0, 0.0, 0.0, 1.0}, {1.0, 0.0, 0.0, 1.0},
- {0.0, 1.0, 0.0, 1.0}, {1.0, 1.0, 0.0, 1.0},
- {0.0, 0.0, 1.0, 1.0}, {1.0, 0.0, 1.0, 1.0},
- {0.0, 1.0, 1.0, 1.0}, {1.0, 1.0, 1.0, 1.0}
- };
-
-/* indices of front, top, left, bottom, right, back faces */
- static GLubyte indices[NFACE][4] = {
- {4, 5, 6, 7}, {2, 3, 7, 6}, {0, 4, 7, 3},
- {0, 1, 5, 4}, {1, 5, 6, 2}, {0, 3, 2, 1}
- };
-
- v[0][0] = v[3][0] = v[4][0] = v[7][0] = x0;
- v[1][0] = v[2][0] = v[5][0] = v[6][0] = x1;
- v[0][1] = v[1][1] = v[4][1] = v[5][1] = y0;
- v[2][1] = v[3][1] = v[6][1] = v[7][1] = y1;
- v[0][2] = v[1][2] = v[2][2] = v[3][2] = z0;
- v[4][2] = v[5][2] = v[6][2] = v[7][2] = z1;
-
-#ifdef GL_VERSION_1_1
- glEnableClientState (GL_VERTEX_ARRAY);
- glEnableClientState (GL_COLOR_ARRAY);
- glVertexPointer (3, GL_FLOAT, 0, v);
- glColorPointer (4, GL_FLOAT, 0, c);
- glDrawElements (GL_QUADS, NFACE*4, GL_UNSIGNED_BYTE, indices);
- glDisableClientState (GL_VERTEX_ARRAY);
- glDisableClientState (GL_COLOR_ARRAY);
-#else
- printf ("If this is GL Version 1.0, ");
- printf ("vertex arrays are not supported.\n");
- exit(1);
-#endif
-}
-
-/* Note: polygons must be drawn from front to back
- * for proper blending.
- */
-static void display(void)
-{
- if (polySmooth) {
- glClear (GL_COLOR_BUFFER_BIT);
- glEnable (GL_BLEND);
- glEnable (GL_POLYGON_SMOOTH);
- glDisable (GL_DEPTH_TEST);
- }
- else {
- glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glDisable (GL_BLEND);
- glDisable (GL_POLYGON_SMOOTH);
- glEnable (GL_DEPTH_TEST);
- }
-
- glPushMatrix ();
- glTranslatef (0.0, 0.0, -8.0);
- glRotatef (30.0, 1.0, 0.0, 0.0);
- glRotatef (60.0, 0.0, 1.0, 0.0);
- drawCube(-0.5, 0.5, -0.5, 0.5, -0.5, 0.5);
- glPopMatrix ();
-
- glFlush ();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(30.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 't':
- case 'T':
- polySmooth = !polySmooth;
- glutPostRedisplay();
- break;
- case 27:
- exit(0); /* Escape key */
- break;
- default:
- break;
- }
-}
-
-/* Main Loop
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB
- | GLUT_ALPHA | GLUT_DEPTH);
- glutInitWindowSize(200, 200);
- glutCreateWindow(argv[0]);
- init ();
- glutReshapeFunc (reshape);
- glutKeyboardFunc (keyboard);
- glutDisplayFunc (display);
- glutMainLoop();
- return 0;
-}
-
diff --git a/progs/redbook/aargb.c b/progs/redbook/aargb.c
deleted file mode 100644
index 0021b549c2..0000000000
--- a/progs/redbook/aargb.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * aargb.c
- * This program draws shows how to draw anti-aliased lines. It draws
- * two diagonal lines to form an X; when 'r' is typed in the window,
- * the lines are rotated in opposite directions.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-static float rotAngle = 0.;
-
-/* Initialize antialiasing for RGBA mode, including alpha
- * blending, hint, and line width. Print out implementation
- * specific info on line width granularity and width.
- */
-static void init(void)
-{
- GLfloat values[2];
- glGetFloatv (GL_LINE_WIDTH_GRANULARITY, values);
- printf ("GL_LINE_WIDTH_GRANULARITY value is %3.1f\n", values[0]);
-
- glGetFloatv (GL_LINE_WIDTH_RANGE, values);
- printf ("GL_LINE_WIDTH_RANGE values are %3.1f %3.1f\n",
- values[0], values[1]);
-
- glEnable (GL_LINE_SMOOTH);
- glEnable (GL_BLEND);
- glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
- glLineWidth (1.5);
-
- glClearColor(0.0, 0.0, 0.0, 0.0);
-}
-
-/* Draw 2 diagonal lines to form an X
- */
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- glColor3f (0.0, 1.0, 0.0);
- glPushMatrix();
- glRotatef(-rotAngle, 0.0, 0.0, 0.1);
- glBegin (GL_LINES);
- glVertex2f (-0.5, 0.5);
- glVertex2f (0.5, -0.5);
- glEnd ();
- glPopMatrix();
-
- glColor3f (0.0, 0.0, 1.0);
- glPushMatrix();
- glRotatef(rotAngle, 0.0, 0.0, 0.1);
- glBegin (GL_LINES);
- glVertex2f (0.5, 0.5);
- glVertex2f (-0.5, -0.5);
- glEnd ();
- glPopMatrix();
-
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- gluOrtho2D (-1.0, 1.0,
- -1.0*(GLfloat)h/(GLfloat)w, 1.0*(GLfloat)h/(GLfloat)w);
- else
- gluOrtho2D (-1.0*(GLfloat)w/(GLfloat)h,
- 1.0*(GLfloat)w/(GLfloat)h, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'r':
- case 'R':
- rotAngle += 20.;
- if (rotAngle >= 360.) rotAngle = 0.;
- glutPostRedisplay();
- break;
- case 27: /* Escape Key */
- exit(0);
- break;
- default:
- break;
- }
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (200, 200);
- glutCreateWindow (argv[0]);
- init();
- glutReshapeFunc (reshape);
- glutKeyboardFunc (keyboard);
- glutDisplayFunc (display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/accanti.c b/progs/redbook/accanti.c
deleted file mode 100644
index d1b2567841..0000000000
--- a/progs/redbook/accanti.c
+++ /dev/null
@@ -1,182 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/* accanti.c
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-#include "jitter.h"
-
-/* Initialize lighting and other values.
- */
-static void myinit(void)
-{
- GLfloat mat_ambient[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat light_position[] = { 0.0, 0.0, 10.0, 1.0 };
- GLfloat lm_ambient[] = { 0.2, 0.2, 0.2, 1.0 };
-
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialf(GL_FRONT, GL_SHININESS, 50.0);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
- glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lm_ambient);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
- glShadeModel (GL_FLAT);
-
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClearAccum(0.0, 0.0, 0.0, 0.0);
-}
-
-static void displayObjects(void)
-{
- GLfloat torus_diffuse[] = { 0.7, 0.7, 0.0, 1.0 };
- GLfloat cube_diffuse[] = { 0.0, 0.7, 0.7, 1.0 };
- GLfloat sphere_diffuse[] = { 0.7, 0.0, 0.7, 1.0 };
- GLfloat octa_diffuse[] = { 0.7, 0.4, 0.4, 1.0 };
-
- glPushMatrix ();
- glRotatef (30.0, 1.0, 0.0, 0.0);
-
- glPushMatrix ();
- glTranslatef (-0.80, 0.35, 0.0);
- glRotatef (100.0, 1.0, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, torus_diffuse);
- glutSolidTorus (0.275, 0.85, 16, 16);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (-0.75, -0.50, 0.0);
- glRotatef (45.0, 0.0, 0.0, 1.0);
- glRotatef (45.0, 1.0, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, cube_diffuse);
- glutSolidCube (1.5);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (0.75, 0.60, 0.0);
- glRotatef (30.0, 1.0, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, sphere_diffuse);
- glutSolidSphere (1.0, 16, 16);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (0.70, -0.90, 0.25);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, octa_diffuse);
- glutSolidOctahedron ();
- glPopMatrix ();
-
- glPopMatrix ();
-}
-
-#define ACSIZE 8
-
-static void display(void)
-{
- GLint viewport[4];
- int jitter;
-
- glGetIntegerv (GL_VIEWPORT, viewport);
-
- glClear(GL_ACCUM_BUFFER_BIT);
- for (jitter = 0; jitter < ACSIZE; jitter++) {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix ();
-/* Note that 4.5 is the distance in world space between
- * left and right and bottom and top.
- * This formula converts fractional pixel movement to
- * world coordinates.
- */
- glTranslatef (j8[jitter].x*4.5/viewport[2],
- j8[jitter].y*4.5/viewport[3], 0.0);
- displayObjects ();
- glPopMatrix ();
- glAccum(GL_ACCUM, 1.0/ACSIZE);
- }
- glAccum (GL_RETURN, 1.0);
- glFlush();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho (-2.25, 2.25, -2.25*h/w, 2.25*h/w, -10.0, 10.0);
- else
- glOrtho (-2.25*w/h, 2.25*w/h, -2.25, 2.25, -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB
- | GLUT_ACCUM | GLUT_DEPTH);
- glutInitWindowSize (250, 250);
- glutCreateWindow (argv[0]);
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/accpersp.c b/progs/redbook/accpersp.c
deleted file mode 100644
index e172d0a917..0000000000
--- a/progs/redbook/accpersp.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* accpersp.c
- * Use the accumulation buffer to do full-scene antialiasing
- * on a scene with perspective projection, using the special
- * routines accFrustum() and accPerspective().
- */
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glut.h>
-#include "jitter.h"
-
-#define PI_ 3.14159265358979323846
-
-/* accFrustum()
- * The first 6 arguments are identical to the glFrustum() call.
- *
- * pixdx and pixdy are anti-alias jitter in pixels.
- * Set both equal to 0.0 for no anti-alias jitter.
- * eyedx and eyedy are depth-of field jitter in pixels.
- * Set both equal to 0.0 for no depth of field effects.
- *
- * focus is distance from eye to plane in focus.
- * focus must be greater than, but not equal to 0.0.
- *
- * Note that accFrustum() calls glTranslatef(). You will
- * probably want to insure that your ModelView matrix has been
- * initialized to identity before calling accFrustum().
- */
-static void accFrustum(GLdouble left, GLdouble right, GLdouble bottom,
- GLdouble top, GLdouble nnear, GLdouble ffar, GLdouble pixdx,
- GLdouble pixdy, GLdouble eyedx, GLdouble eyedy, GLdouble focus)
-{
- GLdouble xwsize, ywsize;
- GLdouble dx, dy;
- GLint viewport[4];
-
- glGetIntegerv (GL_VIEWPORT, viewport);
-
- xwsize = right - left;
- ywsize = top - bottom;
-
- dx = -(pixdx*xwsize/(GLdouble) viewport[2] + eyedx*nnear/focus);
- dy = -(pixdy*ywsize/(GLdouble) viewport[3] + eyedy*nnear/focus);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum (left + dx, right + dx, bottom + dy, top + dy, nnear, ffar);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef (-eyedx, -eyedy, 0.0);
-}
-
-/* accPerspective()
- *
- * The first 4 arguments are identical to the gluPerspective() call.
- * pixdx and pixdy are anti-alias jitter in pixels.
- * Set both equal to 0.0 for no anti-alias jitter.
- * eyedx and eyedy are depth-of field jitter in pixels.
- * Set both equal to 0.0 for no depth of field effects.
- *
- * focus is distance from eye to plane in focus.
- * focus must be greater than, but not equal to 0.0.
- *
- * Note that accPerspective() calls accFrustum().
- */
-static void accPerspective(GLdouble fovy, GLdouble aspect,
- GLdouble nnear, GLdouble ffar, GLdouble pixdx, GLdouble pixdy,
- GLdouble eyedx, GLdouble eyedy, GLdouble focus)
-{
- GLdouble fov2,left,right,bottom,top;
-
- fov2 = ((fovy*PI_) / 180.0) / 2.0;
-
- top = nnear / (cos(fov2) / sin(fov2));
- bottom = -top;
-
- right = top * aspect;
- left = -right;
-
- accFrustum (left, right, bottom, top, nnear, ffar,
- pixdx, pixdy, eyedx, eyedy, focus);
-}
-
-/* Initialize lighting and other values.
- */
-static void init(void)
-{
- GLfloat mat_ambient[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat light_position[] = { 0.0, 0.0, 10.0, 1.0 };
- GLfloat lm_ambient[] = { 0.2, 0.2, 0.2, 1.0 };
-
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialf(GL_FRONT, GL_SHININESS, 50.0);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
- glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lm_ambient);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
- glShadeModel (GL_FLAT);
-
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClearAccum(0.0, 0.0, 0.0, 0.0);
-}
-
-static void displayObjects(void)
-{
- GLfloat torus_diffuse[] = { 0.7, 0.7, 0.0, 1.0 };
- GLfloat cube_diffuse[] = { 0.0, 0.7, 0.7, 1.0 };
- GLfloat sphere_diffuse[] = { 0.7, 0.0, 0.7, 1.0 };
- GLfloat octa_diffuse[] = { 0.7, 0.4, 0.4, 1.0 };
-
- glPushMatrix ();
- glTranslatef (0.0, 0.0, -5.0);
- glRotatef (30.0, 1.0, 0.0, 0.0);
-
- glPushMatrix ();
- glTranslatef (-0.80, 0.35, 0.0);
- glRotatef (100.0, 1.0, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, torus_diffuse);
- glutSolidTorus (0.275, 0.85, 16, 16);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (-0.75, -0.50, 0.0);
- glRotatef (45.0, 0.0, 0.0, 1.0);
- glRotatef (45.0, 1.0, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, cube_diffuse);
- glutSolidCube (1.5);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (0.75, 0.60, 0.0);
- glRotatef (30.0, 1.0, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, sphere_diffuse);
- glutSolidSphere (1.0, 16, 16);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (0.70, -0.90, 0.25);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, octa_diffuse);
- glutSolidOctahedron ();
- glPopMatrix ();
-
- glPopMatrix ();
-}
-
-#define ACSIZE 8
-
-static void display(void)
-{
- GLint viewport[4];
- int jitter;
-
- glGetIntegerv (GL_VIEWPORT, viewport);
-
- glClear(GL_ACCUM_BUFFER_BIT);
- for (jitter = 0; jitter < ACSIZE; jitter++) {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- accPerspective (50.0,
- (GLdouble) viewport[2]/(GLdouble) viewport[3],
- 1.0, 15.0, j8[jitter].x, j8[jitter].y, 0.0, 0.0, 1.0);
- displayObjects ();
- glAccum(GL_ACCUM, 1.0/ACSIZE);
- }
- glAccum (GL_RETURN, 1.0);
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-/* Main Loop
- * Be certain you request an accumulation buffer.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB
- | GLUT_ACCUM | GLUT_DEPTH);
- glutInitWindowSize (250, 250);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init();
- glutReshapeFunc(reshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/alpha.c b/progs/redbook/alpha.c
deleted file mode 100644
index b77c65e2c8..0000000000
--- a/progs/redbook/alpha.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * alpha.c
- * This program draws several overlapping filled polygons
- * to demonstrate the effect order has on alpha blending results.
- * Use the 't' key to toggle the order of drawing polygons.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-static int leftFirst = GL_TRUE;
-
-/* Initialize alpha blending function.
- */
-static void init(void)
-{
- glEnable (GL_BLEND);
- glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glShadeModel (GL_FLAT);
- glClearColor (0.0, 0.0, 0.0, 0.0);
-}
-
-static void drawLeftTriangle(void)
-{
- /* draw yellow triangle on LHS of screen */
-
- glBegin (GL_TRIANGLES);
- glColor4f(1.0, 1.0, 0.0, 0.75);
- glVertex3f(0.1, 0.9, 0.0);
- glVertex3f(0.1, 0.1, 0.0);
- glVertex3f(0.7, 0.5, 0.0);
- glEnd();
-}
-
-static void drawRightTriangle(void)
-{
- /* draw cyan triangle on RHS of screen */
-
- glBegin (GL_TRIANGLES);
- glColor4f(0.0, 1.0, 1.0, 0.75);
- glVertex3f(0.9, 0.9, 0.0);
- glVertex3f(0.3, 0.5, 0.0);
- glVertex3f(0.9, 0.1, 0.0);
- glEnd();
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- if (leftFirst) {
- drawLeftTriangle();
- drawRightTriangle();
- }
- else {
- drawRightTriangle();
- drawLeftTriangle();
- }
-
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- gluOrtho2D (0.0, 1.0, 0.0, 1.0*(GLfloat)h/(GLfloat)w);
- else
- gluOrtho2D (0.0, 1.0*(GLfloat)w/(GLfloat)h, 0.0, 1.0);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 't':
- case 'T':
- leftFirst = !leftFirst;
- glutPostRedisplay();
- break;
- case 27: /* Escape key */
- exit(0);
- break;
- default:
- break;
- }
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (200, 200);
- glutCreateWindow (argv[0]);
- init();
- glutReshapeFunc (reshape);
- glutKeyboardFunc (keyboard);
- glutDisplayFunc (display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/alpha3D.c b/progs/redbook/alpha3D.c
deleted file mode 100644
index 494b1879d2..0000000000
--- a/progs/redbook/alpha3D.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * alpha3D.c
- * This program demonstrates how to intermix opaque and
- * alpha blended polygons in the same scene, by using
- * glDepthMask. Press the 'a' key to animate moving the
- * transparent object through the opaque object. Press
- * the 'r' key to reset the scene.
- */
-#include <stdlib.h>
-#include <stdio.h>
-#include <GL/glut.h>
-
-#define MAXZ 8.0
-#define MINZ -8.0
-#define ZINC 4.
-
-static float solidZ = MAXZ;
-static float transparentZ = MINZ;
-static GLuint sphereList, cubeList;
-
-static void init(void)
-{
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 0.15 };
- GLfloat mat_shininess[] = { 100.0 };
- GLfloat position[] = { 0.5, 0.5, 1.0, 0.0 };
-
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
- glLightfv(GL_LIGHT0, GL_POSITION, position);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
-
- sphereList = glGenLists(1);
- glNewList(sphereList, GL_COMPILE);
- glutSolidSphere (0.4, 16, 16);
- glEndList();
-
- cubeList = glGenLists(1);
- glNewList(cubeList, GL_COMPILE);
- glutSolidCube (0.6);
- glEndList();
-}
-
-static void display(void)
-{
- GLfloat mat_solid[] = { 0.75, 0.75, 0.0, 1.0 };
- GLfloat mat_zero[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat mat_transparent[] = { 0.0, 0.8, 0.8, 0.6 };
- GLfloat mat_emission[] = { 0.0, 0.3, 0.3, 0.6 };
-
- glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix ();
- glTranslatef (-0.15, -0.15, solidZ);
- glMaterialfv(GL_FRONT, GL_EMISSION, mat_zero);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_solid);
- glCallList (sphereList);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (0.15, 0.15, transparentZ);
- glRotatef (15.0, 1.0, 1.0, 0.0);
- glRotatef (30.0, 0.0, 1.0, 0.0);
- glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_transparent);
- glEnable (GL_BLEND);
- glDepthMask (GL_FALSE);
- glBlendFunc (GL_SRC_ALPHA, GL_ONE);
- glCallList (cubeList);
- glDepthMask (GL_TRUE);
- glDisable (GL_BLEND);
- glPopMatrix ();
-
- glutSwapBuffers();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLint) w, (GLint) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho (-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w,
- 1.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0);
- else
- glOrtho (-1.5*(GLfloat)w/(GLfloat)h,
- 1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5, -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void animate(void)
-{
- static double t0 = -1.;
- if (solidZ <= MINZ || transparentZ >= MAXZ)
- {
- glutIdleFunc(NULL);
- t0 = -1.;
- }
- else {
- double t, dt;
- t = glutGet(GLUT_ELAPSED_TIME) / 1000.;
- if (t0 < 0.)
- t0 = t;
- dt = t - t0;
- t0 = t;
- solidZ -= ZINC*dt;
- transparentZ += ZINC*dt;
- glutPostRedisplay();
- }
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'a':
- case 'A':
- solidZ = MAXZ;
- transparentZ = MINZ;
- glutIdleFunc(animate);
- break;
- case 'r':
- case 'R':
- solidZ = MAXZ;
- transparentZ = MINZ;
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(500, 500);
- glutCreateWindow(argv[0]);
- init();
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/anti.c b/progs/redbook/anti.c
deleted file mode 100644
index a97a3ebc94..0000000000
--- a/progs/redbook/anti.c
+++ /dev/null
@@ -1,124 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * anti.c
- * This program draws antialiased lines in RGBA mode.
- */
-#include <stdlib.h>
-#include <stdio.h>
-#include <GL/glut.h>
-
-/* Initialize antialiasing for RGBA mode, including alpha
- * blending, hint, and line width. Print out implementation
- * specific info on line width granularity and width.
- */
-static void myinit(void)
-{
- GLfloat values[2];
- glGetFloatv (GL_LINE_WIDTH_GRANULARITY, values);
- printf ("GL_LINE_WIDTH_GRANULARITY value is %3.1f\n", values[0]);
-
- glGetFloatv (GL_LINE_WIDTH_RANGE, values);
- printf ("GL_LINE_WIDTH_RANGE values are %3.1f %3.1f\n",
- values[0], values[1]);
-
- glEnable (GL_LINE_SMOOTH);
- glEnable (GL_BLEND);
- glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
- glLineWidth (1.5);
-
- glShadeModel(GL_FLAT);
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
-}
-
-/* display() draws an icosahedron with a large alpha value, 1.0.
- */
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glColor4f (1.0, 1.0, 1.0, 1.0);
- glutWireIcosahedron();
- glFlush();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective (45.0, (GLfloat) w/(GLfloat) h, 3.0, 5.0);
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity ();
- glTranslatef (0.0, 0.0, -4.0); /* move object into view */
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutCreateWindow (argv[0]);
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/bezcurve.c b/progs/redbook/bezcurve.c
deleted file mode 100644
index 60a9c68080..0000000000
--- a/progs/redbook/bezcurve.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* bezcurve.c
- * This program uses evaluators to draw a Bezier curve.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-GLfloat ctrlpoints[4][3] = {
- { -4.0, -4.0, 0.0}, { -2.0, 4.0, 0.0},
- {2.0, -4.0, 0.0}, {4.0, 4.0, 0.0}};
-
-static void init(void)
-{
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glShadeModel(GL_FLAT);
- glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
- glEnable(GL_MAP1_VERTEX_3);
-}
-
-static void display(void)
-{
- int i;
-
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3f(1.0, 1.0, 1.0);
- glBegin(GL_LINE_STRIP);
- for (i = 0; i <= 30; i++)
- glEvalCoord1f((GLfloat) i/30.0);
- glEnd();
- /* The following code displays the control points as dots. */
- glPointSize(5.0);
- glColor3f(1.0, 1.0, 0.0);
- glBegin(GL_POINTS);
- for (i = 0; i < 4; i++)
- glVertex3fv(&ctrlpoints[i][0]);
- glEnd();
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho(-5.0, 5.0, -5.0*(GLfloat)h/(GLfloat)w,
- 5.0*(GLfloat)h/(GLfloat)w, -5.0, 5.0);
- else
- glOrtho(-5.0*(GLfloat)w/(GLfloat)h,
- 5.0*(GLfloat)w/(GLfloat)h, -5.0, 5.0, -5.0, 5.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/bezmesh.c b/progs/redbook/bezmesh.c
deleted file mode 100644
index 1abc7488bc..0000000000
--- a/progs/redbook/bezmesh.c
+++ /dev/null
@@ -1,162 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/**
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/* bezsurf.c
- * This program renders a lighted, filled Bezier surface,
- * using two-dimensional evaluators.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-GLfloat ctrlpoints[4][4][3] =
-{
- {
- {-1.5, -1.5, 4.0},
- {-0.5, -1.5, 2.0},
- {0.5, -1.5, -1.0},
- {1.5, -1.5, 2.0}},
- {
- {-1.5, -0.5, 1.0},
- {-0.5, -0.5, 3.0},
- {0.5, -0.5, 0.0},
- {1.5, -0.5, -1.0}},
- {
- {-1.5, 0.5, 4.0},
- {-0.5, 0.5, 0.0},
- {0.5, 0.5, 3.0},
- {1.5, 0.5, 4.0}},
- {
- {-1.5, 1.5, -2.0},
- {-0.5, 1.5, -2.0},
- {0.5, 1.5, 0.0},
- {1.5, 1.5, -1.0}}
-};
-
-static void
-initlights(void)
-{
- GLfloat ambient[] =
- {0.2, 0.2, 0.2, 1.0};
- GLfloat position[] =
- {0.0, 0.0, 2.0, 1.0};
- GLfloat mat_diffuse[] =
- {0.6, 0.6, 0.6, 1.0};
- GLfloat mat_specular[] =
- {1.0, 1.0, 1.0, 1.0};
- GLfloat mat_shininess[] =
- {50.0};
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-
- glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
- glLightfv(GL_LIGHT0, GL_POSITION, position);
-
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
-}
-
-static void
-display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix();
- glRotatef(85.0, 1.0, 1.0, 1.0);
- glEvalMesh2(GL_FILL, 0, 20, 0, 20);
- glPopMatrix();
- glFlush();
-}
-
-static void
-myinit(void)
-{
- glClearColor(0.0, 0.0, 0.0, 1.0);
- glEnable(GL_DEPTH_TEST);
- glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4,
- 0, 1, 12, 4, &ctrlpoints[0][0][0]);
- glEnable(GL_MAP2_VERTEX_3);
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
- glMapGrid2f(20, 0.0, 1.0, 20, 0.0, 1.0);
- initlights(); /* for lighted version only */
-}
-
-static void
-myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho(-4.0, 4.0, -4.0 * (GLfloat) h / (GLfloat) w,
- 4.0 * (GLfloat) h / (GLfloat) w, -4.0, 4.0);
- else
- glOrtho(-4.0 * (GLfloat) w / (GLfloat) h,
- 4.0 * (GLfloat) w / (GLfloat) h, -4.0, 4.0, -4.0, 4.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-int
-main(int argc, char **argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutCreateWindow(argv[0]);
- myinit();
- glutReshapeFunc(myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/checker.c b/progs/redbook/checker.c
deleted file mode 100644
index 60e6f7b60c..0000000000
--- a/progs/redbook/checker.c
+++ /dev/null
@@ -1,140 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/* checker.c
- * This program texture maps a checkerboard image onto
- * two rectangles. This program clamps the texture, if
- * the texture coordinates fall outside 0.0 and 1.0.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/* Create checkerboard texture */
-#define checkImageWidth 64
-#define checkImageHeight 64
-GLubyte checkImage[checkImageWidth][checkImageHeight][3];
-
-static void makeCheckImage(void)
-{
- int i, j, c;
-
- for (i = 0; i < checkImageWidth; i++) {
- for (j = 0; j < checkImageHeight; j++) {
- c = ((((i&0x8)==0)^((j&0x8)==0)))*255;
- checkImage[i][j][0] = (GLubyte) c;
- checkImage[i][j][1] = (GLubyte) c;
- checkImage[i][j][2] = (GLubyte) c;
- }
- }
-}
-
-static void myinit(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
-
- makeCheckImage();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexImage2D(GL_TEXTURE_2D, 0, 3, checkImageWidth,
- checkImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,
- &checkImage[0][0][0]);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
- glEnable(GL_TEXTURE_2D);
- glShadeModel(GL_FLAT);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0, 0.0);
- glTexCoord2f(0.0, 1.0); glVertex3f(-2.0, 1.0, 0.0);
- glTexCoord2f(1.0, 1.0); glVertex3f(0.0, 1.0, 0.0);
- glTexCoord2f(1.0, 0.0); glVertex3f(0.0, -1.0, 0.0);
-
- glTexCoord2f(0.0, 0.0); glVertex3f(1.0, -1.0, 0.0);
- glTexCoord2f(0.0, 1.0); glVertex3f(1.0, 1.0, 0.0);
- glTexCoord2f(1.0, 1.0); glVertex3f(2.41421, 1.0, -1.41421);
- glTexCoord2f(1.0, 0.0); glVertex3f(2.41421, -1.0, -1.41421);
- glEnd();
- glutSwapBuffers();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(60.0, 1.0*(GLfloat)w/(GLfloat)h, 1.0, 30.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -3.6);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-int
-main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
- glutCreateWindow("checker");
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/clip.c b/progs/redbook/clip.c
deleted file mode 100644
index 85c464720d..0000000000
--- a/progs/redbook/clip.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * clip.c
- * This program demonstrates arbitrary clipping planes.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_FLAT);
-}
-
-static void display(void)
-{
- GLdouble eqn[4] = {0.0, 1.0, 0.0, 0.0};
- GLdouble eqn2[4] = {1.0, 0.0, 0.0, 0.0};
-
- glClear(GL_COLOR_BUFFER_BIT);
-
- glColor3f (1.0, 1.0, 1.0);
- glPushMatrix();
- glTranslatef (0.0, 0.0, -5.0);
-
-/* clip lower half -- y < 0 */
- glClipPlane (GL_CLIP_PLANE0, eqn);
- glEnable (GL_CLIP_PLANE0);
-/* clip left half -- x < 0 */
- glClipPlane (GL_CLIP_PLANE1, eqn2);
- glEnable (GL_CLIP_PLANE1);
-
- glRotatef (90.0, 1.0, 0.0, 0.0);
- glutWireSphere(1.0, 20, 16);
- glPopMatrix();
-
- glFlush ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
- glMatrixMode (GL_MODELVIEW);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/colormat.c b/progs/redbook/colormat.c
deleted file mode 100644
index d77fcb1ed4..0000000000
--- a/progs/redbook/colormat.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * colormat.c
- * After initialization, the program will be in
- * ColorMaterial mode. Interaction: pressing the
- * mouse buttons will change the diffuse reflection values.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-GLfloat diffuseMaterial[4] = { 0.5, 0.5, 0.5, 1.0 };
-
-/* Initialize material property, light source, lighting model,
- * and depth buffer.
- */
-static void init(void)
-{
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
-
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_SMOOTH);
- glEnable(GL_DEPTH_TEST);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuseMaterial);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialf(GL_FRONT, GL_SHININESS, 25.0);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-
- glColorMaterial(GL_FRONT, GL_DIFFUSE);
- glEnable(GL_COLOR_MATERIAL);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glutSolidSphere(1.0, 20, 16);
- glFlush ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho (-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w,
- 1.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0);
- else
- glOrtho (-1.5*(GLfloat)w/(GLfloat)h,
- 1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5, -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED2 */
-static void mouse(int button, int state, int x, int y)
-{
- switch (button) {
- case GLUT_LEFT_BUTTON:
- if (state == GLUT_DOWN) {
- diffuseMaterial[0] += 0.1;
- if (diffuseMaterial[0] > 1.0)
- diffuseMaterial[0] = 0.0;
- glColor4fv(diffuseMaterial);
- glutPostRedisplay();
- }
- break;
- case GLUT_MIDDLE_BUTTON:
- if (state == GLUT_DOWN) {
- diffuseMaterial[1] += 0.1;
- if (diffuseMaterial[1] > 1.0)
- diffuseMaterial[1] = 0.0;
- glColor4fv(diffuseMaterial);
- glutPostRedisplay();
- }
- break;
- case GLUT_RIGHT_BUTTON:
- if (state == GLUT_DOWN) {
- diffuseMaterial[2] += 0.1;
- if (diffuseMaterial[2] > 1.0)
- diffuseMaterial[2] = 0.0;
- glColor4fv(diffuseMaterial);
- glutPostRedisplay();
- }
- break;
- default:
- break;
- }
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutMouseFunc(mouse);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/combiner.c b/progs/redbook/combiner.c
deleted file mode 100644
index 7682e0c032..0000000000
--- a/progs/redbook/combiner.c
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* combiner.c
- * This program renders a variety of quads showing different
- * effects of texture combiner functions.
- *
- * The first row renders an untextured polygon (so you can
- * compare the fragment colors) and then the 2 textures.
- * The second row shows several different combiner functions
- * on a single texture: replace, modulate, add, add-signed,
- * and subtract.
- * The third row shows the interpolate combiner function
- * on a single texture with a constant color/alpha value,
- * varying the amount of interpolation.
- * The fourth row uses multitexturing with two textures
- * and different combiner functions.
- * The fifth row are some combiner experiments: using the
- * scaling factor and reversing the order of subtraction
- * for a combination function.
- */
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#define imageWidth 8
-#define imageHeight 8
-/* arrays for two textures */
-static GLubyte image0[imageHeight][imageWidth][4];
-static GLubyte image1[imageHeight][imageWidth][4];
-
-static GLuint texName[4];
-
-static void makeImages(void)
-{
- int i, j, c;
- for (i = 0; i < imageHeight; i++) {
- for (j = 0; j < imageWidth; j++) {
- c = ((i&2)==0)*255; /* horiz b & w stripes */
- image0[i][j][0] = (GLubyte) c;
- image0[i][j][1] = (GLubyte) c;
- image0[i][j][2] = (GLubyte) c;
- image0[i][j][3] = (GLubyte) 255;
- c = ((j&4)!=0)*128; /* wider vertical 50% cyan and black stripes */
- image1[i][j][0] = (GLubyte) 0;
- image1[i][j][1] = (GLubyte) c;
- image1[i][j][2] = (GLubyte) c;
- image1[i][j][3] = (GLubyte) 255;
- }
- }
-}
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel(GL_SMOOTH);
-
- makeImages();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- glGenTextures(4, texName);
-
- glBindTexture(GL_TEXTURE_2D, texName[0]);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, imageWidth, imageHeight,
- 0, GL_RGBA, GL_UNSIGNED_BYTE, image0);
-
- glBindTexture(GL_TEXTURE_2D, texName[1]);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, imageWidth, imageHeight,
- 0, GL_RGBA, GL_UNSIGNED_BYTE, image1);
-
-/* smooth-shaded polygon with multiple texture coordinates */
- glNewList (1, GL_COMPILE);
- glBegin(GL_QUADS);
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0.0, 0.0);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, 0.0);
- glColor3f (0.5, 1.0, 0.25);
- glVertex3f(0.0, 0.0, 0.0);
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0.0, 2.0);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.0, 2.0);
- glColor3f (1.0, 1.0, 1.0);
- glVertex3f(0.0, 1.0, 0.0);
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 2.0, 2.0);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 2.0, 2.0);
- glColor3f (1.0, 1.0, 1.0);
- glVertex3f(1.0, 1.0, 0.0);
- glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 2.0, 0.0);
- glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 2.0, 0.0);
- glColor3f (1.0, 0.5, 0.25);
- glVertex3f(1.0, 0.0, 0.0);
- glEnd();
- glEndList ();
-}
-
-static void display(void)
-{
- static GLfloat constColor[4] = {0.0, 0.0, 0.0, 0.0}; /* for use as constant texture color */
-
- glClear(GL_COLOR_BUFFER_BIT);
-
- glDisable(GL_TEXTURE_2D); /* untextured polygon--see the "fragment" colors */
- glPushMatrix();
- glTranslatef(0.0, 5.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glEnable(GL_TEXTURE_2D);
-/* draw ordinary textured polys; 1 texture unit; combine mode disabled */
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- glPushMatrix();
- glBindTexture(GL_TEXTURE_2D, texName[0]);
- glTranslatef(1.0, 5.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glPushMatrix();
- glBindTexture(GL_TEXTURE_2D, texName[1]);
- glTranslatef(2.0, 5.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
-/* different combine modes enabled; 1 texture unit
- * defaults are:
- * glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE);
- * glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
- * glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PREVIOUS_ARB);
- * glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);
- */
- glBindTexture(GL_TEXTURE_2D, texName[0]);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE);
- glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE);
- glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
- glPushMatrix();
- glTranslatef(1.0, 4.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE);
- glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PREVIOUS_ARB);
- glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);
- glPushMatrix();
- glTranslatef(2.0, 4.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_ADD);
- glPushMatrix();
- glTranslatef(3.0, 4.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_ADD_SIGNED_ARB);
- glPushMatrix();
- glTranslatef(4.0, 4.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_SUBTRACT_ARB);
- glPushMatrix();
- glTranslatef(5.0, 4.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
-/* interpolate combine with constant color; 1 texture unit
- * use different alpha values for constant color
- * defaults are:
- * glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE);
- * glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
- * glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PREVIOUS_ARB);
- * glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);
- * glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_CONSTANT_ARB);
- * glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB, GL_SRC_ALPHA);
- */
- constColor[3] = 0.2;
- glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, constColor);
- glBindTexture(GL_TEXTURE_2D, texName[0]);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_INTERPOLATE_ARB);
- glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE);
- glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
- glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PREVIOUS_ARB);
- glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);
- glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_CONSTANT_ARB);
- glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB, GL_SRC_ALPHA);
- glPushMatrix();
- glTranslatef(1.0, 3.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- constColor[3] = 0.4;
- glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, constColor);
- glPushMatrix();
- glTranslatef(2.0, 3.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- constColor[3] = 0.6;
- glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, constColor);
- glPushMatrix();
- glTranslatef(3.0, 3.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- constColor[3] = 0.8;
- glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, constColor);
- glPushMatrix();
- glTranslatef(4.0, 3.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
-/* combine textures 0 & 1
- * defaults are:
- * glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE);
- * glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
- * glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PREVIOUS_ARB);
- * glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);
- */
-
- glActiveTextureARB (GL_TEXTURE0_ARB);
- glEnable (GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D, texName[0]);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
- glActiveTextureARB (GL_TEXTURE1_ARB);
- glEnable (GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D, texName[1]);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE);
- glPushMatrix();
- glTranslatef(1.0, 2.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- /* try different combiner modes of texture unit 1 */
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE);
- glPushMatrix();
- glTranslatef(2.0, 2.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_ADD);
- glPushMatrix();
- glTranslatef(3.0, 2.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_ADD_SIGNED_ARB);
- glPushMatrix();
- glTranslatef(4.0, 2.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_SUBTRACT_ARB);
- glPushMatrix();
- glTranslatef(5.0, 2.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
-/* some experiments */
-
-/* see the effect of RGB_SCALE */
- glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_ARB, 2.0);
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE);
- glPushMatrix();
- glTranslatef(1.0, 1.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE);
- glPushMatrix();
- glTranslatef(2.0, 1.0, 0.0);
- glCallList(1);
- glPopMatrix();
- glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_ARB, 1.0);
-
-/* using SOURCE0 and SOURCE1, reverse the order of subtraction Arg1-Arg0 */
-
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE_ARB);
- glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_SUBTRACT_ARB);
- glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS_ARB);
- glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);
- glTexEnvf(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_TEXTURE);
- glTexEnvf(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);
- glPushMatrix();
- glTranslatef(5.0, 1.0, 0.0);
- glCallList(1);
- glPopMatrix();
-
- glActiveTextureARB (GL_TEXTURE1_ARB); /* deactivate multitexturing */
- glDisable (GL_TEXTURE_2D);
- glActiveTextureARB (GL_TEXTURE0_ARB); /* activate single texture unit */
-
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluOrtho2D(0.0, 7.0, 0.0, 7.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void keyboard (unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(400, 400);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- glewInit();
- init();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/convolution.c b/progs/redbook/convolution.c
deleted file mode 100644
index c04a8727a7..0000000000
--- a/progs/redbook/convolution.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * convolution.c
- * Use various 2D convolutions filters to find edges in an image.
- *
- */
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static GLuint bswap(GLuint x)
-{
- const GLuint ui = 1;
- const GLubyte *ubp = (const GLubyte *) &ui;
- if (*ubp == 1) {
- /* we're on little endiang so byteswap x */
- GLsizei y = ((x >> 24)
- | ((x >> 8) & 0xff00)
- | ((x << 8) & 0xff0000)
- | ((x << 24) & 0xff000000));
- return y;
- }
- else {
- return x;
- }
-}
-
-
-static GLubyte *
-readImage( const char* filename, GLsizei* width, GLsizei *height )
-{
- int n;
- GLubyte* pixels;
- size_t num_read;
-
- FILE* infile = fopen( filename, "rb" );
-
- if ( !infile ) {
- fprintf( stderr, "Unable to open file '%s'\n", filename );
- exit(1);
- }
-
- num_read = fread( width, sizeof( GLsizei ), 1, infile );
- assert(num_read == 1);
- num_read = fread( height, sizeof( GLsizei ), 1, infile );
- assert(num_read == 1);
-
- *width = bswap(*width);
- *height = bswap(*height);
-
- assert(*width > 0);
- assert(*height > 0);
-
- n = 3 * (*width) * (*height);
-
- pixels = (GLubyte *) malloc( n * sizeof( GLubyte ));
- if ( !pixels ) {
- fprintf( stderr, "Unable to malloc() bytes for pixels\n" );
- fclose( infile );
- return NULL;
- }
-
- num_read = fread( pixels, sizeof( GLubyte ), n, infile );
- assert(num_read == n);
-
- fclose( infile );
-
- return pixels;
-}
-
-
-GLubyte *pixels;
-GLsizei width, height;
-
-GLfloat horizontal[3][3] = {
- { 0, -1, 0 },
- { 0, 1, 0 },
- { 0, 0, 0 }
-};
-
-GLfloat vertical[3][3] = {
- { 0, 0, 0 },
- { -1, 1, 0 },
- { 0, 0, 0 }
-};
-
-GLfloat laplacian[3][3] = {
- { -0.125, -0.125, -0.125 },
- { -0.125, 1.0 , -0.125 },
- { -0.125, -0.125, -0.125 },
-};
-
-
-static void init(void)
-{
- if (!glutExtensionSupported("GL_ARB_imaging")) {
- fprintf(stderr, "Sorry, this program requires GL_ARB_imaging.\n");
- exit(1);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glClearColor(0.0, 0.0, 0.0, 0.0);
-
- printf("Using the horizontal filter\n");
- glConvolutionFilter2D(GL_CONVOLUTION_2D, GL_LUMINANCE,
- 3, 3, GL_LUMINANCE, GL_FLOAT, horizontal);
- glEnable(GL_CONVOLUTION_2D);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
- glRasterPos2i( 1, 1);
- glDrawPixels(width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels);
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, w, 0, h, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'h' :
- printf("Using a horizontal filter\n");
- glConvolutionFilter2D(GL_CONVOLUTION_2D, GL_LUMINANCE, 3, 3,
- GL_LUMINANCE, GL_FLOAT, horizontal);
- break;
-
- case 'v' :
- printf("Using the vertical filter\n");
- glConvolutionFilter2D(GL_CONVOLUTION_2D, GL_LUMINANCE, 3, 3,
- GL_LUMINANCE, GL_FLOAT, vertical);
- break;
-
- case 'l' :
- printf("Using the laplacian filter\n");
- glConvolutionFilter2D(GL_CONVOLUTION_2D, GL_LUMINANCE, 3, 3,
- GL_LUMINANCE, GL_FLOAT, laplacian);
- break;
-
- case 27:
- exit(0);
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- pixels = readImage("leeds.bin", &width, &height);
-
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
- glutInitWindowSize(width, height);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- glewInit();
- init();
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/cube.c b/progs/redbook/cube.c
deleted file mode 100644
index 3c6becb215..0000000000
--- a/progs/redbook/cube.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * cube.c
- * This program demonstrates a single modeling transformation,
- * glScalef() and a single viewing transformation, gluLookAt().
- * A wireframe cube is rendered.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_FLAT);
-}
-
-static void display(void)
-{
- glClear (GL_COLOR_BUFFER_BIT);
- glColor3f (1.0, 1.0, 1.0);
- glLoadIdentity (); /* clear the matrix */
- /* viewing transformation */
- gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
- glScalef (1.0, 2.0, 1.0); /* modeling transformation */
- glutWireCube (1.0);
- glFlush ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
- glMatrixMode (GL_MODELVIEW);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/cubemap.c b/progs/redbook/cubemap.c
deleted file mode 100644
index 92026c7089..0000000000
--- a/progs/redbook/cubemap.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* cubemap.c
- *
- * This program demonstrates cube map textures.
- * Six different colored checker board textures are
- * created and applied to a lit sphere.
- *
- * Pressing the 'f' and 'b' keys translate the viewer
- * forward and backward.
- */
-
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#define imageSize 4
-static GLubyte image1[imageSize][imageSize][4];
-static GLubyte image2[imageSize][imageSize][4];
-static GLubyte image3[imageSize][imageSize][4];
-static GLubyte image4[imageSize][imageSize][4];
-static GLubyte image5[imageSize][imageSize][4];
-static GLubyte image6[imageSize][imageSize][4];
-
-static GLdouble ztrans = 0.0;
-
-static void makeImages(void)
-{
- int i, j, c;
-
- for (i = 0; i < imageSize; i++) {
- for (j = 0; j < imageSize; j++) {
- c = ( ((i & 0x1) == 0) ^ ((j & 0x1) == 0) ) * 255;
- image1[i][j][0] = (GLubyte) c;
- image1[i][j][1] = (GLubyte) c;
- image1[i][j][2] = (GLubyte) c;
- image1[i][j][3] = (GLubyte) 255;
-
- image2[i][j][0] = (GLubyte) c;
- image2[i][j][1] = (GLubyte) c;
- image2[i][j][2] = (GLubyte) 0;
- image2[i][j][3] = (GLubyte) 255;
-
- image3[i][j][0] = (GLubyte) c;
- image3[i][j][1] = (GLubyte) 0;
- image3[i][j][2] = (GLubyte) c;
- image3[i][j][3] = (GLubyte) 255;
-
- image4[i][j][0] = (GLubyte) 0;
- image4[i][j][1] = (GLubyte) c;
- image4[i][j][2] = (GLubyte) c;
- image4[i][j][3] = (GLubyte) 255;
-
- image5[i][j][0] = (GLubyte) 255;
- image5[i][j][1] = (GLubyte) c;
- image5[i][j][2] = (GLubyte) c;
- image5[i][j][3] = (GLubyte) 255;
-
- image6[i][j][0] = (GLubyte) c;
- image6[i][j][1] = (GLubyte) c;
- image6[i][j][2] = (GLubyte) 255;
- image6[i][j][3] = (GLubyte) 255;
- }
- }
-}
-
-static void init(void)
-{
- GLfloat diffuse[4] = {1.0, 1.0, 1.0, 1.0};
-
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glEnable(GL_DEPTH_TEST);
- glShadeModel(GL_SMOOTH);
-
- makeImages();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexParameteri(GL_TEXTURE_CUBE_MAP_EXT, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_CUBE_MAP_EXT, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_CUBE_MAP_EXT, GL_TEXTURE_WRAP_R, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_CUBE_MAP_EXT, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_CUBE_MAP_EXT, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT, 0, GL_RGBA, imageSize,
- imageSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, image1);
- glTexImage2D(GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT, 0, GL_RGBA, imageSize,
- imageSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, image4);
- glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT, 0, GL_RGBA, imageSize,
- imageSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, image2);
- glTexImage2D(GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT, 0, GL_RGBA, imageSize,
- imageSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, image5);
- glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT, 0, GL_RGBA, imageSize,
- imageSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, image3);
- glTexImage2D(GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT, 0, GL_RGBA, imageSize,
- imageSize, 0, GL_RGBA, GL_UNSIGNED_BYTE, image6);
- glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_NORMAL_MAP_EXT);
- glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_NORMAL_MAP_EXT);
- glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_NORMAL_MAP_EXT);
- glEnable(GL_TEXTURE_GEN_S);
- glEnable(GL_TEXTURE_GEN_T);
- glEnable(GL_TEXTURE_GEN_R);
-
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-
- glEnable(GL_TEXTURE_CUBE_MAP_EXT);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
- glMaterialfv (GL_FRONT, GL_DIFFUSE, diffuse);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix ();
- glTranslatef (0.0, 0.0, ztrans);
- glutSolidSphere (5.0, 20, 10);
- glPopMatrix ();
- glutSwapBuffers();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(40.0, (GLfloat) w/(GLfloat) h, 1.0, 300.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -20.0);
-}
-
-static void keyboard (unsigned char key, int x, int y)
-{
- switch (key) {
- case 'f':
- ztrans = ztrans - 0.2;
- glutPostRedisplay();
- break;
- case 'b':
- ztrans = ztrans + 0.2;
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(400, 400);
- glutInitWindowPosition(100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/depthcue.c b/progs/redbook/depthcue.c
deleted file mode 100644
index d4b604baf1..0000000000
--- a/progs/redbook/depthcue.c
+++ /dev/null
@@ -1,115 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * depthcue.c
- * This program draws a wireframe model, which uses
- * intensity (brightness) to give clues to distance.
- * Fog is used to achieve this effect.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/* Initialize linear fog for depth cueing.
- */
-static void myinit(void)
-{
- GLfloat fogColor[4] = {0.0, 0.0, 0.0, 1.0};
-
- glEnable(GL_FOG);
- glFogi (GL_FOG_MODE, GL_LINEAR);
- glHint (GL_FOG_HINT, GL_NICEST); /* per pixel */
- glFogf (GL_FOG_START, 3.0);
- glFogf (GL_FOG_END, 5.0);
- glFogfv (GL_FOG_COLOR, fogColor);
- glClearColor(0.0, 0.0, 0.0, 1.0);
-
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
- glShadeModel(GL_FLAT);
-}
-
-/* display() draws an icosahedron.
- */
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glColor3f (1.0, 1.0, 1.0);
- glutWireIcosahedron();
- glFlush();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective (45.0, (GLfloat) w/(GLfloat) h, 3.0, 5.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity ();
- glTranslatef (0.0, 0.0, -4.0); /* move object into view */
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutCreateWindow(argv[0]);
- myinit();
- glutReshapeFunc(myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/dof.c b/progs/redbook/dof.c
deleted file mode 100644
index 8558f02dee..0000000000
--- a/progs/redbook/dof.c
+++ /dev/null
@@ -1,251 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * dof.c
- * This program demonstrates use of the accumulation buffer to
- * create an out-of-focus depth-of-field effect. The teapots
- * are drawn several times into the accumulation buffer. The
- * viewing volume is jittered, except at the focal point, where
- * the viewing volume is at the same position, each time. In
- * this case, the gold teapot remains in focus.
- */
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glut.h>
-#include "jitter.h"
-
-#define PI_ 3.14159265358979323846
-
-/* accFrustum()
- * The first 6 arguments are identical to the glFrustum() call.
- *
- * pixdx and pixdy are anti-alias jitter in pixels.
- * Set both equal to 0.0 for no anti-alias jitter.
- * eyedx and eyedy are depth-of field jitter in pixels.
- * Set both equal to 0.0 for no depth of field effects.
- *
- * focus is distance from eye to plane in focus.
- * focus must be greater than, but not equal to 0.0.
- *
- * Note that accFrustum() calls glTranslatef(). You will
- * probably want to insure that your ModelView matrix has been
- * initialized to identity before calling accFrustum().
- */
-static void accFrustum(GLdouble left, GLdouble right, GLdouble bottom,
- GLdouble top, GLdouble nnear, GLdouble ffar, GLdouble pixdx,
- GLdouble pixdy, GLdouble eyedx, GLdouble eyedy, GLdouble focus)
-{
- GLdouble xwsize, ywsize;
- GLdouble dx, dy;
- GLint viewport[4];
-
- glGetIntegerv (GL_VIEWPORT, viewport);
-
- xwsize = right - left;
- ywsize = top - bottom;
-
- dx = -(pixdx*xwsize/(GLdouble) viewport[2] + eyedx*nnear/focus);
- dy = -(pixdy*ywsize/(GLdouble) viewport[3] + eyedy*nnear/focus);
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum (left + dx, right + dx, bottom + dy, top + dy, nnear, ffar);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef (-eyedx, -eyedy, 0.0);
-}
-
-/* accPerspective()
- *
- * The first 4 arguments are identical to the gluPerspective() call.
- * pixdx and pixdy are anti-alias jitter in pixels.
- * Set both equal to 0.0 for no anti-alias jitter.
- * eyedx and eyedy are depth-of field jitter in pixels.
- * Set both equal to 0.0 for no depth of field effects.
- *
- * focus is distance from eye to plane in focus.
- * focus must be greater than, but not equal to 0.0.
- *
- * Note that accPerspective() calls accFrustum().
- */
-static void accPerspective(GLdouble fovy, GLdouble aspect,
- GLdouble nnear, GLdouble ffar, GLdouble pixdx, GLdouble pixdy,
- GLdouble eyedx, GLdouble eyedy, GLdouble focus)
-{
- GLdouble fov2,left,right,bottom,top;
-
- fov2 = ((fovy*PI_) / 180.0) / 2.0;
-
- top = nnear / (cos(fov2) / sin(fov2));
- bottom = -top;
-
- right = top * aspect;
- left = -right;
-
- accFrustum (left, right, bottom, top, nnear, ffar,
- pixdx, pixdy, eyedx, eyedy, focus);
-}
-
-static void myinit(void)
-{
- GLfloat ambient[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat position[] = { 0.0, 3.0, 3.0, 0.0 };
-
- GLfloat lmodel_ambient[] = { 0.2, 0.2, 0.2, 1.0 };
- GLfloat local_view[] = { 0.0 };
-
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
-
- 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_LOCAL_VIEWER, local_view);
-
- glFrontFace (GL_CW);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
-
- glMatrixMode (GL_MODELVIEW);
- glLoadIdentity ();
-
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClearAccum(0.0, 0.0, 0.0, 0.0);
-}
-
-static void renderTeapot (GLfloat x, GLfloat y, GLfloat z,
- GLfloat ambr, GLfloat ambg, GLfloat ambb,
- GLfloat difr, GLfloat difg, GLfloat difb,
- GLfloat specr, GLfloat specg, GLfloat specb, GLfloat shine)
-{
- float mat[4];
-
- glPushMatrix();
- glTranslatef (x, y, z);
- mat[0] = ambr; mat[1] = ambg; mat[2] = ambb; mat[3] = 1.0;
- glMaterialfv (GL_FRONT, GL_AMBIENT, mat);
- mat[0] = difr; mat[1] = difg; mat[2] = difb;
- glMaterialfv (GL_FRONT, GL_DIFFUSE, mat);
- mat[0] = specr; mat[1] = specg; mat[2] = specb;
- glMaterialfv (GL_FRONT, GL_SPECULAR, mat);
- glMaterialf (GL_FRONT, GL_SHININESS, shine*128.0);
- glutSolidTeapot(0.5);
- glPopMatrix();
-}
-
-/* display() draws 5 teapots into the accumulation buffer
- * several times; each time with a jittered perspective.
- * The focal point is at z = 5.0, so the gold teapot will
- * stay in focus. The amount of jitter is adjusted by the
- * magnitude of the accPerspective() jitter; in this example, 0.33.
- * In this example, the teapots are drawn 8 times. See jitter.h
- */
-static void display(void)
-{
- int jitter;
- GLint viewport[4];
-
- glGetIntegerv (GL_VIEWPORT, viewport);
- glClear(GL_ACCUM_BUFFER_BIT);
-
- for (jitter = 0; jitter < 8; jitter++) {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- accPerspective (45.0,
- (GLdouble) viewport[2]/(GLdouble) viewport[3],
- 1.0, 15.0, 0.0, 0.0,
- 0.33*j8[jitter].x, 0.33*j8[jitter].y, 5.0);
-/* ruby, gold, silver, emerald, and cyan teapots */
- renderTeapot (-1.1, -0.5, -4.5, 0.1745, 0.01175, 0.01175,
- 0.61424, 0.04136, 0.04136, 0.727811, 0.626959, 0.626959, 0.6);
- renderTeapot (-0.5, -0.5, -5.0, 0.24725, 0.1995, 0.0745,
- 0.75164, 0.60648, 0.22648, 0.628281, 0.555802, 0.366065, 0.4);
- renderTeapot (0.2, -0.5, -5.5, 0.19225, 0.19225, 0.19225,
- 0.50754, 0.50754, 0.50754, 0.508273, 0.508273, 0.508273, 0.4);
- renderTeapot (1.0, -0.5, -6.0, 0.0215, 0.1745, 0.0215,
- 0.07568, 0.61424, 0.07568, 0.633, 0.727811, 0.633, 0.6);
- renderTeapot (1.8, -0.5, -6.5, 0.0, 0.1, 0.06, 0.0, 0.50980392,
- 0.50980392, 0.50196078, 0.50196078, 0.50196078, .25);
- glAccum (GL_ACCUM, 0.125);
- }
-
- glAccum (GL_RETURN, 1.0);
- glFlush();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, depth buffer, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB
- | GLUT_ACCUM | GLUT_DEPTH);
- glutCreateWindow (argv[0]);
- myinit();
- glutReshapeFunc(myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/double.c b/progs/redbook/double.c
deleted file mode 100644
index c4ead224dc..0000000000
--- a/progs/redbook/double.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * double.c
- * This is a simple double buffered program.
- * Pressing the left mouse button rotates the rectangle.
- * Pressing the middle mouse button stops the rotation.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-static GLfloat spin = 0.0;
-static GLdouble t0 = 0.;
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
- glPushMatrix();
- glRotatef(spin, 0.0, 0.0, 1.0);
- glColor3f(1.0, 1.0, 1.0);
- glRectf(-25.0, -25.0, 25.0, 25.0);
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-static GLdouble gettime(void)
-{
- return (GLdouble)(glutGet(GLUT_ELAPSED_TIME)) / 1000.;
-}
-
-static void spinDisplay(void)
-{
- GLdouble t, dt;
- t = gettime();
- dt = t - t0;
- t0 = t;
- spin = spin + 120.0*dt;
- if (spin > 360.0)
- spin = spin - 360.0;
- glutPostRedisplay();
-}
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_FLAT);
-}
-
-static void reshape(int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED2 */
-static void mouse(int button, int state, int x, int y)
-{
- switch (button) {
- case GLUT_LEFT_BUTTON:
- if (state == GLUT_DOWN)
- {
- t0 = gettime();
- glutIdleFunc(spinDisplay);
- }
- break;
- case GLUT_MIDDLE_BUTTON:
- if (state == GLUT_DOWN)
- glutIdleFunc(NULL);
- break;
- default:
- break;
- }
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/*
- * Request double buffer display mode.
- * Register mouse input callback functions
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
- glutInitWindowSize (250, 250);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutMouseFunc(mouse);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/drawf.c b/progs/redbook/drawf.c
deleted file mode 100644
index 6c048be784..0000000000
--- a/progs/redbook/drawf.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * drawf.c
- * Draws the bitmapped letter F on the screen (several times).
- * This demonstrates use of the glBitmap() call.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-GLubyte rasters[24] = {
- 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00,
- 0xff, 0x00, 0xff, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0, 0x00,
- 0xff, 0xc0, 0xff, 0xc0};
-
-static void init(void)
-{
- glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
- glClearColor (0.0, 0.0, 0.0, 0.0);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3f (1.0, 1.0, 1.0);
- glRasterPos2i (20, 20);
- glBitmap (10, 12, 0.0, 0.0, 11.0, 0.0, rasters);
- glBitmap (10, 12, 0.0, 0.0, 11.0, 0.0, rasters);
- glBitmap (10, 12, 0.0, 0.0, 11.0, 0.0, rasters);
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho (0, w, 0, h, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- }
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(100, 100);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/feedback.c b/progs/redbook/feedback.c
deleted file mode 100644
index 3c8c8cc7ea..0000000000
--- a/progs/redbook/feedback.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * feedback.c
- * This program demonstrates use of OpenGL feedback. First,
- * a lighting environment is set up and a few lines are drawn.
- * Then feedback mode is entered, and the same lines are
- * drawn. The results in the feedback buffer are printed.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-/* Initialize lighting.
- */
-static void init(void)
-{
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-}
-
-/* Draw a few lines and two points, one of which will
- * be clipped. If in feedback mode, a passthrough token
- * is issued between the each primitive.
- */
-static void drawGeometry (GLenum mode)
-{
- glBegin (GL_LINE_STRIP);
- glNormal3f (0.0, 0.0, 1.0);
- glVertex3f (30.0, 30.0, 0.0);
- glVertex3f (50.0, 60.0, 0.0);
- glVertex3f (70.0, 40.0, 0.0);
- glEnd ();
- if (mode == GL_FEEDBACK)
- glPassThrough (1.0);
- glBegin (GL_POINTS);
- glVertex3f (-100.0, -100.0, -100.0); /* will be clipped */
- glEnd ();
- if (mode == GL_FEEDBACK)
- glPassThrough (2.0);
- glBegin (GL_POINTS);
- glNormal3f (0.0, 0.0, 1.0);
- glVertex3f (50.0, 50.0, 0.0);
- glEnd ();
-}
-
-/* Write contents of one vertex to stdout. */
-static void print3DcolorVertex (GLint size, GLint *count,
- GLfloat *buffer)
-{
- int i;
-
- printf (" ");
- for (i = 0; i < 7; i++) {
- printf ("%4.2f ", buffer[size-(*count)]);
- *count = *count - 1;
- }
- printf ("\n");
-}
-
-/* Write contents of entire buffer. (Parse tokens!) */
-static void printBuffer(GLint size, GLfloat *buffer)
-{
- GLint count;
- GLfloat token;
-
- count = size;
- while (count) {
- token = buffer[size-count]; count--;
- if (token == GL_PASS_THROUGH_TOKEN) {
- printf ("GL_PASS_THROUGH_TOKEN\n");
- printf (" %4.2f\n", buffer[size-count]);
- count--;
- }
- else if (token == GL_POINT_TOKEN) {
- printf ("GL_POINT_TOKEN\n");
- print3DcolorVertex (size, &count, buffer);
- }
- else if (token == GL_LINE_TOKEN) {
- printf ("GL_LINE_TOKEN\n");
- print3DcolorVertex (size, &count, buffer);
- print3DcolorVertex (size, &count, buffer);
- }
- else if (token == GL_LINE_RESET_TOKEN) {
- printf ("GL_LINE_RESET_TOKEN\n");
- print3DcolorVertex (size, &count, buffer);
- print3DcolorVertex (size, &count, buffer);
- }
- }
-}
-
-static void display(void)
-{
- GLfloat feedBuffer[1024];
- GLint size;
-
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- glOrtho (0.0, 100.0, 0.0, 100.0, 0.0, 1.0);
-
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
- drawGeometry (GL_RENDER);
-
- glFeedbackBuffer (1024, GL_3D_COLOR, feedBuffer);
- (void) glRenderMode (GL_FEEDBACK);
- drawGeometry (GL_FEEDBACK);
-
- size = glRenderMode (GL_RENDER);
- printBuffer (size, feedBuffer);
-
- glFinish();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-/* Main Loop */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (100, 100);
- glutInitWindowPosition (100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutDisplayFunc(display);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/fog.c b/progs/redbook/fog.c
deleted file mode 100644
index 4f4b8e3cc0..0000000000
--- a/progs/redbook/fog.c
+++ /dev/null
@@ -1,200 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/**
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * fog.c
- * This program draws 5 red teapots, each at a different
- * z distance from the eye, in different types of fog.
- * Pressing the left mouse button chooses between 3 types of
- * fog: exponential, exponential squared, and linear.
- * In this program, there is a fixed density value, as well
- * as fixed start and end values for the linear fog.
- */
-#include <stdlib.h>
-#include <math.h>
-#include <GL/glut.h>
-
-GLint fogMode;
-
-static void
-selectFog(int mode)
-{
- switch(mode) {
- case GL_LINEAR:
- glFogf(GL_FOG_START, 1.0);
- glFogf(GL_FOG_END, 5.0);
- /* falls through */
- case GL_EXP2:
- case GL_EXP:
- glFogi(GL_FOG_MODE, mode);
- glutPostRedisplay();
- break;
- case 0:
- exit(0);
- }
-}
-
-/* Initialize z-buffer, projection matrix, light source,
- * and lighting model. Do not specify a material property here.
- */
-static void
-myinit(void)
-{
- GLfloat position[] =
- {0.0, 3.0, 3.0, 0.0};
- GLfloat local_view[] =
- {0.0};
-
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
-
- glLightfv(GL_LIGHT0, GL_POSITION, position);
- glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, local_view);
-
- glFrontFace(GL_CW);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
- glEnable(GL_FOG);
- {
- GLfloat fogColor[4] =
- {0.5, 0.5, 0.5, 1.0};
-
- fogMode = GL_EXP;
- glFogi(GL_FOG_MODE, fogMode);
- glFogfv(GL_FOG_COLOR, fogColor);
- glFogf(GL_FOG_DENSITY, 0.35);
- glHint(GL_FOG_HINT, GL_DONT_CARE);
- glClearColor(0.5, 0.5, 0.5, 1.0);
- }
-}
-
-static void
-renderRedTeapot(GLfloat x, GLfloat y, GLfloat z)
-{
- float mat[4];
-
- glPushMatrix();
- glTranslatef(x, y, z);
- mat[0] = 0.1745;
- mat[1] = 0.01175;
- mat[2] = 0.01175;
- mat[3] = 1.0;
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat);
- mat[0] = 0.61424;
- mat[1] = 0.04136;
- mat[2] = 0.04136;
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat);
- mat[0] = 0.727811;
- mat[1] = 0.626959;
- mat[2] = 0.626959;
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat);
- glMaterialf(GL_FRONT, GL_SHININESS, 0.6 * 128.0);
- glutSolidTeapot(1.0);
- glPopMatrix();
-}
-
-/* display() draws 5 teapots at different z positions.
- */
-static void
-display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- renderRedTeapot(-4.0, -0.5, -1.0);
- renderRedTeapot(-2.0, -0.5, -2.0);
- renderRedTeapot(0.0, -0.5, -3.0);
- renderRedTeapot(2.0, -0.5, -4.0);
- renderRedTeapot(4.0, -0.5, -5.0);
- glFlush();
-}
-
-static void
-myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= (h * 3))
- glOrtho(-6.0, 6.0, -2.0 * ((GLfloat) h * 3) / (GLfloat) w,
- 2.0 * ((GLfloat) h * 3) / (GLfloat) w, 0.0, 10.0);
- else
- glOrtho(-6.0 * (GLfloat) w / ((GLfloat) h * 3),
- 6.0 * (GLfloat) w / ((GLfloat) h * 3), -2.0, 2.0, 0.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, depth buffer, and handle input events.
- */
-int
-main(int argc, char **argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(450, 150);
- glutCreateWindow(argv[0]);
- myinit();
- glutReshapeFunc(myReshape);
- glutDisplayFunc(display);
- glutCreateMenu(selectFog);
- glutAddMenuEntry("Fog EXP", GL_EXP);
- glutAddMenuEntry("Fog EXP2", GL_EXP2);
- glutAddMenuEntry("Fog LINEAR", GL_LINEAR);
- glutAddMenuEntry("Quit", 0);
- glutAttachMenu(GLUT_RIGHT_BUTTON);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/fogcoord.c b/progs/redbook/fogcoord.c
deleted file mode 100644
index 17ef7ae5f3..0000000000
--- a/progs/redbook/fogcoord.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * fogcoord.c
- *
- * This program demonstrates the use of explicit fog
- * coordinates. You can press the keyboard and change
- * the fog coordinate value at any vertex. You can
- * also switch between using explicit fog coordinates
- * and the default fog generation mode.
- *
- * Pressing the 'f' and 'b' keys move the viewer forward
- * and backwards.
- * Pressing 'c' initiates the default fog generation.
- * Pressing capital 'C' restores explicit fog coordinates.
- * Pressing '1', '2', '3', '8', '9', and '0' add or
- * subtract from the fog coordinate values at one of the
- * three vertices of the triangle.
- */
-
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include <math.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-static GLfloat f1, f2, f3;
-
-/* Initialize fog
- */
-static void init(void)
-{
- GLfloat fogColor[4] = {0.0, 0.25, 0.25, 1.0};
- f1 = 1.0f;
- f2 = 5.0f;
- f3 = 10.0f;
-
- glEnable(GL_FOG);
- glFogi (GL_FOG_MODE, GL_EXP);
- glFogfv (GL_FOG_COLOR, fogColor);
- glFogf (GL_FOG_DENSITY, 0.25);
- glHint (GL_FOG_HINT, GL_DONT_CARE);
- glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT);
- glClearColor(0.0, 0.25, 0.25, 1.0); /* fog color */
-}
-
-/* display() draws a triangle at an angle.
- */
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- glColor3f (1.0f, 0.75f, 0.0f);
- glBegin (GL_TRIANGLES);
- glFogCoordfEXT (f1);
- glVertex3f (2.0f, -2.0f, 0.0f);
- glFogCoordfEXT (f2);
- glVertex3f (-2.0f, 0.0f, -5.0f);
- glFogCoordfEXT (f3);
- glVertex3f (0.0f, 2.0f, -10.0f);
- glEnd();
-
- glutSwapBuffers();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective (45.0, 1.0, 0.25, 25.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity ();
- glTranslatef (0.0, 0.0, -5.0);
-}
-
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'c':
- glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
- glutPostRedisplay();
- break;
- case 'C':
- glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT);
- glutPostRedisplay();
- break;
- case '1':
- f1 = f1 + 0.25;
- glutPostRedisplay();
- break;
- case '2':
- f2 = f2 + 0.25;
- glutPostRedisplay();
- break;
- case '3':
- f3 = f3 + 0.25;
- glutPostRedisplay();
- break;
- case '8':
- if (f1 > 0.25) {
- f1 = f1 - 0.25;
- glutPostRedisplay();
- }
- break;
- case '9':
- if (f2 > 0.25) {
- f2 = f2 - 0.25;
- glutPostRedisplay();
- }
- break;
- case '0':
- if (f3 > 0.25) {
- f3 = f3 - 0.25;
- glutPostRedisplay();
- }
- break;
- case 'b':
- glMatrixMode (GL_MODELVIEW);
- glTranslatef (0.0, 0.0, -0.25);
- glutPostRedisplay();
- break;
- case 'f':
- glMatrixMode (GL_MODELVIEW);
- glTranslatef (0.0, 0.0, 0.25);
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, depth buffer, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
- glutInitWindowSize(500, 500);
- glutCreateWindow(argv[0]);
- glewInit();
- init();
- glutReshapeFunc (reshape);
- glutKeyboardFunc (keyboard);
- glutDisplayFunc (display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/fogindex.c b/progs/redbook/fogindex.c
deleted file mode 100644
index 6b5aa353ca..0000000000
--- a/progs/redbook/fogindex.c
+++ /dev/null
@@ -1,152 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * fogindex.c
- * This program demonstrates fog in color index mode.
- * Three cones are drawn at different z values in a linear
- * fog. 32 contiguous colors (from 16 to 47) are loaded
- * with a color ramp.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/* Initialize color map and fog. Set screen clear color
- * to end of color ramp.
- */
-#define NUM_COLORS 32
-#define RAMPSTART 16
-
-static void
-myinit(void)
-{
- int i;
-
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
- for (i = 0; i < NUM_COLORS; i++) {
- GLfloat shade;
- shade = (GLfloat) (NUM_COLORS - i) / (GLfloat) NUM_COLORS;
- glutSetColor(16 + i, shade, shade, shade);
- }
- glEnable(GL_FOG);
-
- glFogi(GL_FOG_MODE, GL_LINEAR);
- glFogi(GL_FOG_INDEX, NUM_COLORS);
- glFogf(GL_FOG_START, 0.0);
- glFogf(GL_FOG_END, 4.0);
- glHint(GL_FOG_HINT, GL_NICEST);
- glClearIndex((GLfloat) (NUM_COLORS + RAMPSTART - 1));
-}
-
-/* display() renders 3 cones at different z positions.
- */
-static void
-display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix();
- glTranslatef(-1.0, -1.0, -1.0);
- glRotatef(-90.0, 1.0, 0.0, 0.0);
- glIndexi(RAMPSTART);
- glutSolidCone(1.0, 2.0, 10, 10);
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef(0.0, -1.0, -2.25);
- glRotatef(-90.0, 1.0, 0.0, 0.0);
- glIndexi(RAMPSTART);
- glutSolidCone(1.0, 2.0, 10, 10);
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef(1.0, -1.0, -3.5);
- glRotatef(-90.0, 1.0, 0.0, 0.0);
- glIndexi(RAMPSTART);
- glutSolidCone(1.0, 2.0, 10, 10);
- glPopMatrix();
- glFlush();
-}
-
-static void
-myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho(-2.0, 2.0, -2.0 * (GLfloat) h / (GLfloat) w,
- 2.0 * (GLfloat) h / (GLfloat) w, 0.0, 10.0);
- else
- glOrtho(-2.0 * (GLfloat) w / (GLfloat) h,
- 2.0 * (GLfloat) w / (GLfloat) h, -2.0, 2.0, 0.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, depth buffer, and handle input events.
- */
-int
-main(int argc, char **argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_INDEX | GLUT_DEPTH);
- glutCreateWindow(argv[0]);
- myinit();
- glutReshapeFunc(myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/font.c b/progs/redbook/font.c
deleted file mode 100644
index c7a1035aa9..0000000000
--- a/progs/redbook/font.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * font.c
- *
- * Draws some text in a bitmapped font. Uses glBitmap()
- * and other pixel routines. Also demonstrates use of
- * display lists.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <string.h>
-
-GLubyte space[] =
-{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
-
-GLubyte letters[][13] = {
-{0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0x66, 0x3c, 0x18},
-{0x00, 0x00, 0xfe, 0xc7, 0xc3, 0xc3, 0xc7, 0xfe, 0xc7, 0xc3, 0xc3, 0xc7, 0xfe},
-{0x00, 0x00, 0x7e, 0xe7, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe7, 0x7e},
-{0x00, 0x00, 0xfc, 0xce, 0xc7, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc7, 0xce, 0xfc},
-{0x00, 0x00, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xfc, 0xc0, 0xc0, 0xc0, 0xc0, 0xff},
-{0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xfc, 0xc0, 0xc0, 0xc0, 0xff},
-{0x00, 0x00, 0x7e, 0xe7, 0xc3, 0xc3, 0xcf, 0xc0, 0xc0, 0xc0, 0xc0, 0xe7, 0x7e},
-{0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3},
-{0x00, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e},
-{0x00, 0x00, 0x7c, 0xee, 0xc6, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06},
-{0x00, 0x00, 0xc3, 0xc6, 0xcc, 0xd8, 0xf0, 0xe0, 0xf0, 0xd8, 0xcc, 0xc6, 0xc3},
-{0x00, 0x00, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0},
-{0x00, 0x00, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xdb, 0xff, 0xff, 0xe7, 0xc3},
-{0x00, 0x00, 0xc7, 0xc7, 0xcf, 0xcf, 0xdf, 0xdb, 0xfb, 0xf3, 0xf3, 0xe3, 0xe3},
-{0x00, 0x00, 0x7e, 0xe7, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xe7, 0x7e},
-{0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xfe, 0xc7, 0xc3, 0xc3, 0xc7, 0xfe},
-{0x00, 0x00, 0x3f, 0x6e, 0xdf, 0xdb, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x66, 0x3c},
-{0x00, 0x00, 0xc3, 0xc6, 0xcc, 0xd8, 0xf0, 0xfe, 0xc7, 0xc3, 0xc3, 0xc7, 0xfe},
-{0x00, 0x00, 0x7e, 0xe7, 0x03, 0x03, 0x07, 0x7e, 0xe0, 0xc0, 0xc0, 0xe7, 0x7e},
-{0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff},
-{0x00, 0x00, 0x7e, 0xe7, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3},
-{0x00, 0x00, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3},
-{0x00, 0x00, 0xc3, 0xe7, 0xff, 0xff, 0xdb, 0xdb, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3},
-{0x00, 0x00, 0xc3, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0xc3},
-{0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0xc3},
-{0x00, 0x00, 0xff, 0xc0, 0xc0, 0x60, 0x30, 0x7e, 0x0c, 0x06, 0x03, 0x03, 0xff}
-};
-
-GLuint fontOffset;
-
-static void makeRasterFont(void)
-{
- GLuint i, j;
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- fontOffset = glGenLists (128);
- for (i = 0,j = 'A'; i < 26; i++,j++) {
- glNewList(fontOffset + j, GL_COMPILE);
- glBitmap(8, 13, 0.0, 2.0, 10.0, 0.0, letters[i]);
- glEndList();
- }
- glNewList(fontOffset + ' ', GL_COMPILE);
- glBitmap(8, 13, 0.0, 2.0, 10.0, 0.0, space);
- glEndList();
-}
-
-static void init(void)
-{
- glShadeModel (GL_FLAT);
- makeRasterFont();
-}
-
-static void printString(char *s)
-{
- glPushAttrib (GL_LIST_BIT);
- glListBase(fontOffset);
- glCallLists((GLsizei) strlen(s), GL_UNSIGNED_BYTE, (GLubyte *) s);
- glPopAttrib ();
-}
-
-/* Everything above this line could be in a library
- * that defines a font. To make it work, you've got
- * to call makeRasterFont() before you start making
- * calls to printString().
- */
-static void display(void)
-{
- GLfloat white[3] = { 1.0, 1.0, 1.0 };
-
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3fv(white);
-
- glRasterPos2i(20, 60);
- printString("THE QUICK BROWN FOX JUMPS");
- glRasterPos2i(20, 40);
- printString("OVER A LAZY DOG");
- glFlush ();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho (0.0, w, 0.0, h, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- }
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(300, 100);
- glutInitWindowPosition (100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/hello.c b/progs/redbook/hello.c
deleted file mode 100644
index 84183b25b9..0000000000
--- a/progs/redbook/hello.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * hello.c
- * This is a simple, introductory OpenGL program.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-static void display(void)
-{
-/* clear all pixels */
- glClear (GL_COLOR_BUFFER_BIT);
-
-/* draw white polygon (rectangle) with corners at
- * (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)
- */
- glColor3f (1.0, 1.0, 1.0);
- glBegin(GL_POLYGON);
- glVertex3f (0.25, 0.25, 0.0);
- glVertex3f (0.75, 0.25, 0.0);
- glVertex3f (0.75, 0.75, 0.0);
- glVertex3f (0.25, 0.75, 0.0);
- glEnd();
-
-/* don't wait!
- * start processing buffered OpenGL routines
- */
- glFlush ();
-}
-
-static void init (void)
-{
-/* select clearing color */
- glClearColor (0.0, 0.0, 0.0, 0.0);
-
-/* initialize viewing values */
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/*
- * Declare initial window size, position, and display mode
- * (single buffer and RGBA). Open window with "hello"
- * in its title bar. Call initialization routines.
- * Register callback function to display graphics.
- * Enter main loop and process events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (250, 250);
- glutInitWindowPosition (100, 100);
- glutCreateWindow ("hello");
- init ();
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/histogram.c b/progs/redbook/histogram.c
deleted file mode 100644
index 12b0e315ca..0000000000
--- a/progs/redbook/histogram.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * histogram.c
- * Compute the histogram of the image. This program illustrates the
- * use of the glHistogram() function.
- */
-
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#define HISTOGRAM_SIZE 256 /* Must be a power of 2 */
-
-
-static GLubyte *pixels;
-static GLsizei width, height;
-
-
-
-static GLuint bswap(GLuint x)
-{
- const GLuint ui = 1;
- const GLubyte *ubp = (const GLubyte *) &ui;
- if (*ubp == 1) {
- /* we're on little endiang so byteswap x */
- GLsizei y = ((x >> 24)
- | ((x >> 8) & 0xff00)
- | ((x << 8) & 0xff0000)
- | ((x << 24) & 0xff000000));
- return y;
- }
- else {
- return x;
- }
-}
-
-
-static GLubyte*
-readImage( const char* filename, GLsizei* width, GLsizei *height )
-{
- int n;
- GLubyte* pixels;
- size_t num_read;
-
- FILE* infile = fopen( filename, "rb" );
-
- if ( !infile ) {
- fprintf( stderr, "Unable to open file '%s'\n", filename );
- exit(1);
- }
-
- num_read = fread( width, sizeof( GLsizei ), 1, infile );
- assert(num_read == 1);
- num_read = fread( height, sizeof( GLsizei ), 1, infile );
- assert(num_read == 1);
-
- *width = bswap(*width);
- *height = bswap(*height);
-
- n = 3 * (*width) * (*height);
-
- pixels = (GLubyte *) malloc( n * sizeof( GLubyte ));
- if ( !pixels ) {
- fprintf( stderr, "Unable to malloc() bytes for pixels\n" );
- fclose( infile );
- return NULL;
- }
-
- num_read = fread( pixels, sizeof( GLubyte ), n, infile );
- assert(num_read == n);
-
- fclose( infile );
-
- return pixels;
-}
-
-static void init(void)
-{
- if (!glutExtensionSupported("GL_ARB_imaging")) {
- fprintf(stderr, "Sorry, this program requires GL_ARB_imaging.\n");
- exit(1);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glClearColor(0.0, 0.0, 0.0, 0.0);
-
- glHistogram(GL_HISTOGRAM, HISTOGRAM_SIZE, GL_RGB, GL_FALSE);
- glEnable(GL_HISTOGRAM);
-}
-
-static void display(void)
-{
- int i;
- GLushort values[HISTOGRAM_SIZE][3];
-
- glClear(GL_COLOR_BUFFER_BIT);
- glRasterPos2i(1, 1);
- glDrawPixels(width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels);
-
- glGetHistogram(GL_HISTOGRAM, GL_TRUE, GL_RGB, GL_UNSIGNED_SHORT, values);
-
- /* Plot histogram */
-
- glBegin(GL_LINE_STRIP);
- glColor3f(1.0, 0.0, 0.0);
- for ( i = 0; i < HISTOGRAM_SIZE; i++ )
- glVertex2s(i, values[i][0]);
- glEnd();
-
- glBegin(GL_LINE_STRIP);
- glColor3f(0.0, 1.0, 0.0);
- for ( i = 0; i < HISTOGRAM_SIZE; i++ )
- glVertex2s(i, values[i][1]);
- glEnd();
-
- glBegin(GL_LINE_STRIP);
- glColor3f(0.0, 0.0, 1.0);
- for ( i = 0; i < HISTOGRAM_SIZE; i++ )
- glVertex2s(i, values[i][2]);
- glEnd();
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, 256, 0, 10000, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void keyboard(unsigned char key, int x, int y)
-{
- static GLboolean sink = GL_FALSE;
-
- switch (key) {
- case 's' :
- sink = !sink;
- glHistogram(GL_HISTOGRAM, HISTOGRAM_SIZE, GL_RGB, sink);
- break;
-
- case 27:
- exit(0);
- }
- glutPostRedisplay();
-
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- pixels = readImage("leeds.bin", &width, &height);
-
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(width, height);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- glewInit();
- init();
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/image.c b/progs/redbook/image.c
deleted file mode 100644
index fa3b46f5ed..0000000000
--- a/progs/redbook/image.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* image.c
- * This program demonstrates drawing pixels and shows the effect
- * of glDrawPixels(), glCopyPixels(), and glPixelZoom().
- * Interaction: moving the mouse while pressing the mouse button
- * will copy the image in the lower-left corner of the window
- * to the mouse position, using the current pixel zoom factors.
- * There is no attempt to prevent you from drawing over the original
- * image. If you press the 'r' key, the original image and zoom
- * factors are reset. If you press the 'z' or 'Z' keys, you change
- * the zoom factors.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-/* Create checkerboard image */
-#define checkImageWidth 64
-#define checkImageHeight 64
-GLubyte checkImage[checkImageHeight][checkImageWidth][3];
-
-static GLdouble zoomFactor = 1.0;
-static GLint height;
-
-static void makeCheckImage(void)
-{
- int i, j, c;
-
- for (i = 0; i < checkImageHeight; i++) {
- for (j = 0; j < checkImageWidth; j++) {
- c = (((i&0x8)==0)^((j&0x8)==0))*255;
- checkImage[i][j][0] = (GLubyte) c;
- checkImage[i][j][1] = (GLubyte) c;
- checkImage[i][j][2] = (GLubyte) c;
- }
- }
-}
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel(GL_FLAT);
- makeCheckImage();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
- glRasterPos2i(0, 0);
- glDrawPixels(checkImageWidth, checkImageHeight, GL_RGB,
- GL_UNSIGNED_BYTE, checkImage);
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- height = (GLint) h;
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluOrtho2D(0.0, (GLdouble) w, 0.0, (GLdouble) h);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void motion(int x, int y)
-{
- static GLint screeny;
-
- screeny = height - (GLint) y;
- glRasterPos2i (x, screeny);
- glPixelZoom (zoomFactor, zoomFactor);
- glCopyPixels (0, 0, checkImageWidth, checkImageHeight, GL_COLOR);
- glPixelZoom (1.0, 1.0);
- glFlush ();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'r':
- case 'R':
- zoomFactor = 1.0;
- glutPostRedisplay();
- printf ("zoomFactor reset to 1.0\n");
- break;
- case 'z':
- zoomFactor += 0.5;
- if (zoomFactor >= 3.0)
- zoomFactor = 3.0;
- printf ("zoomFactor is now %4.1f\n", zoomFactor);
- break;
- case 'Z':
- zoomFactor -= 0.5;
- if (zoomFactor <= 0.5)
- zoomFactor = 0.5;
- printf ("zoomFactor is now %4.1f\n", zoomFactor);
- break;
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(250, 250);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMotionFunc(motion);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/jitter.h b/progs/redbook/jitter.h
deleted file mode 100644
index 1ec08c87fd..0000000000
--- a/progs/redbook/jitter.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
-jitter.h
-
-This file contains jitter point arrays for 2,3,4,8,15,24 and 66 jitters.
-
-The arrays are named j2, j3, etc. Each element in the array has the form,
-for example, j8[0].x and j8[0].y
-
-Values are floating point in the range -.5 < x < .5, -.5 < y < .5, and
-have a gaussian distribution around the origin.
-
-Use these to do model jittering for scene anti-aliasing and view volume
-jittering for depth of field effects. Use in conjunction with the
-accwindow() routine.
-*/
-
-typedef struct
-{
- GLfloat x, y;
-} jitter_point;
-
-#define MAX_SAMPLES 66
-
-
-/* 2 jitter points */
-jitter_point j2[] =
-{
- { 0.246490, 0.249999},
- {-0.246490, -0.249999}
-};
-
-
-/* 3 jitter points */
-jitter_point j3[] =
-{
- {-0.373411, -0.250550},
- { 0.256263, 0.368119},
- { 0.117148, -0.117570}
-};
-
-
-/* 4 jitter points */
-jitter_point j4[] =
-{
- {-0.208147, 0.353730},
- { 0.203849, -0.353780},
- {-0.292626, -0.149945},
- { 0.296924, 0.149994}
-};
-
-
-/* 8 jitter points */
-jitter_point j8[] =
-{
- {-0.334818, 0.435331},
- { 0.286438, -0.393495},
- { 0.459462, 0.141540},
- {-0.414498, -0.192829},
- {-0.183790, 0.082102},
- {-0.079263, -0.317383},
- { 0.102254, 0.299133},
- { 0.164216, -0.054399}
-};
-
-
-/* 15 jitter points */
-jitter_point j15[] =
-{
- { 0.285561, 0.188437},
- { 0.360176, -0.065688},
- {-0.111751, 0.275019},
- {-0.055918, -0.215197},
- {-0.080231, -0.470965},
- { 0.138721, 0.409168},
- { 0.384120, 0.458500},
- {-0.454968, 0.134088},
- { 0.179271, -0.331196},
- {-0.307049, -0.364927},
- { 0.105354, -0.010099},
- {-0.154180, 0.021794},
- {-0.370135, -0.116425},
- { 0.451636, -0.300013},
- {-0.370610, 0.387504}
-};
-
-
-/* 24 jitter points */
-jitter_point j24[] =
-{
- { 0.030245, 0.136384},
- { 0.018865, -0.348867},
- {-0.350114, -0.472309},
- { 0.222181, 0.149524},
- {-0.393670, -0.266873},
- { 0.404568, 0.230436},
- { 0.098381, 0.465337},
- { 0.462671, 0.442116},
- { 0.400373, -0.212720},
- {-0.409988, 0.263345},
- {-0.115878, -0.001981},
- { 0.348425, -0.009237},
- {-0.464016, 0.066467},
- {-0.138674, -0.468006},
- { 0.144932, -0.022780},
- {-0.250195, 0.150161},
- {-0.181400, -0.264219},
- { 0.196097, -0.234139},
- {-0.311082, -0.078815},
- { 0.268379, 0.366778},
- {-0.040601, 0.327109},
- {-0.234392, 0.354659},
- {-0.003102, -0.154402},
- { 0.297997, -0.417965}
-};
-
-
-/* 66 jitter points */
-jitter_point j66[] =
-{
- { 0.266377, -0.218171},
- {-0.170919, -0.429368},
- { 0.047356, -0.387135},
- {-0.430063, 0.363413},
- {-0.221638, -0.313768},
- { 0.124758, -0.197109},
- {-0.400021, 0.482195},
- { 0.247882, 0.152010},
- {-0.286709, -0.470214},
- {-0.426790, 0.004977},
- {-0.361249, -0.104549},
- {-0.040643, 0.123453},
- {-0.189296, 0.438963},
- {-0.453521, -0.299889},
- { 0.408216, -0.457699},
- { 0.328973, -0.101914},
- {-0.055540, -0.477952},
- { 0.194421, 0.453510},
- { 0.404051, 0.224974},
- { 0.310136, 0.419700},
- {-0.021743, 0.403898},
- {-0.466210, 0.248839},
- { 0.341369, 0.081490},
- { 0.124156, -0.016859},
- {-0.461321, -0.176661},
- { 0.013210, 0.234401},
- { 0.174258, -0.311854},
- { 0.294061, 0.263364},
- {-0.114836, 0.328189},
- { 0.041206, -0.106205},
- { 0.079227, 0.345021},
- {-0.109319, -0.242380},
- { 0.425005, -0.332397},
- { 0.009146, 0.015098},
- {-0.339084, -0.355707},
- {-0.224596, -0.189548},
- { 0.083475, 0.117028},
- { 0.295962, -0.334699},
- { 0.452998, 0.025397},
- { 0.206511, -0.104668},
- { 0.447544, -0.096004},
- {-0.108006, -0.002471},
- {-0.380810, 0.130036},
- {-0.242440, 0.186934},
- {-0.200363, 0.070863},
- {-0.344844, -0.230814},
- { 0.408660, 0.345826},
- {-0.233016, 0.305203},
- { 0.158475, -0.430762},
- { 0.486972, 0.139163},
- {-0.301610, 0.009319},
- { 0.282245, -0.458671},
- { 0.482046, 0.443890},
- {-0.121527, 0.210223},
- {-0.477606, -0.424878},
- {-0.083941, -0.121440},
- {-0.345773, 0.253779},
- { 0.234646, 0.034549},
- { 0.394102, -0.210901},
- {-0.312571, 0.397656},
- { 0.200906, 0.333293},
- { 0.018703, -0.261792},
- {-0.209349, -0.065383},
- { 0.076248, 0.478538},
- {-0.073036, -0.355064},
- { 0.145087, 0.221726}
-};
diff --git a/progs/redbook/leeds.bin b/progs/redbook/leeds.bin
deleted file mode 100644
index 5dc105e676..0000000000
--- a/progs/redbook/leeds.bin
+++ /dev/null
Binary files differ
diff --git a/progs/redbook/light.c b/progs/redbook/light.c
deleted file mode 100644
index 9431dce508..0000000000
--- a/progs/redbook/light.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * light.c
- * This program demonstrates the use of the OpenGL lighting
- * model. A sphere is drawn using a grey material characteristic.
- * A single light source illuminates the object.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-/* Initialize material property, light source, lighting model,
- * and depth buffer.
- */
-static void init(void)
-{
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat mat_shininess[] = { 50.0 };
- GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
-
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_SMOOTH);
-
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
-}
-
-static void display(void)
-{
- glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glutSolidSphere (1.0, 20, 16);
- glFlush ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho (-1.5, 1.5, -1.5*(GLfloat)h/(GLfloat)w,
- 1.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0);
- else
- glOrtho (-1.5*(GLfloat)w/(GLfloat)h,
- 1.5*(GLfloat)w/(GLfloat)h, -1.5, 1.5, -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/lines.c b/progs/redbook/lines.c
deleted file mode 100644
index 9f12da9acf..0000000000
--- a/progs/redbook/lines.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * lines.c
- * This program demonstrates geometric primitives and
- * their attributes.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-#define drawOneLine(x1,y1,x2,y2) glBegin(GL_LINES); \
- glVertex2f ((x1),(y1)); glVertex2f ((x2),(y2)); glEnd();
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_FLAT);
-}
-
-static void display(void)
-{
- int i;
-
- glClear (GL_COLOR_BUFFER_BIT);
-
-/* select white for all lines */
- glColor3f (1.0, 1.0, 1.0);
-
-/* in 1st row, 3 lines, each with a different stipple */
- glEnable (GL_LINE_STIPPLE);
-
- glLineStipple (1, 0x0101); /* dotted */
- drawOneLine (50.0, 125.0, 150.0, 125.0);
- glLineStipple (1, 0x00FF); /* dashed */
- drawOneLine (150.0, 125.0, 250.0, 125.0);
- glLineStipple (1, 0x1C47); /* dash/dot/dash */
- drawOneLine (250.0, 125.0, 350.0, 125.0);
-
-/* in 2nd row, 3 wide lines, each with different stipple */
- glLineWidth (5.0);
- glLineStipple (1, 0x0101); /* dotted */
- drawOneLine (50.0, 100.0, 150.0, 100.0);
- glLineStipple (1, 0x00FF); /* dashed */
- drawOneLine (150.0, 100.0, 250.0, 100.0);
- glLineStipple (1, 0x1C47); /* dash/dot/dash */
- drawOneLine (250.0, 100.0, 350.0, 100.0);
- glLineWidth (1.0);
-
-/* in 3rd row, 6 lines, with dash/dot/dash stipple */
-/* as part of a single connected line strip */
- glLineStipple (1, 0x1C47); /* dash/dot/dash */
- glBegin (GL_LINE_STRIP);
- for (i = 0; i < 7; i++)
- glVertex2f (50.0 + ((GLfloat) i * 50.0), 75.0);
- glEnd ();
-
-/* in 4th row, 6 independent lines with same stipple */
- for (i = 0; i < 6; i++) {
- drawOneLine (50.0 + ((GLfloat) i * 50.0), 50.0,
- 50.0 + ((GLfloat)(i+1) * 50.0), 50.0);
- }
-
-/* in 5th row, 1 line, with dash/dot/dash stipple */
-/* and a stipple repeat factor of 5 */
- glLineStipple (5, 0x1C47); /* dash/dot/dash */
- drawOneLine (50.0, 25.0, 350.0, 25.0);
-
- glDisable (GL_LINE_STIPPLE);
- glFlush ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (400, 150);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/list.c b/progs/redbook/list.c
deleted file mode 100644
index 5dea26fcad..0000000000
--- a/progs/redbook/list.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * list.c
- * This program demonstrates how to make and execute a
- * display list. Note that attributes, such as current
- * color and matrix, are changed.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-GLuint listName;
-
-static void init (void)
-{
- listName = glGenLists (1);
- glNewList (listName, GL_COMPILE);
- glColor3f (1.0, 0.0, 0.0); /* current color red */
- glBegin (GL_TRIANGLES);
- glVertex2f (0.0, 0.0);
- glVertex2f (1.0, 0.0);
- glVertex2f (0.0, 1.0);
- glEnd ();
- glTranslatef (1.5, 0.0, 0.0); /* move position */
- glEndList ();
- glShadeModel (GL_FLAT);
-}
-
-static void drawLine (void)
-{
- glBegin (GL_LINES);
- glVertex2f (0.0, 0.5);
- glVertex2f (15.0, 0.5);
- glEnd ();
-}
-
-static void display(void)
-{
- GLuint i;
-
- glClear (GL_COLOR_BUFFER_BIT);
- glColor3f (0.0, 1.0, 0.0); /* current color green */
- for (i = 0; i < 10; i++) /* draw 10 triangles */
- glCallList (listName);
- drawLine (); /* is this line green? NO! */
- /* where is the line drawn? */
- glFlush ();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- gluOrtho2D (0.0, 2.0, -0.5 * (GLfloat) h/(GLfloat) w,
- 1.5 * (GLfloat) h/(GLfloat) w);
- else
- gluOrtho2D (0.0, 2.0 * (GLfloat) w/(GLfloat) h, -0.5, 1.5);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(650, 50);
- glutCreateWindow(argv[0]);
- init ();
- glutReshapeFunc (reshape);
- glutDisplayFunc (display);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/material.c b/progs/redbook/material.c
deleted file mode 100644
index 5edddd9ef8..0000000000
--- a/progs/redbook/material.c
+++ /dev/null
@@ -1,306 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * material.c
- * This program demonstrates the use of the GL lighting model.
- * Several objects are drawn using different material characteristics.
- * A single light source illuminates the objects.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/* Initialize z-buffer, projection matrix, light source,
- * and lighting model. Do not specify a material property here.
- */
-static void myinit(void)
-{
- GLfloat ambient[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat position[] = { 0.0, 3.0, 2.0, 0.0 };
- GLfloat lmodel_ambient[] = { 0.4, 0.4, 0.4, 1.0 };
- GLfloat local_view[] = { 0.0 };
-
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
-
- 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_LOCAL_VIEWER, local_view);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
-
- glClearColor(0.0, 0.1, 0.1, 0.0);
-}
-
-/* Draw twelve spheres in 3 rows with 4 columns.
- * The spheres in the first row have materials with no ambient reflection.
- * The second row has materials with significant ambient reflection.
- * The third row has materials with colored ambient reflection.
- *
- * The first column has materials with blue, diffuse reflection only.
- * The second column has blue diffuse reflection, as well as specular
- * reflection with a low shininess exponent.
- * The third column has blue diffuse reflection, as well as specular
- * reflection with a high shininess exponent (a more concentrated highlight).
- * The fourth column has materials which also include an emissive component.
- *
- * glTranslatef() is used to move spheres to their appropriate locations.
- */
-
-static void display(void)
-{
- GLfloat no_mat[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat mat_ambient[] = { 0.7, 0.7, 0.7, 1.0 };
- GLfloat mat_ambient_color[] = { 0.8, 0.8, 0.2, 1.0 };
- GLfloat mat_diffuse[] = { 0.1, 0.5, 0.8, 1.0 };
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat no_shininess[] = { 0.0 };
- GLfloat low_shininess[] = { 5.0 };
- GLfloat high_shininess[] = { 100.0 };
- GLfloat mat_emission[] = {0.3, 0.2, 0.2, 0.0};
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
-/* draw sphere in first row, first column
- * diffuse reflection only; no ambient or specular
- */
- glPushMatrix();
- glTranslatef (-3.75, 3.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, no_mat);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
- glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in first row, second column
- * diffuse and specular reflection; low shininess; no ambient
- */
- glPushMatrix();
- glTranslatef (-1.25, 3.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, no_mat);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, low_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in first row, third column
- * diffuse and specular reflection; high shininess; no ambient
- */
- glPushMatrix();
- glTranslatef (1.25, 3.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, no_mat);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in first row, fourth column
- * diffuse reflection; emission; no ambient or specular reflection
- */
- glPushMatrix();
- glTranslatef (3.75, 3.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, no_mat);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
- glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in second row, first column
- * ambient and diffuse reflection; no specular
- */
- glPushMatrix();
- glTranslatef (-3.75, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
- glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in second row, second column
- * ambient, diffuse and specular reflection; low shininess
- */
- glPushMatrix();
- glTranslatef (-1.25, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, low_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in second row, third column
- * ambient, diffuse and specular reflection; high shininess
- */
- glPushMatrix();
- glTranslatef (1.25, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in second row, fourth column
- * ambient and diffuse reflection; emission; no specular
- */
- glPushMatrix();
- glTranslatef (3.75, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
- glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in third row, first column
- * colored ambient and diffuse reflection; no specular
- */
- glPushMatrix();
- glTranslatef (-3.75, -3.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient_color);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
- glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in third row, second column
- * colored ambient, diffuse and specular reflection; low shininess
- */
- glPushMatrix();
- glTranslatef (-1.25, -3.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient_color);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, low_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in third row, third column
- * colored ambient, diffuse and specular reflection; high shininess
- */
- glPushMatrix();
- glTranslatef (1.25, -3.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient_color);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
-/* draw sphere in third row, fourth column
- * colored ambient and diffuse reflection; emission; no specular
- */
- glPushMatrix();
- glTranslatef (3.75, -3.0, 0.0);
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient_color);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
- glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
- glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);
- glutSolidSphere(1.0, 16, 16);
- glPopMatrix();
-
- glFlush();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= (h * 2))
- glOrtho (-6.0, 6.0, -3.0*((GLfloat)h*2)/(GLfloat)w,
- 3.0*((GLfloat)h*2)/(GLfloat)w, -10.0, 10.0);
- else
- glOrtho (-6.0*(GLfloat)w/((GLfloat)h*2),
- 6.0*(GLfloat)w/((GLfloat)h*2), -3.0, 3.0, -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (600, 450);
- glutCreateWindow(argv[0]);
- myinit();
- glutReshapeFunc(myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/minmax.c b/progs/redbook/minmax.c
deleted file mode 100644
index 2c1356c9de..0000000000
--- a/progs/redbook/minmax.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * minmax.c
- * Determine the minimum and maximum values of a group of pixels.
- * This demonstrates use of the glMinmax() call.
- */
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include <assert.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-
-static GLubyte *pixels;
-static GLsizei width, height;
-
-
-static GLuint bswap(GLuint x)
-{
- const GLuint ui = 1;
- const GLubyte *ubp = (const GLubyte *) &ui;
- if (*ubp == 1) {
- /* we're on little endiang so byteswap x */
- GLsizei y = ((x >> 24)
- | ((x >> 8) & 0xff00)
- | ((x << 8) & 0xff0000)
- | ((x << 24) & 0xff000000));
- return y;
- }
- else {
- return x;
- }
-}
-
-
-static GLubyte *
-readImage( const char* filename, GLsizei* width, GLsizei *height )
-{
- int n;
- GLubyte* pixels;
- size_t num_read;
-
- FILE* infile = fopen( filename, "rb" );
-
- if ( !infile ) {
- fprintf( stderr, "Unable to open file '%s'\n", filename );
- return NULL;
- }
-
- num_read = fread( width, sizeof( GLsizei ), 1, infile );
- assert(num_read == 1);
- num_read = fread( height, sizeof( GLsizei ), 1, infile );
- assert(num_read == 1);
-
- *width = bswap(*width);
- *height = bswap(*height);
-
- n = 3 * (*width) * (*height);
-
- pixels = (GLubyte *) malloc( n * sizeof( GLubyte ));
- if ( !pixels ) {
- fprintf( stderr, "Unable to malloc() bytes for pixels\n" );
- fclose( infile );
- return NULL;
- }
-
- num_read = fread( pixels, sizeof( GLubyte ), n, infile );
- assert(num_read == n);
-
- fclose( infile );
-
- return pixels;
-}
-
-static void init(void)
-{
- if (!glutExtensionSupported("GL_ARB_imaging")) {
- fprintf(stderr, "Sorry, this program requires GL_ARB_imaging.\n");
- exit(1);
- }
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glClearColor(0.0, 0.0, 0.0, 0.0);
-
- glMinmax(GL_MINMAX, GL_RGB, GL_FALSE);
- glEnable(GL_MINMAX);
-}
-
-static void display(void)
-{
- GLubyte values[6];
-
- glClear(GL_COLOR_BUFFER_BIT);
- glRasterPos2i(1, 1);
- glDrawPixels(width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels);
- glFlush();
-
- glGetMinmax(GL_MINMAX, GL_TRUE, GL_RGB, GL_UNSIGNED_BYTE, values);
- printf(" Red : min = %d max = %d\n", values[0], values[3]);
- printf(" Green : min = %d max = %d\n", values[1], values[4]);
- printf(" Blue : min = %d max = %d\n", values[2], values[5]);
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, w, 0, h, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- }
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- pixels = readImage("leeds.bin", &width, &height);
-
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(width, height);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- glewInit();
- init();
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/mipmap.c b/progs/redbook/mipmap.c
deleted file mode 100644
index dadde055be..0000000000
--- a/progs/redbook/mipmap.c
+++ /dev/null
@@ -1,178 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/* mipmap.c
- * This program demonstrates using mipmaps for texture maps.
- * To overtly show the effect of mipmaps, each mipmap reduction
- * level has a solidly colored, contrasting texture image.
- * Thus, the quadrilateral which is drawn is drawn with several
- * different colors.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-GLubyte mipmapImage32[32][32][3];
-GLubyte mipmapImage16[16][16][3];
-GLubyte mipmapImage8[8][8][3];
-GLubyte mipmapImage4[4][4][3];
-GLubyte mipmapImage2[2][2][3];
-GLubyte mipmapImage1[1][1][3];
-
-static void makeImages(void)
-{
- int i, j;
-
- for (i = 0; i < 32; i++) {
- for (j = 0; j < 32; j++) {
- mipmapImage32[i][j][0] = 255;
- mipmapImage32[i][j][1] = 255;
- mipmapImage32[i][j][2] = 0;
- }
- }
- for (i = 0; i < 16; i++) {
- for (j = 0; j < 16; j++) {
- mipmapImage16[i][j][0] = 255;
- mipmapImage16[i][j][1] = 0;
- mipmapImage16[i][j][2] = 255;
- }
- }
- for (i = 0; i < 8; i++) {
- for (j = 0; j < 8; j++) {
- mipmapImage8[i][j][0] = 255;
- mipmapImage8[i][j][1] = 0;
- mipmapImage8[i][j][2] = 0;
- }
- }
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 4; j++) {
- mipmapImage4[i][j][0] = 0;
- mipmapImage4[i][j][1] = 255;
- mipmapImage4[i][j][2] = 0;
- }
- }
- for (i = 0; i < 2; i++) {
- for (j = 0; j < 2; j++) {
- mipmapImage2[i][j][0] = 0;
- mipmapImage2[i][j][1] = 0;
- mipmapImage2[i][j][2] = 255;
- }
- }
- mipmapImage1[0][0][0] = 255;
- mipmapImage1[0][0][1] = 255;
- mipmapImage1[0][0][2] = 255;
-}
-
-static void myinit(void)
-{
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
- glShadeModel(GL_FLAT);
-
- glTranslatef(0.0, 0.0, -3.6);
- makeImages();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexImage2D(GL_TEXTURE_2D, 0, 3, 32, 32, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage32[0][0][0]);
- glTexImage2D(GL_TEXTURE_2D, 1, 3, 16, 16, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage16[0][0][0]);
- glTexImage2D(GL_TEXTURE_2D, 2, 3, 8, 8, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage8[0][0][0]);
- glTexImage2D(GL_TEXTURE_2D, 3, 3, 4, 4, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage4[0][0][0]);
- glTexImage2D(GL_TEXTURE_2D, 4, 3, 2, 2, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage2[0][0][0]);
- glTexImage2D(GL_TEXTURE_2D, 5, 3, 1, 1, 0,
- GL_RGB, GL_UNSIGNED_BYTE, &mipmapImage1[0][0][0]);
- 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_MIPMAP_NEAREST);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
- glEnable(GL_TEXTURE_2D);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0, 0.0);
- glTexCoord2f(0.0, 8.0); glVertex3f(-2.0, 1.0, 0.0);
- glTexCoord2f(8.0, 8.0); glVertex3f(2000.0, 1.0, -6000.0);
- glTexCoord2f(8.0, 0.0); glVertex3f(2000.0, -1.0, -6000.0);
- glEnd();
- glFlush();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(60.0, 1.0*(GLfloat)w/(GLfloat)h, 1.0, 30000.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutCreateWindow (argv[0]);
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/model.c b/progs/redbook/model.c
deleted file mode 100644
index f7c92f4f87..0000000000
--- a/progs/redbook/model.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * model.c
- * This program demonstrates modeling transformations
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_FLAT);
-}
-
-static void draw_triangle(void)
-{
- glBegin (GL_LINE_LOOP);
- glVertex2f(0.0, 25.0);
- glVertex2f(25.0, -25.0);
- glVertex2f(-25.0, -25.0);
- glEnd();
-}
-
-static void display(void)
-{
- glClear (GL_COLOR_BUFFER_BIT);
- glColor3f (1.0, 1.0, 1.0);
-
- glLoadIdentity ();
- glColor3f (1.0, 1.0, 1.0);
- draw_triangle ();
-
- glEnable (GL_LINE_STIPPLE);
- glLineStipple (1, 0xF0F0);
- glLoadIdentity ();
- glTranslatef (-20.0, 0.0, 0.0);
- draw_triangle ();
-
- glLineStipple (1, 0xF00F);
- glLoadIdentity ();
- glScalef (1.5, 0.5, 1.0);
- draw_triangle ();
-
- glLineStipple (1, 0x8888);
- glLoadIdentity ();
- glRotatef (90.0, 0.0, 0.0, 1.0);
- draw_triangle ();
- glDisable (GL_LINE_STIPPLE);
-
- glFlush ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- if (w <= h)
- glOrtho (-50.0, 50.0, -50.0*(GLfloat)h/(GLfloat)w,
- 50.0*(GLfloat)h/(GLfloat)w, -1.0, 1.0);
- else
- glOrtho (-50.0*(GLfloat)w/(GLfloat)h,
- 50.0*(GLfloat)w/(GLfloat)h, -50.0, 50.0, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/movelight.c b/progs/redbook/movelight.c
deleted file mode 100644
index 93758a222a..0000000000
--- a/progs/redbook/movelight.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * movelight.c
- * This program demonstrates when to issue lighting and
- * transformation commands to render a model with a light
- * which is moved by a modeling transformation (rotate or
- * translate). The light position is reset after the modeling
- * transformation is called. The eye position does not change.
- *
- * A sphere is drawn using a grey material characteristic.
- * A single light source illuminates the object.
- *
- * Interaction: pressing the left mouse button alters
- * the modeling transformation (x rotation) by 30 degrees.
- * The scene is then redrawn with the light in a new position.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-static int spin = 0;
-
-/* Initialize material property, light source, lighting model,
- * and depth buffer.
- */
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_SMOOTH);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
-}
-
-/* Here is where the light position is reset after the modeling
- * transformation (glRotated) is called. This places the
- * light at a new position in world coordinates. The cube
- * represents the position of the light.
- */
-static void display(void)
-{
- GLfloat position[] = { 0.0, 0.0, 1.5, 1.0 };
-
- glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix ();
- gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
-
- glPushMatrix ();
- glRotated ((GLdouble) spin, 1.0, 0.0, 0.0);
- glLightfv (GL_LIGHT0, GL_POSITION, position);
-
- glTranslated (0.0, 0.0, 1.5);
- glDisable (GL_LIGHTING);
- glColor3f (0.0, 1.0, 1.0);
- glutWireCube (0.1);
- glEnable (GL_LIGHTING);
- glPopMatrix ();
-
- glutSolidTorus (0.275, 0.85, 8, 15);
- glPopMatrix ();
- glFlush ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(40.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED2 */
-static void mouse(int button, int state, int x, int y)
-{
- switch (button) {
- case GLUT_LEFT_BUTTON:
- if (state == GLUT_DOWN) {
- spin = (spin + 30) % 360;
- glutPostRedisplay();
- }
- break;
- default:
- break;
- }
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutMouseFunc(mouse);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/multisamp.c b/progs/redbook/multisamp.c
deleted file mode 100644
index 38bd572fc1..0000000000
--- a/progs/redbook/multisamp.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * multisamp.c
- * This program draws shows how to use multisampling to
- * draw anti-aliased geometric primitives. The same
- * display list, a pinwheel of triangles and lines of
- * varying widths, is rendered twice. Multisampling is
- * enabled when the left side is drawn. Multisampling is
- * disabled when the right side is drawn.
- *
- * Pressing the 'b' key toggles drawing of the checkerboard
- * background. Antialiasing is sometimes easier to see
- * when objects are rendered over a contrasting background.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-static int bgtoggle = 1;
-
-/*
- * Print out state values related to multisampling.
- * Create display list with "pinwheel" of lines and
- * triangles.
- */
-static void init(void)
-{
- static GLint buf[1], sbuf[1];
- int i, j;
-
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glGetIntegerv (GL_SAMPLE_BUFFERS_ARB, buf);
- printf ("number of sample buffers is %d\n", buf[0]);
- glGetIntegerv (GL_SAMPLES_ARB, sbuf);
- printf ("number of samples is %d\n", sbuf[0]);
-
- glNewList (1, GL_COMPILE);
- for (i = 0; i < 19; i++) {
- glPushMatrix();
- glRotatef(360.0*(float)i/19.0, 0.0, 0.0, 1.0);
- glColor3f (1.0, 1.0, 1.0);
- glLineWidth((i%3)+1.0);
- glBegin (GL_LINES);
- glVertex2f (0.25, 0.05);
- glVertex2f (0.9, 0.2);
- glEnd ();
- glColor3f (0.0, 1.0, 1.0);
- glBegin (GL_TRIANGLES);
- glVertex2f (0.25, 0.0);
- glVertex2f (0.9, 0.0);
- glVertex2f (0.875, 0.10);
- glEnd ();
- glPopMatrix();
- }
- glEndList ();
-
- glNewList (2, GL_COMPILE);
- glColor3f (1.0, 0.5, 0.0);
- glBegin (GL_QUADS);
- for (i = 0; i < 16; i++) {
- for (j = 0; j < 16; j++) {
- if (((i + j) % 2) == 0) {
- glVertex2f (-2.0 + (i * 0.25), -2.0 + (j * 0.25));
- glVertex2f (-2.0 + (i * 0.25), -1.75 + (j * 0.25));
- glVertex2f (-1.75 + (i * 0.25), -1.75 + (j * 0.25));
- glVertex2f (-1.75 + (i * 0.25), -2.0 + (j * 0.25));
- }
- }
- }
- glEnd ();
- glEndList ();
-}
-
-/* Draw two sets of primitives, so that you can
- * compare the user of multisampling against its absence.
- *
- * This code enables antialiasing and draws one display list
- * and disables and draws the other display list
- */
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- if (bgtoggle)
- glCallList (2);
-
- glEnable (GL_MULTISAMPLE_ARB);
- glPushMatrix();
- glTranslatef (-1.0, 0.0, 0.0);
- glCallList (1);
- glPopMatrix();
-
- glDisable (GL_MULTISAMPLE_ARB);
- glPushMatrix();
- glTranslatef (1.0, 0.0, 0.0);
- glCallList (1);
- glPopMatrix();
- glutSwapBuffers();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= (2 * h))
- gluOrtho2D (-2.0, 2.0,
- -2.0*(GLfloat)h/(GLfloat)w, 2.0*(GLfloat)h/(GLfloat)w);
- else
- gluOrtho2D (-2.0*(GLfloat)w/(GLfloat)h,
- 2.0*(GLfloat)w/(GLfloat)h, -2.0, 2.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'b':
- case 'B':
- bgtoggle = !bgtoggle;
- glutPostRedisplay();
- break;
- case 27: /* Escape Key */
- exit(0);
- default:
- break;
- }
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_MULTISAMPLE);
- glutInitWindowSize (600, 300);
- glutCreateWindow (argv[0]);
- init();
- glutReshapeFunc (reshape);
- glutKeyboardFunc (keyboard);
- glutDisplayFunc (display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/multitex.c b/progs/redbook/multitex.c
deleted file mode 100644
index 118f0ea77e..0000000000
--- a/progs/redbook/multitex.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* multitex.c
- */
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-
-static GLubyte texels0[32][32][4];
-static GLubyte texels1[16][16][4];
-
-static void makeCheckImages(void)
-{
- int i, j;
-
- for (i = 0; i < 32; i++) {
- for (j = 0; j < 32; j++) {
- texels0[i][j][0] = (GLubyte) (255 * i / 31);
- texels0[i][j][1] = (GLubyte) (255 * j / 31);
- texels0[i][j][2] = (GLubyte) (i*j)/255;
- texels0[i][j][3] = (GLubyte) 255;
- }
- }
-
- for (i = 0; i < 16; i++) {
- for (j = 0; j < 16; j++) {
- texels1[i][j][0] = (GLubyte) 255;
- texels1[i][j][1] = (GLubyte) (255 * i / 15);
- texels1[i][j][2] = (GLubyte) (255 * j / 15);
- texels1[i][j][3] = (GLubyte) 255;
- }
- }
-}
-
-static void init(void)
-{
- GLuint texNames[2];
-
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel(GL_FLAT);
- glEnable(GL_DEPTH_TEST);
-
- makeCheckImages();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- glGenTextures(2, texNames);
- glBindTexture(GL_TEXTURE_2D, texNames[0]);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 32, 32, 0, GL_RGBA,
- GL_UNSIGNED_BYTE, texels0);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
- GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
- GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
-
- glBindTexture(GL_TEXTURE_2D, texNames[1]);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 16, 16, 0, GL_RGBA,
- GL_UNSIGNED_BYTE, texels1);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- /* Use the two texture objects to define two texture units
- * for use in multitexturing */
- glActiveTextureARB (GL_TEXTURE0_ARB);
- glEnable(GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D, texNames[0]);
- glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
- glMatrixMode (GL_TEXTURE);
- glLoadIdentity();
- glTranslatef(0.5f, 0.5f, 0.0f);
- glRotatef(45.0f, 0.0f, 0.0f, 1.0f);
- glTranslatef(-0.5f, -0.5f, 0.0f);
- glMatrixMode (GL_MODELVIEW);
- glActiveTextureARB (GL_TEXTURE1_ARB);
- glEnable(GL_TEXTURE_2D);
- glBindTexture(GL_TEXTURE_2D, texNames[1]);
- glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glBegin(GL_TRIANGLES);
- glMultiTexCoord2fARB (GL_TEXTURE0_ARB, 0.0, 0.0);
- glMultiTexCoord2fARB (GL_TEXTURE1_ARB, 1.0, 0.0);
- glVertex2f(0.0, 0.0);
- glMultiTexCoord2fARB (GL_TEXTURE0_ARB, 0.5, 1.0);
- glMultiTexCoord2fARB (GL_TEXTURE1_ARB, 0.5, 0.0);
- glVertex2f(50.0, 100.0);
- glMultiTexCoord2fARB (GL_TEXTURE0_ARB, 1.0, 0.0);
- glMultiTexCoord2fARB (GL_TEXTURE1_ARB, 1.0, 1.0);
- glVertex2f(100.0, 0.0);
- glEnd();
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- gluOrtho2D(0.0, 100.0, 0.0, 100.0 * (GLdouble)h/(GLdouble)w);
- else
- gluOrtho2D(0.0, 100.0 * (GLdouble)w/(GLdouble)h, 0.0, 100.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(250, 250);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- glewInit();
- init();
- glutReshapeFunc(reshape);
- glutDisplayFunc(display);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/mvarray.c b/progs/redbook/mvarray.c
deleted file mode 100644
index 1022723ad9..0000000000
--- a/progs/redbook/mvarray.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * mvarray.c
- * This program demonstrates multiple vertex arrays,
- * specifically the OpenGL routine glMultiDrawElements().
- */
-
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef GL_VERSION_1_3
-
-static void setupPointer(void)
-{
- static GLint vertices[] = {25, 25,
- 75, 75,
- 100, 125,
- 150, 75,
- 200, 175,
- 250, 150,
- 300, 125,
- 100, 200,
- 150, 250,
- 200, 225,
- 250, 300,
- 300, 250};
-
- glEnableClientState (GL_VERTEX_ARRAY);
- glVertexPointer (2, GL_INT, 0, vertices);
-}
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_SMOOTH);
- setupPointer ();
-}
-
-static void display(void)
-{
- static GLubyte oneIndices[] = {0, 1, 2, 3, 4, 5, 6};
- static GLubyte twoIndices[] = {1, 7, 8, 9, 10, 11};
- static GLsizei count[] = {7, 6};
- static GLvoid * indices[2] = {oneIndices, twoIndices};
-
- glClear (GL_COLOR_BUFFER_BIT);
- glColor3f (1.0, 1.0, 1.0);
- glMultiDrawElementsEXT (GL_LINE_STRIP, count, GL_UNSIGNED_BYTE,
- (const GLvoid **) indices, 2);
- glFlush ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h);
-}
-
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (350, 350);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- glewInit();
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
-#else
-int main(int argc, char** argv)
-{
- fprintf (stderr, "This program demonstrates a feature which is not in OpenGL Version 1.0.\n");
- fprintf (stderr, "If your implementation of OpenGL Version 1.0 has the right extensions,\n");
- fprintf (stderr, "you may be able to modify this program to make it run.\n");
- return 0;
-}
-#endif
diff --git a/progs/redbook/nurbs.c b/progs/redbook/nurbs.c
deleted file mode 100644
index fe03ce667e..0000000000
--- a/progs/redbook/nurbs.c
+++ /dev/null
@@ -1,190 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * nurbs.c
- * This program shows a NURBS (Non-uniform rational B-splines)
- * surface, shaped like a heart.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-#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 SQRT2 1.41421356237309504880
-
-/* initialized local data */
-
-GLfloat 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};
-GLfloat tknots[T_NUMKNOTS] = {1.0, 1.0, 1.0, 2.0, 2.0, 2.0};
-
-GLfloat ctlpoints[S_NUMPOINTS][T_NUMPOINTS][4] = {
-{ {4.,2.,2.,1.},{4.,1.6,2.5,1.},{4.,2.,3.0,1.} },
-{ {5.,4.,2.,1.},{5.,4.,2.5,1.},{5.,4.,3.0,1.} },
-{ {6.,5.,2.,1.},{6.,5.,2.5,1.},{6.,5.,3.0,1.} },
-{ {SQRT2*6.,SQRT2*6.,SQRT2*2.,SQRT2},
- {SQRT2*6.,SQRT2*6.,SQRT2*2.5,SQRT2},
- {SQRT2*6.,SQRT2*6.,SQRT2*3.0,SQRT2} },
-{ {5.2,6.7,2.,1.},{5.2,6.7,2.5,1.},{5.2,6.7,3.0,1.} },
-{ {SQRT2*4.,SQRT2*6.,SQRT2*2.,SQRT2},
- {SQRT2*4.,SQRT2*6.,SQRT2*2.5,SQRT2},
- {SQRT2*4.,SQRT2*6.,SQRT2*3.0,SQRT2} },
-{ {4.,5.2,2.,1.},{4.,4.6,2.5,1.},{4.,5.2,3.0,1.} },
-{ {SQRT2*4.,SQRT2*6.,SQRT2*2.,SQRT2},
- {SQRT2*4.,SQRT2*6.,SQRT2*2.5,SQRT2},
- {SQRT2*4.,SQRT2*6.,SQRT2*3.0,SQRT2} },
-{ {2.8,6.7,2.,1.},{2.8,6.7,2.5,1.},{2.8,6.7,3.0,1.} },
-{ {SQRT2*2.,SQRT2*6.,SQRT2*2.,SQRT2},
- {SQRT2*2.,SQRT2*6.,SQRT2*2.5,SQRT2},
- {SQRT2*2.,SQRT2*6.,SQRT2*3.0,SQRT2} },
-{ {2.,5.,2.,1.},{2.,5.,2.5,1.},{2.,5.,3.0,1.} },
-{ {3.,4.,2.,1.},{3.,4.,2.5,1.},{3.,4.,3.0,1.} },
-{ {4.,2.,2.,1.},{4.,1.6,2.5,1.},{4.,2.,3.0,1.} }
-};
-
-GLUnurbsObj *theNurb;
-
-/* Initialize material property, light source, lighting model,
- * and depth buffer.
- */
-static void myinit(void)
-{
- GLfloat mat_ambient[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat mat_diffuse[] = { 1.0, 0.2, 1.0, 1.0 };
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat mat_shininess[] = { 50.0 };
-
- GLfloat light0_position[] = { 1.0, 0.1, 1.0, 0.0 };
- GLfloat light1_position[] = { -1.0, 0.1, 1.0, 0.0 };
-
- GLfloat lmodel_ambient[] = { 0.3, 0.3, 0.3, 1.0 };
-
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
- glLightfv(GL_LIGHT0, GL_POSITION, light0_position);
- glLightfv(GL_LIGHT1, GL_POSITION, light1_position);
- glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_LIGHT1);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_AUTO_NORMAL);
-
- theNurb = gluNewNurbsRenderer();
-
- gluNurbsProperty(theNurb, GLU_SAMPLING_TOLERANCE, 25.0);
- gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix();
- glTranslatef (4., 4.5, 2.5);
- glRotatef (220.0, 1., 0., 0.);
- glRotatef (115.0, 0., 1., 0.);
- glTranslatef (-4., -4.5, -2.5);
-
- gluBeginSurface(theNurb);
- gluNurbsSurface(theNurb,
- S_NUMKNOTS, sknots,
- T_NUMKNOTS, tknots,
- 4 * T_NUMPOINTS,
- 4,
- &ctlpoints[0][0][0],
- S_ORDER, T_ORDER,
- GL_MAP2_VERTEX_4);
- gluEndSurface(theNurb);
-
- glPopMatrix();
- glFlush();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-1.0, 1.0, -1.5, 0.5, 0.8, 10.0);
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- gluLookAt(7.0,4.5,4.0, 4.5,4.5,2.0, 6.0,-3.0,2.0);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutCreateWindow (argv[0]);
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/pickdepth.c b/progs/redbook/pickdepth.c
deleted file mode 100644
index 91d44a38c0..0000000000
--- a/progs/redbook/pickdepth.c
+++ /dev/null
@@ -1,217 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * pickdepth.c
- * Picking is demonstrated in this program. In
- * rendering mode, three overlapping rectangles are
- * drawn. When the left mouse button is pressed,
- * selection mode is entered with the picking matrix.
- * Rectangles which are drawn under the cursor position
- * are "picked." Pay special attention to the depth
- * value range, which is returned.
- */
-#include <stdlib.h>
-#include <stdio.h>
-#include <GL/glut.h>
-
-static void
-myinit(void)
-{
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
- glShadeModel(GL_FLAT);
- glDepthRange(0.0, 1.0); /* The default z mapping */
-}
-
-/* The three rectangles are drawn. In selection mode,
- * each rectangle is given the same name. Note that
- * each rectangle is drawn with a different z value.
- */
-static void
-drawRects(GLenum mode)
-{
- if (mode == GL_SELECT)
- glLoadName(1);
- glBegin(GL_QUADS);
- glColor3f(1.0, 1.0, 0.0);
- glVertex3i(2, 0, 0);
- glVertex3i(2, 6, 0);
- glVertex3i(6, 6, 0);
- glVertex3i(6, 0, 0);
- glEnd();
- if (mode == GL_SELECT)
- glLoadName(2);
- glBegin(GL_QUADS);
- glColor3f(0.0, 1.0, 1.0);
- glVertex3i(3, 2, -1);
- glVertex3i(3, 8, -1);
- glVertex3i(8, 8, -1);
- glVertex3i(8, 2, -1);
- glEnd();
- if (mode == GL_SELECT)
- glLoadName(3);
- glBegin(GL_QUADS);
- glColor3f(1.0, 0.0, 1.0);
- glVertex3i(0, 2, -2);
- glVertex3i(0, 7, -2);
- glVertex3i(5, 7, -2);
- glVertex3i(5, 2, -2);
- glEnd();
-}
-
-/* processHits() prints out the contents of the
- * selection array.
- */
-static void
-processHits(GLint hits, GLuint buffer[])
-{
- GLint i;
- GLuint j, names, *ptr;
-
- printf("hits = %d\n", hits);
- ptr = (GLuint *) buffer;
- for (i = 0; i < hits; i++) { /* for each hit */
- names = *ptr;
- printf(" number of names for hit = %d\n", names);
- ptr++;
- printf(" z1 is %g;", (float) *ptr/0xffffffff);
- ptr++;
- printf(" z2 is %g\n", (float) *ptr/0xffffffff);
- ptr++;
- printf(" the name is ");
- for (j = 0; j < names; j++) { /* for each name */
- printf("%d ", *ptr);
- ptr++;
- }
- printf("\n");
- }
-}
-
-/* pickRects() sets up selection mode, name stack,
- * and projection matrix for picking. Then the objects
- * are drawn.
- */
-#define BUFSIZE 512
-
-static void
-pickRects(int button, int state, int x, int y)
-{
- GLuint selectBuf[BUFSIZE];
- GLint hits;
- GLint viewport[4];
-
- if (button != GLUT_LEFT_BUTTON || state != GLUT_DOWN)
- return;
-
- glGetIntegerv(GL_VIEWPORT, viewport);
-
- glSelectBuffer(BUFSIZE, selectBuf);
- (void) glRenderMode(GL_SELECT);
-
- glInitNames();
- glPushName(-1);
-
- glMatrixMode(GL_PROJECTION);
- glPushMatrix();
- glLoadIdentity();
-/* create 5x5 pixel picking region near cursor location */
- gluPickMatrix((GLdouble) x, (GLdouble) (viewport[3] - y),
- 5.0, 5.0, viewport);
- glOrtho(0.0, 8.0, 0.0, 8.0, -0.5, 2.5);
- drawRects(GL_SELECT);
- glPopMatrix();
- glFlush();
-
- hits = glRenderMode(GL_RENDER);
- processHits(hits, selectBuf);
-}
-
-static void
-display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- drawRects(GL_RENDER);
- glutSwapBuffers();
-}
-
-static void
-myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0.0, 8.0, 0.0, 8.0, -0.5, 2.5);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, depth buffer, and handle input events.
- */
-int
-main(int argc, char **argv)
-{
- glutInitWindowSize(200, 200);
- glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
- glutInit(&argc, argv);
- glutCreateWindow(argv[0]);
- myinit();
- glutMouseFunc(pickRects);
- glutReshapeFunc(myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/picksquare.c b/progs/redbook/picksquare.c
deleted file mode 100644
index cc092dbf53..0000000000
--- a/progs/redbook/picksquare.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * picksquare.c
- * Use of multiple names and picking are demonstrated.
- * A 3x3 grid of squares is drawn. When the left mouse
- * button is pressed, all squares under the cursor position
- * have their color changed.
- */
-#include <stdlib.h>
-#include <stdio.h>
-#include <GL/glut.h>
-
-int board[3][3]; /* amount of color for each square */
-
-/* Clear color value for every square on the board */
-static void init(void)
-{
- int i, j;
- for (i = 0; i < 3; i++)
- for (j = 0; j < 3; j ++)
- board[i][j] = 0;
- glClearColor (0.0, 0.0, 0.0, 0.0);
-}
-
-/* The nine squares are drawn. In selection mode, each
- * square is given two names: one for the row and the
- * other for the column on the grid. The color of each
- * square is determined by its position on the grid, and
- * the value in the board[][] array.
- */
-static void drawSquares(GLenum mode)
-{
- GLuint i, j;
- for (i = 0; i < 3; i++) {
- if (mode == GL_SELECT)
- glLoadName (i);
- for (j = 0; j < 3; j ++) {
- if (mode == GL_SELECT)
- glPushName (j);
- glColor3f ((GLfloat) i/3.0, (GLfloat) j/3.0,
- (GLfloat) board[i][j]/3.0);
- glRecti (i, j, i+1, j+1);
- if (mode == GL_SELECT)
- glPopName ();
- }
- }
-}
-
-/* processHits prints out the contents of the
- * selection array.
- */
-static void processHits (GLint hits, GLuint buffer[])
-{
- GLint i;
- GLuint j, ii = 0, jj = 0, names, *ptr;
-
- printf ("hits = %d\n", hits);
- ptr = (GLuint *) buffer;
- for (i = 0; i < hits; i++) { /* for each hit */
- names = *ptr;
- printf (" number of names for this hit = %d\n", names); ptr++;
- printf(" z1 is %g;", (float) *ptr/0x7fffffff); ptr++;
- printf(" z2 is %g\n", (float) *ptr/0x7fffffff); ptr++;
- printf (" names are ");
- for (j = 0; j < names; j++) { /* for each name */
- printf ("%d ", *ptr);
- if (j == 0) /* set row and column */
- ii = *ptr;
- else if (j == 1)
- jj = *ptr;
- ptr++;
- }
- printf ("\n");
- board[ii][jj] = (board[ii][jj] + 1) % 3;
- }
-}
-
-/* pickSquares() sets up selection mode, name stack,
- * and projection matrix for picking. Then the
- * objects are drawn.
- */
-#define BUFSIZE 512
-
-static void pickSquares(int button, int state, int x, int y)
-{
- GLuint selectBuf[BUFSIZE];
- GLint hits;
- GLint viewport[4];
-
- if (button != GLUT_LEFT_BUTTON || state != GLUT_DOWN)
- return;
-
- glGetIntegerv (GL_VIEWPORT, viewport);
-
- glSelectBuffer (BUFSIZE, selectBuf);
- (void) glRenderMode (GL_SELECT);
-
- glInitNames();
- glPushName(0);
-
- glMatrixMode (GL_PROJECTION);
- glPushMatrix ();
- glLoadIdentity ();
-/* create 5x5 pixel picking region near cursor location */
- gluPickMatrix ((GLdouble) x, (GLdouble) (viewport[3] - y),
- 5.0, 5.0, viewport);
- gluOrtho2D (0.0, 3.0, 0.0, 3.0);
- drawSquares (GL_SELECT);
-
- glMatrixMode (GL_PROJECTION);
- glPopMatrix ();
- glFlush ();
-
- hits = glRenderMode (GL_RENDER);
- processHits (hits, selectBuf);
- glutPostRedisplay();
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
- drawSquares (GL_RENDER);
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluOrtho2D (0.0, 3.0, 0.0, 3.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-/* Main Loop */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (100, 100);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutReshapeFunc (reshape);
- glutDisplayFunc(display);
- glutMouseFunc (pickSquares);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/plane.c b/progs/redbook/plane.c
deleted file mode 100644
index 2c2e2d24d9..0000000000
--- a/progs/redbook/plane.c
+++ /dev/null
@@ -1,171 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * plane.c
- * This program demonstrates the use of local versus
- * infinite lighting on a flat plane.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/* Initialize material property, light source, and lighting model.
- */
-static void myinit(void)
-{
- GLfloat mat_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
-/* mat_specular and mat_shininess are NOT default values */
- GLfloat mat_diffuse[] = { 0.4, 0.4, 0.4, 1.0 };
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat mat_shininess[] = { 15.0 };
-
- GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat lmodel_ambient[] = { 0.2, 0.2, 0.2, 1.0 };
-
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
- glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
- glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
- glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
-}
-
-static void drawPlane(void)
-{
- glBegin (GL_QUADS);
- glNormal3f (0.0, 0.0, 1.0);
- glVertex3f (-1.0, -1.0, 0.0);
- glVertex3f (0.0, -1.0, 0.0);
- glVertex3f (0.0, 0.0, 0.0);
- glVertex3f (-1.0, 0.0, 0.0);
-
- glNormal3f (0.0, 0.0, 1.0);
- glVertex3f (0.0, -1.0, 0.0);
- glVertex3f (1.0, -1.0, 0.0);
- glVertex3f (1.0, 0.0, 0.0);
- glVertex3f (0.0, 0.0, 0.0);
-
- glNormal3f (0.0, 0.0, 1.0);
- glVertex3f (0.0, 0.0, 0.0);
- glVertex3f (1.0, 0.0, 0.0);
- glVertex3f (1.0, 1.0, 0.0);
- glVertex3f (0.0, 1.0, 0.0);
-
- glNormal3f (0.0, 0.0, 1.0);
- glVertex3f (0.0, 0.0, 0.0);
- glVertex3f (0.0, 1.0, 0.0);
- glVertex3f (-1.0, 1.0, 0.0);
- glVertex3f (-1.0, 0.0, 0.0);
- glEnd();
-}
-
-static void display (void)
-{
- GLfloat infinite_light[] = { 1.0, 1.0, 1.0, 0.0 };
- GLfloat local_light[] = { 1.0, 1.0, 1.0, 1.0 };
-
- glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix ();
- glTranslatef (-1.5, 0.0, 0.0);
- glLightfv (GL_LIGHT0, GL_POSITION, infinite_light);
- drawPlane ();
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (1.5, 0.0, 0.0);
- glLightfv (GL_LIGHT0, GL_POSITION, local_light);
- drawPlane ();
- glPopMatrix ();
- glFlush ();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport (0, 0, w, h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- if (w <= h)
- glOrtho (-1.5, 1.5, -1.5*(GLdouble)h/(GLdouble)w,
- 1.5*(GLdouble)h/(GLdouble)w, -10.0, 10.0);
- else
- glOrtho (-1.5*(GLdouble)w/(GLdouble)h,
- 1.5*(GLdouble)w/(GLdouble)h, -1.5, 1.5, -10.0, 10.0);
- glMatrixMode (GL_MODELVIEW);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 200);
- glutCreateWindow (argv[0]);
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/planet.c b/progs/redbook/planet.c
deleted file mode 100644
index cc428b4e42..0000000000
--- a/progs/redbook/planet.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * planet.c
- * This program shows how to composite modeling transformations
- * to draw translated and rotated models.
- * Interaction: pressing the d and y keys (day and year)
- * alters the rotation of the planet around the sun.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-static int year = 0, day = 0;
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_FLAT);
-}
-
-static void display(void)
-{
- glClear (GL_COLOR_BUFFER_BIT);
- glColor3f (1.0, 1.0, 1.0);
-
- glPushMatrix();
- glutWireSphere(1.0, 20, 16); /* draw sun */
- glRotatef ((GLfloat) year, 0.0, 1.0, 0.0);
- glTranslatef (2.0, 0.0, 0.0);
- glRotatef ((GLfloat) day, 0.0, 1.0, 0.0);
- glutWireSphere(0.2, 10, 8); /* draw smaller planet */
- glPopMatrix();
- glutSwapBuffers();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
-}
-
-/* ARGSUSED1 */
-static void keyboard (unsigned char key, int x, int y)
-{
- switch (key) {
- case 'd':
- day = (day + 10) % 360;
- glutPostRedisplay();
- break;
- case 'D':
- day = (day - 10) % 360;
- glutPostRedisplay();
- break;
- case 'y':
- year = (year + 5) % 360;
- glutPostRedisplay();
- break;
- case 'Y':
- year = (year - 5) % 360;
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/pointp.c b/progs/redbook/pointp.c
deleted file mode 100644
index b273623d85..0000000000
--- a/progs/redbook/pointp.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * pointp.c
- * This program demonstrates point parameters and their effect
- * on point primitives.
- * 250 points are randomly generated within a 10 by 10 by 40
- * region, centered at the origin. In some modes (including the
- * default), points that are closer to the viewer will appear larger.
- *
- * Pressing the 'l', 'q', and 'c' keys switch the point
- * parameters attenuation mode to linear, quadratic, or constant,
- * respectively.
- * Pressing the 'f' and 'b' keys move the viewer forward
- * and backwards. In either linear or quadratic attenuation
- * mode, the distance from the viewer to the point will change
- * the size of the point primitive.
- * Pressing the '+' and '-' keys will change the current point
- * size. In this program, the point size is bounded, so it
- * will not get less than 2.0, nor greater than GL_POINT_SIZE_MAX.
- */
-
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-static GLfloat psize = 7.0;
-static GLfloat pmax[1];
-static GLfloat constant[3] = {1.0, 0.0, 0.0};
-static GLfloat linear[3] = {0.0, 0.12, 0.0};
-static GLfloat quadratic[3] = {0.0, 0.0, 0.01};
-
-static void init(void)
-{
- int i;
-
- srand (12345);
-
- glNewList(1, GL_COMPILE);
- glBegin (GL_POINTS);
- for (i = 0; i < 250; i++) {
- glColor3f (1.0, ((rand()/(float) RAND_MAX) * 0.5) + 0.5,
- rand()/(float) RAND_MAX);
-/* randomly generated vertices:
- -5 < x < 5; -5 < y < 5; -5 < z < -45 */
- glVertex3f ( ((rand()/(float)RAND_MAX) * 10.0) - 5.0,
- ((rand()/(float)RAND_MAX) * 10.0) - 5.0,
- ((rand()/(float)RAND_MAX) * 40.0) - 45.0);
- }
- glEnd();
- glEndList();
-
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_POINT_SMOOTH);
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glPointSize(psize);
- glGetFloatv(GL_POINT_SIZE_MAX_EXT, pmax);
-
- glPointParameterfvEXT (GL_DISTANCE_ATTENUATION_EXT, linear);
- glPointParameterfEXT (GL_POINT_FADE_THRESHOLD_SIZE_EXT, 2.0);
-}
-
-static void display(void)
-{
- glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glCallList (1);
- glutSwapBuffers ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- gluPerspective (35.0, 1.0, 0.25, 200.0);
- glMatrixMode (GL_MODELVIEW);
- glTranslatef (0.0, 0.0, -10.0);
-}
-
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'b':
- glMatrixMode (GL_MODELVIEW);
- glTranslatef (0.0, 0.0, -0.5);
- glutPostRedisplay();
- break;
- case 'c':
- glPointParameterfvEXT (GL_DISTANCE_ATTENUATION_EXT, constant);
- glutPostRedisplay();
- break;
- case 'f':
- glMatrixMode (GL_MODELVIEW);
- glTranslatef (0.0, 0.0, 0.5);
- glutPostRedisplay();
- break;
- case 'l':
- glPointParameterfvEXT (GL_DISTANCE_ATTENUATION_EXT, linear);
- glutPostRedisplay();
- break;
- case 'q':
- glPointParameterfvEXT (GL_DISTANCE_ATTENUATION_EXT, quadratic);
- glutPostRedisplay();
- break;
- case '+':
- if (psize < (pmax[0] + 1.0))
- psize = psize + 1.0;
- glPointSize (psize);
- glutPostRedisplay();
- break;
- case '-':
- if (psize >= 2.0)
- psize = psize - 1.0;
- glPointSize (psize);
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH | GLUT_MULTISAMPLE);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- glewInit();
- init ();
- glutDisplayFunc (display);
- glutReshapeFunc (reshape);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/polyoff.c b/progs/redbook/polyoff.c
deleted file mode 100644
index 0e0ce86ec9..0000000000
--- a/progs/redbook/polyoff.c
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * polyoff.c
- * This program demonstrates polygon offset to draw a shaded
- * polygon and its wireframe counterpart without ugly visual
- * artifacts ("stitching").
- */
-#include <GL/glut.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef GL_VERSION_1_1
-GLuint list;
-GLint fill = 1;
-GLfloat spinx = 0;
-GLfloat spiny = 0;
-GLfloat tdist = 0.0;
-GLfloat polyfactor = 1.0;
-GLfloat polyunits = 1.0;
-GLboolean doubleBuffer;
-
-
-/* display() draws two spheres, one with a gray, diffuse material,
- * the other sphere with a magenta material with a specular highlight.
- */
-static void display (void)
-{
- GLfloat gray[] = { 0.8, 0.8, 0.8, 1.0 };
- GLfloat black[] = { 0.0, 0.0, 0.0, 1.0 };
-
- glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix ();
- glTranslatef (0.0, 0.0, tdist);
- glRotatef ((GLfloat) spinx, 1.0, 0.0, 0.0);
- glRotatef ((GLfloat) spiny, 0.0, 1.0, 0.0);
-
- glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, gray);
- glMaterialfv(GL_FRONT, GL_SPECULAR, black);
- glMaterialf(GL_FRONT, GL_SHININESS, 0.0);
- if (fill) {
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_POLYGON_OFFSET_FILL);
- glPolygonOffset(polyfactor, polyunits);
- glCallList (list);
- glDisable(GL_POLYGON_OFFSET_FILL);
- }
-
- glDisable(GL_LIGHTING);
- glDisable(GL_LIGHT0);
- glColor3f (1.0, 1.0, 1.0);
- glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
- glPolygonOffset(-polyfactor, -polyunits);
- if (!fill) glEnable(GL_POLYGON_OFFSET_LINE);
- glCallList (list);
- glDisable(GL_POLYGON_OFFSET_LINE);
- glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
-
- if (!fill) {
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glCallList (list);
- }
-
- glPopMatrix ();
- glFlush ();
- if (doubleBuffer) glutSwapBuffers();
-}
-
-/* specify initial properties
- * create display list with sphere
- * initialize lighting and depth buffer
- */
-static void gfxinit (void)
-{
- GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
-
- GLfloat global_ambient[] = { 0.2, 0.2, 0.2, 1.0 };
-
- glClearColor (0.0, 0.0, 0.0, 1.0);
-
- list = glGenLists(1);
- glNewList (list, GL_COMPILE);
- glutSolidSphere(1.0, 20, 12);
- glEndList ();
-
- glEnable(GL_DEPTH_TEST);
-
- glLightfv (GL_LIGHT0, GL_AMBIENT, light_ambient);
- glLightfv (GL_LIGHT0, GL_DIFFUSE, light_diffuse);
- glLightfv (GL_LIGHT0, GL_SPECULAR, light_specular);
- glLightfv (GL_LIGHT0, GL_POSITION, light_position);
- glLightModelfv (GL_LIGHT_MODEL_AMBIENT, global_ambient);
-}
-
-/* call when window is resized */
-static void reshape(int width, int height)
-{
- glViewport (0, 0, width, height);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- gluPerspective(45.0, (GLdouble)width/(GLdouble)height,
- 1.0, 10.0);
- glMatrixMode (GL_MODELVIEW);
- glLoadIdentity ();
- gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
-}
-
-static void Benchmark( float xdiff, float ydiff )
-{
- int startTime, endTime;
- int draws;
- double seconds, fps;
-
- printf("Benchmarking...\n");
- fflush(stdout);
-
- draws = 0;
- startTime = glutGet(GLUT_ELAPSED_TIME);
- spinx = spiny = 0.0;
- do {
- spinx += xdiff;
- spiny += ydiff;
- display();
- draws++;
- endTime = glutGet(GLUT_ELAPSED_TIME);
- } while (endTime - startTime < 5000); /* 5 seconds */
-
- /* Results */
- seconds = (double) (endTime - startTime) / 1000.0;
- fps = draws / seconds;
- printf("Result: fps: %g\n", fps);
- fflush(stdout);
-}
-
-
-/* call when mouse button is pressed */
-/* ARGSUSED2 */
-static void mouse(int button, int state, int x, int y) {
- switch (button) {
- case GLUT_LEFT_BUTTON:
- switch (state) {
- case GLUT_DOWN:
- spinx += 5;
- glutPostRedisplay();
- break;
- default:
- break;
- }
- break;
- case GLUT_MIDDLE_BUTTON:
- switch (state) {
- case GLUT_DOWN:
- spiny += 5;
- glutPostRedisplay();
- break;
- default:
- break;
- }
- break;
- case GLUT_RIGHT_BUTTON:
- switch (state) {
- case GLUT_UP:
- exit(0);
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
-}
-
-/* ARGSUSED1 */
-static void keyboard (unsigned char key, int x, int y)
-{
- switch (key) {
- case 't':
- if (tdist < 4.0) {
- tdist = (tdist + 0.5);
- glutPostRedisplay();
- }
- break;
- case 'T':
- if (tdist > -5.0) {
- tdist = (tdist - 0.5);
- glutPostRedisplay();
- }
- break;
- case 'F':
- polyfactor = polyfactor + 0.1;
- printf ("polyfactor is %f\n", polyfactor);
- glutPostRedisplay();
- break;
- case 'f':
- polyfactor = polyfactor - 0.1;
- printf ("polyfactor is %f\n", polyfactor);
- glutPostRedisplay();
- break;
- case 'U':
- polyunits = polyunits + 1.0;
- printf ("polyunits is %f\n", polyunits);
- glutPostRedisplay();
- break;
- case 'u':
- polyunits = polyunits - 1.0;
- printf ("polyunits is %f\n", polyunits);
- glutPostRedisplay();
- break;
- case 'b':
- Benchmark(5.0, 0);
- break;
- case 'B':
- Benchmark(0, 5.0);
- break;
- case ' ':
- fill = !fill;
- printf ("fill/line: %d\n", fill);
- glutPostRedisplay();
- break;
- case 27: /* Escape */
- exit(0);
- break;
- default:
- break;
- }
- fflush(stdout);
-}
-
-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;
-}
-
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- GLuint type;
- glutInit(&argc, argv);
-
- Args(argc, argv);
-
- type = GLUT_DEPTH | GLUT_RGB;
- type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
-
- glutInitDisplayMode(type);
- glutCreateWindow("polyoff");
- glutReshapeFunc(reshape);
- glutDisplayFunc(display);
- glutMouseFunc(mouse);
- glutKeyboardFunc(keyboard);
- gfxinit();
- glutMainLoop();
- return 0;
-}
-#else
-int main(int argc, char** argv)
-{
- fprintf (stderr, "This program demonstrates a feature which is not in OpenGL Version 1.0.\n");
- fprintf (stderr, "If your implementation of OpenGL Version 1.0 has the right extensions,\n");
- fprintf (stderr, "you may be able to modify this program to make it run.\n");
- return 0;
-}
-#endif
diff --git a/progs/redbook/polys.c b/progs/redbook/polys.c
deleted file mode 100644
index eeffe2301c..0000000000
--- a/progs/redbook/polys.c
+++ /dev/null
@@ -1,138 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * polys.c
- * This program demonstrates polygon stippling.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-static void display(void)
-{
- GLubyte fly[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x03, 0x80, 0x01, 0xC0, 0x06, 0xC0, 0x03, 0x60, 0x04, 0x60, 0x06, 0x20,
-0x04, 0x30, 0x0C, 0x20, 0x04, 0x18, 0x18, 0x20, 0x04, 0x0C, 0x30, 0x20,
-0x04, 0x06, 0x60, 0x20, 0x44, 0x03, 0xC0, 0x22, 0x44, 0x01, 0x80, 0x22,
-0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22,
-0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x66, 0x01, 0x80, 0x66,
-0x33, 0x01, 0x80, 0xCC, 0x19, 0x81, 0x81, 0x98, 0x0C, 0xC1, 0x83, 0x30,
-0x07, 0xe1, 0x87, 0xe0, 0x03, 0x3f, 0xfc, 0xc0, 0x03, 0x31, 0x8c, 0xc0,
-0x03, 0x33, 0xcc, 0xc0, 0x06, 0x64, 0x26, 0x60, 0x0c, 0xcc, 0x33, 0x30,
-0x18, 0xcc, 0x33, 0x18, 0x10, 0xc4, 0x23, 0x08, 0x10, 0x63, 0xC6, 0x08,
-0x10, 0x30, 0x0c, 0x08, 0x10, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x08};
-
- GLubyte halftone[] = {
-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};
-
- glClear (GL_COLOR_BUFFER_BIT);
-
-/* draw all polygons in white */
- glColor3f (1.0, 1.0, 1.0);
-
-/* draw one solid, unstippled rectangle, */
-/* then two stippled rectangles */
- glRectf (25.0, 25.0, 125.0, 125.0);
- glEnable (GL_POLYGON_STIPPLE);
- glPolygonStipple (fly);
- glRectf (125.0, 25.0, 225.0, 125.0);
- glPolygonStipple (halftone);
- glRectf (225.0, 25.0, 325.0, 125.0);
- glDisable (GL_POLYGON_STIPPLE);
-
- glFlush ();
-}
-
-static void myinit (void)
-{
-/* clear background to black */
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_FLAT);
-}
-
-static void reshape(GLsizei w, GLsizei h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0.0, (GLdouble)w, 0.0, (GLdouble)h, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- break;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (350, 150);
- glutCreateWindow (argv[0]);
- myinit ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/quadric.c b/progs/redbook/quadric.c
deleted file mode 100644
index 1cbd395e47..0000000000
--- a/progs/redbook/quadric.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * quadric.c
- * This program demonstrates the use of some of the gluQuadric*
- * routines. Quadric objects are created with some quadric
- * properties and the callback routine to handle errors.
- * Note that the cylinder has no top or bottom and the circle
- * has a hole in it.
- */
-#include <GL/glut.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-/* Win32 calling conventions. */
-#ifndef CALLBACK
-#define CALLBACK
-#endif
-
-GLuint startList;
-
-static void CALLBACK errorCallback(GLenum errorCode)
-{
- const GLubyte *estring;
-
- estring = gluErrorString(errorCode);
- fprintf(stderr, "Quadric Error: %s\n", estring);
- exit(0);
-}
-
-static void init(void)
-{
- GLUquadricObj *qobj;
- GLfloat mat_ambient[] = { 0.5, 0.5, 0.5, 1.0 };
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat mat_shininess[] = { 50.0 };
- GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
- GLfloat model_ambient[] = { 0.5, 0.5, 0.5, 1.0 };
-
- glClearColor(0.0, 0.0, 0.0, 0.0);
-
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
- glLightModelfv(GL_LIGHT_MODEL_AMBIENT, model_ambient);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
-
-/* Create 4 display lists, each with a different quadric object.
- * Different drawing styles and surface normal specifications
- * are demonstrated.
- */
- startList = glGenLists(4);
- qobj = gluNewQuadric();
- gluQuadricCallback(qobj, GLU_ERROR,
- (GLvoid (CALLBACK*) ()) errorCallback);
-
- gluQuadricDrawStyle(qobj, GLU_FILL); /* smooth shaded */
- gluQuadricNormals(qobj, GLU_SMOOTH);
- glNewList(startList, GL_COMPILE);
- gluSphere(qobj, 0.75, 15, 10);
- glEndList();
-
- gluQuadricDrawStyle(qobj, GLU_FILL); /* flat shaded */
- gluQuadricNormals(qobj, GLU_FLAT);
- glNewList(startList+1, GL_COMPILE);
- gluCylinder(qobj, 0.5, 0.3, 1.0, 15, 5);
- glEndList();
-
- gluQuadricDrawStyle(qobj, GLU_LINE); /* all polygons wireframe */
- gluQuadricNormals(qobj, GLU_NONE);
- glNewList(startList+2, GL_COMPILE);
- gluDisk(qobj, 0.25, 1.0, 20, 4);
- glEndList();
-
- gluQuadricDrawStyle(qobj, GLU_SILHOUETTE); /* boundary only */
- gluQuadricNormals(qobj, GLU_NONE);
- glNewList(startList+3, GL_COMPILE);
- gluPartialDisk(qobj, 0.0, 1.0, 20, 4, 0.0, 225.0);
- glEndList();
-
- gluDeleteQuadric(qobj);
-}
-
-static void display(void)
-{
- glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix();
-
- glEnable(GL_LIGHTING);
- glShadeModel (GL_SMOOTH);
- glTranslatef(-1.0, -1.0, 0.0);
- glCallList(startList);
-
- glShadeModel (GL_FLAT);
- glTranslatef(0.0, 2.0, 0.0);
- glPushMatrix();
- glRotatef(300.0, 1.0, 0.0, 0.0);
- glCallList(startList+1);
- glPopMatrix();
-
- glDisable(GL_LIGHTING);
- glColor3f(0.0, 1.0, 1.0);
- glTranslatef(2.0, -2.0, 0.0);
- glCallList(startList+2);
-
- glColor3f(1.0, 1.0, 0.0);
- glTranslatef(0.0, 2.0, 0.0);
- glCallList(startList+3);
-
- glPopMatrix();
- glFlush();
-}
-
-static void reshape (int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho(-2.5, 2.5, -2.5*(GLfloat)h/(GLfloat)w,
- 2.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0);
- else
- glOrtho(-2.5*(GLfloat)w/(GLfloat)h,
- 2.5*(GLfloat)w/(GLfloat)h, -2.5, 2.5, -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(500, 500);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/robot.c b/progs/redbook/robot.c
deleted file mode 100644
index c90b72ab3e..0000000000
--- a/progs/redbook/robot.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * robot.c
- * This program shows how to composite modeling transformations
- * to draw translated and rotated hierarchical models.
- * Interaction: pressing the s and e keys (shoulder and elbow)
- * alters the rotation of the robot arm.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-static int shoulder = 0, elbow = 0;
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_FLAT);
-}
-
-static void display(void)
-{
- glClear (GL_COLOR_BUFFER_BIT);
- glPushMatrix();
- glTranslatef (-1.0, 0.0, 0.0);
- glRotatef ((GLfloat) shoulder, 0.0, 0.0, 1.0);
- glTranslatef (1.0, 0.0, 0.0);
- glPushMatrix();
- glScalef (2.0, 0.4, 1.0);
- glutWireCube (1.0);
- glPopMatrix();
-
- glTranslatef (1.0, 0.0, 0.0);
- glRotatef ((GLfloat) elbow, 0.0, 0.0, 1.0);
- glTranslatef (1.0, 0.0, 0.0);
- glPushMatrix();
- glScalef (2.0, 0.4, 1.0);
- glutWireCube (1.0);
- glPopMatrix();
-
- glPopMatrix();
- glutSwapBuffers();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- gluPerspective(65.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef (0.0, 0.0, -5.0);
-}
-
-/* ARGSUSED1 */
-static void keyboard (unsigned char key, int x, int y)
-{
- switch (key) {
- case 's':
- shoulder = (shoulder + 5) % 360;
- glutPostRedisplay();
- break;
- case 'S':
- shoulder = (shoulder - 5) % 360;
- glutPostRedisplay();
- break;
- case 'e':
- elbow = (elbow + 5) % 360;
- glutPostRedisplay();
- break;
- case 'E':
- elbow = (elbow - 5) % 360;
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/sccolorlight.c b/progs/redbook/sccolorlight.c
deleted file mode 100644
index d9e0a254e9..0000000000
--- a/progs/redbook/sccolorlight.c
+++ /dev/null
@@ -1,141 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * sccolorlight.c
- * This program demonstrates the use of a colored
- * (magenta, in this example) light source. Objects
- * are drawn using a grey material characteristic.
- * A single light source illuminates the objects.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/* Initialize material property and light source.
- */
-static void myinit(void)
-{
- GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat light_diffuse[] = { 1.0, 0.0, 1.0, 1.0 };
- GLfloat light_specular[] = { 1.0, 0.0, 1.0, 1.0 };
-/* light_position is NOT default value */
- GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
-
- glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
- glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix ();
- glRotatef (20.0, 1.0, 0.0, 0.0);
-
- glPushMatrix ();
- glTranslatef (-0.75, 0.5, 0.0);
- glRotatef (90.0, 1.0, 0.0, 0.0);
- glutSolidTorus (0.275, 0.85, 20, 20);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (-0.75, -0.5, 0.0);
- glRotatef (270.0, 1.0, 0.0, 0.0);
- glutSolidCone (1.0, 2.0, 20, 20);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (0.75, 0.0, -1.0);
- glutSolidSphere (1.0, 20, 20);
- glPopMatrix ();
-
- glPopMatrix ();
- glFlush();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho (-2.5, 2.5, -2.5*(GLfloat)h/(GLfloat)w,
- 2.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0);
- else
- glOrtho (-2.5*(GLfloat)w/(GLfloat)h,
- 2.5*(GLfloat)w/(GLfloat)h, -2.5, 2.5, -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutCreateWindow (argv[0]);
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/scene.c b/progs/redbook/scene.c
deleted file mode 100644
index 6f336a8db4..0000000000
--- a/progs/redbook/scene.c
+++ /dev/null
@@ -1,141 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * scene.c
- * This program demonstrates the use of the GL lighting model.
- * Objects are drawn using a grey material characteristic.
- * A single light source illuminates the objects.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/* Initialize material property and light source.
- */
-static void myinit (void)
-{
- GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
-/* light_position is NOT default value */
- GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
-
- glLightfv (GL_LIGHT0, GL_AMBIENT, light_ambient);
- glLightfv (GL_LIGHT0, GL_DIFFUSE, light_diffuse);
- glLightfv (GL_LIGHT0, GL_SPECULAR, light_specular);
- glLightfv (GL_LIGHT0, GL_POSITION, light_position);
-
- glEnable (GL_LIGHTING);
- glEnable (GL_LIGHT0);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
-}
-
-static void display (void)
-{
- glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix ();
- glRotatef (20.0, 1.0, 0.0, 0.0);
-
- glPushMatrix ();
- glTranslatef (-0.75, 0.5, 0.0);
- glRotatef (90.0, 1.0, 0.0, 0.0);
- glutSolidTorus (0.275, 0.85, 15, 15);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (-0.75, -0.5, 0.0);
- glRotatef (270.0, 1.0, 0.0, 0.0);
- glutSolidCone (1.0, 2.0, 15, 15);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (0.75, 0.0, -1.0);
- glutSolidSphere (1.0, 15, 15);
- glPopMatrix ();
-
- glPopMatrix ();
- glFlush ();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport (0, 0, w, h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- if (w <= h)
- glOrtho (-2.5, 2.5, -2.5*(GLfloat)h/(GLfloat)w,
- 2.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0);
- else
- glOrtho (-2.5*(GLfloat)w/(GLfloat)h,
- 2.5*(GLfloat)w/(GLfloat)h, -2.5, 2.5, -10.0, 10.0);
- glMatrixMode (GL_MODELVIEW);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutCreateWindow (argv[0]);
- myinit ();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/scenebamb.c b/progs/redbook/scenebamb.c
deleted file mode 100644
index ea605f8c73..0000000000
--- a/progs/redbook/scenebamb.c
+++ /dev/null
@@ -1,140 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * scenebamb.c
- * This program demonstrates use of a blue ambient light
- * source.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/* Initialize light source and lighting.
- */
-static void myinit(void)
-{
- GLfloat light_ambient[] = { 0.0, 0.0, 1.0, 1.0 };
- GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
-/* light_position is NOT default value */
- GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
-
- glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
- glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix ();
- glRotatef (20.0, 1.0, 0.0, 0.0);
-
- glPushMatrix ();
- glTranslatef (-0.75, 0.5, 0.0);
- glRotatef (90.0, 1.0, 0.0, 0.0);
- glutSolidTorus (0.275, 0.85, 15, 15);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (-0.75, -0.5, 0.0);
- glRotatef (270.0, 1.0, 0.0, 0.0);
- glutSolidCone (1.0, 2.0, 15, 15);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (0.75, 0.0, -1.0);
- glutSolidSphere (1.0, 15, 15);
- glPopMatrix ();
-
- glPopMatrix ();
- glFlush();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho (-2.5, 2.5, -2.5*(GLfloat)h/(GLfloat)w,
- 2.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0);
- else
- glOrtho (-2.5*(GLfloat)w/(GLfloat)h,
- 2.5*(GLfloat)w/(GLfloat)h, -2.5, 2.5, -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutCreateWindow (argv[0]);
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/sceneflat.c b/progs/redbook/sceneflat.c
deleted file mode 100644
index 1b277334f5..0000000000
--- a/progs/redbook/sceneflat.c
+++ /dev/null
@@ -1,140 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * sceneflat.c
- * This program draws lighted objects with flat shading.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/* Initialize light source and shading model (GL_FLAT).
- */
-static void myinit(void)
-{
- GLfloat light_ambient[] = { 0.0, 0.0, 0.0, 1.0 };
- GLfloat light_diffuse[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat light_specular[] = { 1.0, 1.0, 1.0, 1.0 };
-/* light_position is NOT default value */
- GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
-
- glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
- glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
- glShadeModel (GL_FLAT);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix ();
- glRotatef (20.0, 1.0, 0.0, 0.0);
-
- glPushMatrix ();
- glTranslatef (-0.75, 0.5, 0.0);
- glRotatef (90.0, 1.0, 0.0, 0.0);
- glutSolidTorus (0.275, 0.85, 15, 15);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (-0.75, -0.5, 0.0);
- glRotatef (270.0, 1.0, 0.0, 0.0);
- glutSolidCone (1.0, 2.0, 15, 15);
- glPopMatrix ();
-
- glPushMatrix ();
- glTranslatef (0.75, 0.0, -1.0);
- glutSolidSphere (1.0, 15, 15);
- glPopMatrix ();
-
- glPopMatrix ();
- glFlush();
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho (-2.5, 2.5, -2.5*(GLfloat)h/(GLfloat)w,
- 2.5*(GLfloat)h/(GLfloat)w, -10.0, 10.0);
- else
- glOrtho (-2.5*(GLfloat)w/(GLfloat)h,
- 2.5*(GLfloat)w/(GLfloat)h, -2.5, 2.5, -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutCreateWindow (argv[0]);
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/select.c b/progs/redbook/select.c
deleted file mode 100644
index 537d5194d4..0000000000
--- a/progs/redbook/select.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * select.c
- * This is an illustration of the selection mode and
- * name stack, which detects whether objects which collide
- * with a viewing volume. First, four triangles and a
- * rectangular box representing a viewing volume are drawn
- * (drawScene routine). The green triangle and yellow
- * triangles appear to lie within the viewing volume, but
- * the red triangle appears to lie outside it. Then the
- * selection mode is entered (selectObjects routine).
- * Drawing to the screen ceases. To see if any collisions
- * occur, the four triangles are called. In this example,
- * the green triangle causes one hit with the name 1, and
- * the yellow triangles cause one hit with the name 3.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-/* draw a triangle with vertices at (x1, y1), (x2, y2)
- * and (x3, y3) at z units away from the origin.
- */
-static void drawTriangle (GLfloat x1, GLfloat y1, GLfloat x2,
- GLfloat y2, GLfloat x3, GLfloat y3, GLfloat z)
-{
- glBegin (GL_TRIANGLES);
- glVertex3f (x1, y1, z);
- glVertex3f (x2, y2, z);
- glVertex3f (x3, y3, z);
- glEnd ();
-}
-
-/* draw a rectangular box with these outer x, y, and z values */
-static void drawViewVolume (GLfloat x1, GLfloat x2, GLfloat y1,
- GLfloat y2, GLfloat z1, GLfloat z2)
-{
- glColor3f (1.0, 1.0, 1.0);
- glBegin (GL_LINE_LOOP);
- glVertex3f (x1, y1, -z1);
- glVertex3f (x2, y1, -z1);
- glVertex3f (x2, y2, -z1);
- glVertex3f (x1, y2, -z1);
- glEnd ();
-
- glBegin (GL_LINE_LOOP);
- glVertex3f (x1, y1, -z2);
- glVertex3f (x2, y1, -z2);
- glVertex3f (x2, y2, -z2);
- glVertex3f (x1, y2, -z2);
- glEnd ();
-
- glBegin (GL_LINES); /* 4 lines */
- glVertex3f (x1, y1, -z1);
- glVertex3f (x1, y1, -z2);
- glVertex3f (x1, y2, -z1);
- glVertex3f (x1, y2, -z2);
- glVertex3f (x2, y1, -z1);
- glVertex3f (x2, y1, -z2);
- glVertex3f (x2, y2, -z1);
- glVertex3f (x2, y2, -z2);
- glEnd ();
-}
-
-/* drawScene draws 4 triangles and a wire frame
- * which represents the viewing volume.
- */
-static void drawScene (void)
-{
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- gluPerspective (40.0, 4.0/3.0, 1.0, 100.0);
-
- glMatrixMode (GL_MODELVIEW);
- glLoadIdentity ();
- gluLookAt (7.5, 7.5, 12.5, 2.5, 2.5, -5.0, 0.0, 1.0, 0.0);
- glColor3f (0.0, 1.0, 0.0); /* green triangle */
- drawTriangle (2.0, 2.0, 3.0, 2.0, 2.5, 3.0, -5.0);
- glColor3f (1.0, 0.0, 0.0); /* red triangle */
- drawTriangle (2.0, 7.0, 3.0, 7.0, 2.5, 8.0, -5.0);
- glColor3f (1.0, 1.0, 0.0); /* yellow triangles */
- drawTriangle (2.0, 2.0, 3.0, 2.0, 2.5, 3.0, 0.0);
- drawTriangle (2.0, 2.0, 3.0, 2.0, 2.5, 3.0, -10.0);
- drawViewVolume (0.0, 5.0, 0.0, 5.0, 0.0, 10.0);
-}
-
-/* processHits prints out the contents of the selection array
- */
-static void processHits (GLint hits, GLuint buffer[])
-{
- GLint i;
- GLuint j, names, *ptr;
-
- printf ("hits = %d\n", hits);
- ptr = (GLuint *) buffer;
- for (i = 0; i < hits; i++) { /* for each hit */
- names = *ptr;
- printf (" number of names for hit = %d\n", names); ptr++;
- printf(" z1 is %g;", (float) *ptr/0x7fffffff); ptr++;
- printf(" z2 is %g\n", (float) *ptr/0x7fffffff); ptr++;
- printf (" the name is ");
- for (j = 0; j < names; j++) { /* for each name */
- printf ("%d ", *ptr); ptr++;
- }
- printf ("\n");
- }
-}
-
-/* selectObjects "draws" the triangles in selection mode,
- * assigning names for the triangles. Note that the third
- * and fourth triangles share one name, so that if either
- * or both triangles intersects the viewing/clipping volume,
- * only one hit will be registered.
- */
-#define BUFSIZE 512
-
-static void selectObjects(void)
-{
- GLuint selectBuf[BUFSIZE];
- GLint hits;
-
- glSelectBuffer (BUFSIZE, selectBuf);
- (void) glRenderMode (GL_SELECT);
-
- glInitNames();
- glPushName(0);
-
- glPushMatrix ();
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- glOrtho (0.0, 5.0, 0.0, 5.0, 0.0, 10.0);
- glMatrixMode (GL_MODELVIEW);
- glLoadIdentity ();
- glLoadName(1);
- drawTriangle (2.0, 2.0, 3.0, 2.0, 2.5, 3.0, -5.0);
- glLoadName(2);
- drawTriangle (2.0, 7.0, 3.0, 7.0, 2.5, 8.0, -5.0);
- glLoadName(3);
- drawTriangle (2.0, 2.0, 3.0, 2.0, 2.5, 3.0, 0.0);
- drawTriangle (2.0, 2.0, 3.0, 2.0, 2.5, 3.0, -10.0);
- glPopMatrix ();
- glFlush ();
-
- hits = glRenderMode (GL_RENDER);
- processHits (hits, selectBuf);
-}
-
-static void init (void)
-{
- glEnable(GL_DEPTH_TEST);
- glShadeModel(GL_FLAT);
-}
-
-static void display(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- drawScene ();
- selectObjects ();
- glFlush();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-/* Main Loop */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (200, 200);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init();
- glutDisplayFunc(display);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/shadowmap.c b/progs/redbook/shadowmap.c
deleted file mode 100644
index f37191d9ff..0000000000
--- a/progs/redbook/shadowmap.c
+++ /dev/null
@@ -1,352 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <GL/glew.h>
-#include <GL/glut.h>
-/*#include "helpers.h"*/
-
-#define SHADOW_MAP_WIDTH 256
-#define SHADOW_MAP_HEIGHT 256
-
-#define PI 3.14159265359
-
-GLdouble fovy = 60.0;
-GLdouble nearPlane = 10.0;
-GLdouble farPlane = 100.0;
-
-GLfloat angle = 0.0;
-GLfloat torusAngle = 0.0;
-
-GLfloat lightPos[] = { 25.0, 25.0, 25.0, 1.0 };
-GLfloat lookat[] = { 0.0, 0.0, 0.0 };
-GLfloat up[] = { 0.0, 0.0, 1.0 };
-
-GLboolean showShadow = GL_FALSE;
-
-static void
-init( void )
-{
- GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 };
-
- glTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT,
- SHADOW_MAP_WIDTH, SHADOW_MAP_HEIGHT, 0,
- GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, NULL );
-
- glLightfv( GL_LIGHT0, GL_POSITION, lightPos );
- glLightfv( GL_LIGHT0, GL_SPECULAR, white );
- glLightfv( GL_LIGHT0, GL_DIFFUSE, white );
-
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, GL_LEQUAL );
- glTexParameteri( GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE,
- GL_COMPARE_R_TO_TEXTURE );
-
- glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
- glTexGeni( GL_Q, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR );
-
- glColorMaterial( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE );
-
- glCullFace( GL_BACK );
-
- glEnable( GL_DEPTH_TEST );
- glEnable( GL_LIGHT0 );
- glEnable( GL_LIGHTING );
- glEnable( GL_TEXTURE_2D );
- glEnable( GL_TEXTURE_GEN_S );
- glEnable( GL_TEXTURE_GEN_T );
- glEnable( GL_TEXTURE_GEN_R );
- glEnable( GL_TEXTURE_GEN_Q );
- glEnable( GL_COLOR_MATERIAL );
- glEnable( GL_CULL_FACE );
-}
-
-static void
-reshape( int width, int height )
-{
- glViewport( 0, 0, width, height );
-
- glMatrixMode( GL_PROJECTION );
- glLoadIdentity();
- gluPerspective( fovy, (GLdouble) width/height, nearPlane, farPlane );
- glMatrixMode( GL_MODELVIEW );
-}
-
-static void
-idle( void )
-{
- angle += PI / 10000;
- torusAngle += .1;
- glutPostRedisplay();
-}
-
-static void
-keyboard( unsigned char key, int x, int y )
-{
- switch( key ) {
- case 27: /* Escape */
- exit( 0 );
- break;
-
- case 't': {
- static GLboolean textureOn = GL_TRUE;
- textureOn = !textureOn;
- if ( textureOn )
- glEnable( GL_TEXTURE_2D );
- else
- glDisable( GL_TEXTURE_2D );
- }
- break;
-
- case 'm': {
- static GLboolean compareMode = GL_TRUE;
- compareMode = !compareMode;
- printf( "Compare mode %s\n", compareMode ? "On" : "Off" );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE,
- compareMode ? GL_COMPARE_R_TO_TEXTURE : GL_NONE );
- }
- break;
-
- case 'f': {
- static GLboolean funcMode = GL_TRUE;
- funcMode = !funcMode;
- printf( "Operator %s\n", funcMode ? "GL_LEQUAL" : "GL_GEQUAL" );
- glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC,
- funcMode ? GL_LEQUAL : GL_GEQUAL );
- }
- break;
-
- case 's':
- showShadow = !showShadow;
- break;
-
- case 'p': {
- static GLboolean animate = GL_TRUE;
- animate = !animate;
- glutIdleFunc( animate ? idle : NULL );
- }
- break;
- }
-
- glutPostRedisplay();
-}
-
-static void
-transposeMatrix( GLfloat m[16] )
-{
- GLfloat tmp;
-#define Swap( a, b ) tmp = a; a = b; b = tmp
- Swap( m[1], m[4] );
- Swap( m[2], m[8] );
- Swap( m[3], m[12] );
- Swap( m[6], m[9] );
- Swap( m[7], m[13] );
- Swap( m[11], m[14] );
-#undef Swap
-}
-
-static void
-drawObjects( GLboolean shadowRender )
-{
- GLboolean textureOn = glIsEnabled( GL_TEXTURE_2D );
-
- if ( shadowRender )
- glDisable( GL_TEXTURE_2D );
-
- if ( !shadowRender ) {
- glNormal3f( 0, 0, 1 );
- glColor3f( 1, 1, 1 );
- glRectf( -20.0, -20.0, 20.0, 20.0 );
- }
-
- glPushMatrix();
- glTranslatef( 11, 11, 11 );
- glRotatef( 54.73, -5, 5, 0 );
- glRotatef( torusAngle, 1, 0, 0 );
- glColor3f( 1, 0, 0 );
- glutSolidTorus( 1, 4, 8, 36 );
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef( 2, 2, 2 );
- glColor3f( 0, 0, 1 );
- glutSolidCube( 4 );
- glPopMatrix();
-
- glPushMatrix();
- glTranslatef( lightPos[0], lightPos[1], lightPos[2] );
- glColor3f( 1, 1, 1 );
- glutWireSphere( 0.5, 6, 6 );
- glPopMatrix();
-
- if ( shadowRender && textureOn )
- glEnable( GL_TEXTURE_2D );
-}
-
-static void
-generateShadowMap( void )
-{
- GLint viewport[4];
- GLfloat lightPos[4];
-
- glGetLightfv( GL_LIGHT0, GL_POSITION, lightPos );
- glGetIntegerv( GL_VIEWPORT, viewport );
-
- glViewport( 0, 0, SHADOW_MAP_WIDTH, SHADOW_MAP_HEIGHT );
-
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glMatrixMode( GL_PROJECTION );
- glPushMatrix();
- glLoadIdentity();
- gluPerspective( 80.0, 1.0, 10.0, 1000.0 );
- glMatrixMode( GL_MODELVIEW );
-
- glPushMatrix();
- glLoadIdentity();
- gluLookAt( lightPos[0], lightPos[1], lightPos[2],
- lookat[0], lookat[1], lookat[2],
- up[0], up[1], up[2] );
-
- drawObjects( GL_TRUE );
-
- glPopMatrix();
- glMatrixMode( GL_PROJECTION );
- glPopMatrix();
- glMatrixMode( GL_MODELVIEW );
-
- glCopyTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 0, 0,
- SHADOW_MAP_WIDTH, SHADOW_MAP_HEIGHT, 0 );
-
- glViewport( viewport[0], viewport[1], viewport[2], viewport[3] );
-
- if ( showShadow ) {
- GLfloat depthImage[SHADOW_MAP_WIDTH][SHADOW_MAP_HEIGHT];
- glReadPixels( 0, 0, SHADOW_MAP_WIDTH, SHADOW_MAP_HEIGHT,
- GL_DEPTH_COMPONENT, GL_FLOAT, depthImage );
- glWindowPos2f( viewport[2]/2, 0 );
- glDrawPixels( SHADOW_MAP_WIDTH, SHADOW_MAP_HEIGHT, GL_LUMINANCE,
- GL_FLOAT, depthImage );
- glutSwapBuffers();
- }
-}
-
-static void
-generateTextureMatrix( void )
-{
- GLfloat tmpMatrix[16];
-
- /*
- * Set up projective texture matrix. We use the GL_MODELVIEW matrix
- * stack and OpenGL matrix commands to make the matrix.
- */
- glPushMatrix();
- glLoadIdentity();
- glTranslatef( 0.5, 0.5, 0.0 );
- glScalef( 0.5, 0.5, 1.0 );
- gluPerspective( 60.0, 1.0, 1.0, 1000.0 );
- gluLookAt( lightPos[0], lightPos[1], lightPos[2],
- lookat[0], lookat[1], lookat[2],
- up[0], up[1], up[2] );
- glGetFloatv( GL_MODELVIEW_MATRIX, tmpMatrix );
- glPopMatrix();
-
- transposeMatrix( tmpMatrix );
-
- glTexGenfv( GL_S, GL_OBJECT_PLANE, &tmpMatrix[0] );
- glTexGenfv( GL_T, GL_OBJECT_PLANE, &tmpMatrix[4] );
- glTexGenfv( GL_R, GL_OBJECT_PLANE, &tmpMatrix[8] );
- glTexGenfv( GL_Q, GL_OBJECT_PLANE, &tmpMatrix[12] );
-}
-
-static void
-display( void )
-{
- GLfloat radius = 30;
-
- generateShadowMap();
- generateTextureMatrix();
-
- if ( showShadow )
- return;
-
- glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
-
- glPushMatrix();
- gluLookAt( radius*cos(angle), radius*sin(angle), 30,
- lookat[0], lookat[1], lookat[2],
- up[0], up[1], up[2] );
- drawObjects( GL_FALSE );
- glPopMatrix();
-
- glutSwapBuffers();
-}
-
-int
-main( int argc, char** argv )
-{
- glutInit( &argc, argv );
- glutInitDisplayMode( GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE );
- glutInitWindowSize( 512, 512 );
- glutInitWindowPosition( 100, 100 );
- glutCreateWindow( argv[0] );
- glewInit();
-
- init();
-
- glutDisplayFunc( display );
- glutReshapeFunc( reshape );
- glutKeyboardFunc( keyboard );
- glutIdleFunc( idle );
-
- glutMainLoop();
-
- return 0;
-}
diff --git a/progs/redbook/smooth.c b/progs/redbook/smooth.c
deleted file mode 100644
index 874033d5ad..0000000000
--- a/progs/redbook/smooth.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * smooth.c
- * This program demonstrates smooth shading.
- * A smooth shaded polygon is drawn in a 2-D projection.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_SMOOTH);
-}
-
-static void triangle(void)
-{
- glBegin (GL_TRIANGLES);
- glColor3f (1.0, 0.0, 0.0);
- glVertex2f (5.0, 5.0);
- glColor3f (0.0, 1.0, 0.0);
- glVertex2f (25.0, 5.0);
- glColor3f (0.0, 0.0, 1.0);
- glVertex2f (5.0, 25.0);
- glEnd();
-}
-
-static void display(void)
-{
- glClear (GL_COLOR_BUFFER_BIT);
- triangle ();
- glFlush ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- if (w <= h)
- gluOrtho2D (0.0, 30.0, 0.0, 30.0 * (GLfloat) h/(GLfloat) w);
- else
- gluOrtho2D (0.0, 30.0 * (GLfloat) w/(GLfloat) h, 0.0, 30.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/stencil.c b/progs/redbook/stencil.c
deleted file mode 100644
index 5325abf8b7..0000000000
--- a/progs/redbook/stencil.c
+++ /dev/null
@@ -1,193 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/* stencil.c
- * This program draws two rotated tori in a window.
- * A diamond in the center of the window masks out part
- * of the scene. Within this mask, a different model
- * (a sphere) is drawn in a different color.
- */
-
-/*
- * !!! NOTE !!!
- *
- * This demo is poorly written. The stencil buffer should be
- * redrawn in display(), not in the myReshape() function.
- * The reason is if the window gets "damaged" then the stencil buffer
- * contents will be in an undefined state (myReshape is not called when
- * a window is damaged and needs to be redrawn). If the stencil buffer
- * contents are undefined, the results of display() are unpredictable.
- *
- * -Brian
- */
-
-
-#include <stdlib.h>
-#include <GL/glut.h>
-
-#define YELLOWMAT 1
-#define BLUEMAT 2
-
-static void myinit (void)
-{
- GLfloat yellow_diffuse[] = { 0.7, 0.7, 0.0, 1.0 };
- GLfloat yellow_specular[] = { 1.0, 1.0, 1.0, 1.0 };
-
- GLfloat blue_diffuse[] = { 0.1, 0.1, 0.7, 1.0 };
- GLfloat blue_specular[] = { 0.1, 1.0, 1.0, 1.0 };
-
- GLfloat position_one[] = { 1.0, 1.0, 1.0, 0.0 };
-
- glNewList(YELLOWMAT, GL_COMPILE);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, yellow_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, yellow_specular);
- glMaterialf(GL_FRONT, GL_SHININESS, 64.0);
- glEndList();
-
- glNewList(BLUEMAT, GL_COMPILE);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, blue_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, blue_specular);
- glMaterialf(GL_FRONT, GL_SHININESS, 45.0);
- glEndList();
-
- glLightfv(GL_LIGHT0, GL_POSITION, position_one);
-
- glEnable(GL_LIGHT0);
- glEnable(GL_LIGHTING);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
-
- glClearStencil(0x0);
- glEnable(GL_STENCIL_TEST);
-
-}
-
-/* Draw a sphere in a diamond-shaped section in the
- * middle of a window with 2 tori.
- */
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glStencilOp (GL_KEEP, GL_KEEP, GL_KEEP);
-
-/* draw blue sphere where the stencil is 1 */
- glStencilFunc (GL_EQUAL, 0x1, 0x1);
- glCallList (BLUEMAT);
- glutSolidSphere (0.5, 15, 15);
-
-/* draw the tori where the stencil is not 1 */
- glStencilFunc (GL_NOTEQUAL, 0x1, 0x1);
- glPushMatrix();
- glRotatef (45.0, 0.0, 0.0, 1.0);
- glRotatef (45.0, 0.0, 1.0, 0.0);
- glCallList (YELLOWMAT);
- glutSolidTorus (0.275, 0.85, 15, 15);
- glPushMatrix();
- glRotatef (90.0, 1.0, 0.0, 0.0);
- glutSolidTorus (0.275, 0.85, 15, 15);
- glPopMatrix();
- glPopMatrix();
-
- glFlush();
- glutSwapBuffers();
-}
-
-/* Whenever the window is reshaped, redefine the
- * coordinate system and redraw the stencil area.
- */
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
-
- glClear(GL_STENCIL_BUFFER_BIT);
-/* create a diamond shaped stencil area */
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-3.0, 3.0, -3.0, 3.0, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-
- glStencilFunc (GL_ALWAYS, 0x1, 0x1);
- glStencilOp (GL_REPLACE, GL_REPLACE, GL_REPLACE);
- glBegin(GL_QUADS);
- glVertex3f (-1.0, 0.0, 0.0);
- glVertex3f (0.0, 1.0, 0.0);
- glVertex3f (1.0, 0.0, 0.0);
- glVertex3f (0.0, -1.0, 0.0);
- glEnd();
-
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(45.0, (GLfloat) w/(GLfloat) h, 3.0, 7.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -5.0);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_STENCIL);
- glutInitWindowSize (400, 400);
- glutCreateWindow (argv[0]);
- myinit ();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/stroke.c b/progs/redbook/stroke.c
deleted file mode 100644
index 68b639abf4..0000000000
--- a/progs/redbook/stroke.c
+++ /dev/null
@@ -1,195 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/*
- * stroke.c
- * This program demonstrates some characters of a
- * stroke (vector) font. The characters are represented
- * by display lists, which are given numbers which
- * correspond to the ASCII values of the characters.
- * Use of glCallLists() is demonstrated.
- */
-#include <stdlib.h>
-#include <string.h>
-#include <GL/glut.h>
-
-#define PT 1
-#define STROKE 2
-#define END 3
-
-typedef struct charpoint {
- GLfloat x, y;
- int type;
-} CP;
-
-CP Adata[] = {
- { 0, 0, PT}, {0, 9, PT}, {1, 10, PT}, {4, 10, PT},
- {5, 9, PT}, {5, 0, STROKE}, {0, 5, PT}, {5, 5, END}
-};
-
-CP Edata[] = {
- {5, 0, PT}, {0, 0, PT}, {0, 10, PT}, {5, 10, STROKE},
- {0, 5, PT}, {4, 5, END}
-};
-
-CP Pdata[] = {
- {0, 0, PT}, {0, 10, PT}, {4, 10, PT}, {5, 9, PT}, {5, 6, PT},
- {4, 5, PT}, {0, 5, END}
-};
-
-CP Rdata[] = {
- {0, 0, PT}, {0, 10, PT}, {4, 10, PT}, {5, 9, PT}, {5, 6, PT},
- {4, 5, PT}, {0, 5, STROKE}, {3, 5, PT}, {5, 0, END}
-};
-
-CP Sdata[] = {
- {0, 1, PT}, {1, 0, PT}, {4, 0, PT}, {5, 1, PT}, {5, 4, PT},
- {4, 5, PT}, {1, 5, PT}, {0, 6, PT}, {0, 9, PT}, {1, 10, PT},
- {4, 10, PT}, {5, 9, END}
-};
-
-/* drawLetter() interprets the instructions from the array
- * for that letter and renders the letter with line segments.
- */
-static void drawLetter(CP *l)
-{
- glBegin(GL_LINE_STRIP);
- for (;;) {
- switch (l->type) {
- case PT:
- glVertex2fv(&l->x);
- break;
- case STROKE:
- glVertex2fv(&l->x);
- glEnd();
- glBegin(GL_LINE_STRIP);
- break;
- case END:
- glVertex2fv(&l->x);
- glEnd();
- glTranslatef(8.0, 0.0, 0.0);
- return;
- }
- l++;
- }
-}
-
-/* Create a display list for each of 6 characters */
-static void myinit (void)
-{
- GLuint base;
-
- glShadeModel (GL_FLAT);
-
- base = glGenLists (128);
- glListBase(base);
- glNewList(base+'A', GL_COMPILE); drawLetter(Adata); glEndList();
- glNewList(base+'E', GL_COMPILE); drawLetter(Edata); glEndList();
- glNewList(base+'P', GL_COMPILE); drawLetter(Pdata); glEndList();
- glNewList(base+'R', GL_COMPILE); drawLetter(Rdata); glEndList();
- glNewList(base+'S', GL_COMPILE); drawLetter(Sdata); glEndList();
- glNewList(base+' ', GL_COMPILE); glTranslatef(8.0, 0.0, 0.0); glEndList();
-}
-
-char *test1 = "A SPARE SERAPE APPEARS AS";
-char *test2 = "APES PREPARE RARE PEPPERS";
-
-static void printStrokedString(char *s)
-{
- GLsizei len = (GLsizei) strlen(s);
- glCallLists(len, GL_BYTE, (GLbyte *)s);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3f(1.0, 1.0, 1.0);
- glPushMatrix();
- glScalef(2.0, 2.0, 2.0);
- glTranslatef(10.0, 30.0, 0.0);
- printStrokedString(test1);
- glPopMatrix();
- glPushMatrix();
- glScalef(2.0, 2.0, 2.0);
- glTranslatef(10.0, 13.0, 0.0);
- printStrokedString(test2);
- glPopMatrix();
- glFlush();
-}
-
-static void reshape(GLsizei w, GLsizei h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0.0, (GLdouble)w, 0.0, (GLdouble)h, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (440, 120);
- glutCreateWindow (argv[0]);
- myinit ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/surface.c b/progs/redbook/surface.c
deleted file mode 100644
index f0c5ab0b47..0000000000
--- a/progs/redbook/surface.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/* aux2glut conversion Copyright (c) Mark J. Kilgard, 1994, 1995 */
-
-/**
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/**
- * surface.c
- * This program draws a NURBS surface in the shape of a
- * symmetrical hill.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-GLfloat ctlpoints[4][4][3];
-int showPoints = 0;
-
-GLUnurbsObj *theNurb;
-
-/*
- * Initializes the control points of the surface to a small hill.
- * The control points range from -3 to +3 in x, y, and z
- */
-static void init_surface(void)
-{
- int u, v;
- for (u = 0; u < 4; u++) {
- for (v = 0; v < 4; v++) {
- ctlpoints[u][v][0] = 2.0*((GLfloat)u - 1.5);
- ctlpoints[u][v][1] = 2.0*((GLfloat)v - 1.5);
-
- if ( (u == 1 || u == 2) && (v == 1 || v == 2))
- ctlpoints[u][v][2] = 7.0;
- else
- ctlpoints[u][v][2] = -3.0;
- }
- }
-}
-
-/* Initialize material property and depth buffer.
- */
-static void myinit(void)
-{
- GLfloat mat_diffuse[] = { 0.7, 0.7, 0.7, 1.0 };
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat mat_shininess[] = { 100.0 };
-
- glClearColor (0.0, 0.0, 0.0, 1.0);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
-
- init_surface();
-
- theNurb = gluNewNurbsRenderer();
- gluNurbsProperty(theNurb, GLU_SAMPLING_TOLERANCE, 25.0);
- gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL);
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef (0.0, 0.0, -5.0);
-}
-
-static void display(void)
-{
- GLfloat knots[8] = {0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0};
- int i, j;
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix();
- glRotatef(330.0, 1.,0.,0.);
- glScalef (0.25, 0.25, 0.25);
-
- gluBeginSurface(theNurb);
- gluNurbsSurface(theNurb,
- 8, knots,
- 8, knots,
- 4 * 3,
- 3,
- &ctlpoints[0][0][0],
- 4, 4,
- GL_MAP2_VERTEX_3);
- gluEndSurface(theNurb);
-
- if(showPoints) {
- glPointSize(5.0);
- glDisable(GL_LIGHTING);
- glColor3f(1.0, 1.0, 0.0);
- glBegin(GL_POINTS);
- for(i=0;i<4;i++) {
- for(j=0;j<4;j++) {
- glVertex3f(ctlpoints[i][j][0], ctlpoints[i][j][1], ctlpoints[i][j][2]);
- }
- }
- glEnd();
- glEnable(GL_LIGHTING);
- }
-
- glPopMatrix();
- glutSwapBuffers();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective (45.0, (GLdouble)w/(GLdouble)h, 3.0, 8.0);
-
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void
-menu(int value)
-{
- switch (value) {
- case 0:
- case 1:
- showPoints = value;
- break;
- case 2:
- gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL);
- break;
- case 3:
- gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_OUTLINE_POLYGON);
- break;
- }
- glutPostRedisplay();
-}
-
-int down = 0, lastx;
-
-/* ARGSUSED1 */
-static void
-motion(int x, int y)
-{
- if (down) {
- glRotatef(lastx - x, 0, 1, 0);
- lastx = x;
- glutPostRedisplay();
- }
-}
-
-/* ARGSUSED3 */
-static void
-mouse(int button, int state, int x, int y)
-{
- if (button == GLUT_LEFT_BUTTON) {
- if (state == GLUT_DOWN) {
- lastx = x;
- down = 1;
- } else {
- down = 0;
- }
- }
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop */
-int
-main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGB);
- glutCreateWindow(argv[0]);
- myinit();
- glutReshapeFunc(reshape);
- glutDisplayFunc(display);
- glutCreateMenu(menu);
- glutAddMenuEntry("Show control points", 1);
- glutAddMenuEntry("Hide control points", 0);
- glutAddMenuEntry("Solid", 2);
- glutAddMenuEntry("Wireframe", 3);
- glutAttachMenu(GLUT_RIGHT_BUTTON);
- glutMouseFunc(mouse);
- glutMotionFunc(motion);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/surfpoints.c b/progs/redbook/surfpoints.c
deleted file mode 100644
index 094f0dada8..0000000000
--- a/progs/redbook/surfpoints.c
+++ /dev/null
@@ -1,280 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * surfpoints.c
- * This program is a modification of the earlier surface.c
- * program. The vertex data are not directly rendered,
- * but are instead passed to the callback function.
- * The values of the tessellated vertices are printed
- * out there.
- *
- * This program draws a NURBS surface in the shape of a
- * symmetrical hill. The 'c' keyboard key allows you to
- * toggle the visibility of the control points themselves.
- * Note that some of the control points are hidden by the
- * surface itself.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef GLU_VERSION_1_3
-
-#ifndef CALLBACK
-#define CALLBACK
-#endif
-
-GLfloat ctlpoints[4][4][3];
-int showPoints = 0;
-
-GLUnurbsObj *theNurb;
-
-/*
- * Initializes the control points of the surface to a small hill.
- * The control points range from -3 to +3 in x, y, and z
- */
-static void init_surface(void)
-{
- int u, v;
- for (u = 0; u < 4; u++) {
- for (v = 0; v < 4; v++) {
- ctlpoints[u][v][0] = 2.0*((GLfloat)u - 1.5);
- ctlpoints[u][v][1] = 2.0*((GLfloat)v - 1.5);
-
- if ( (u == 1 || u == 2) && (v == 1 || v == 2))
- ctlpoints[u][v][2] = 3.0;
- else
- ctlpoints[u][v][2] = -3.0;
- }
- }
-}
-
-static void CALLBACK nurbsError(GLenum errorCode)
-{
- const GLubyte *estring;
-
- estring = gluErrorString(errorCode);
- fprintf (stderr, "Nurbs Error: %s\n", estring);
- exit (0);
-}
-
-static void CALLBACK beginCallback(GLenum whichType)
-{
- glBegin (whichType); /* resubmit rendering directive */
- printf ("glBegin(");
- switch (whichType) { /* print diagnostic message */
- case GL_LINES:
- printf ("GL_LINES)\n");
- break;
- case GL_LINE_LOOP:
- printf ("GL_LINE_LOOP)\n");
- break;
- case GL_LINE_STRIP:
- printf ("GL_LINE_STRIP)\n");
- break;
- case GL_TRIANGLES:
- printf ("GL_TRIANGLES)\n");
- break;
- case GL_TRIANGLE_STRIP:
- printf ("GL_TRIANGLE_STRIP)\n");
- break;
- case GL_TRIANGLE_FAN:
- printf ("GL_TRIANGLE_FAN)\n");
- break;
- case GL_QUADS:
- printf ("GL_QUADS)\n");
- break;
- case GL_QUAD_STRIP:
- printf ("GL_QUAD_STRIP)\n");
- break;
- case GL_POLYGON:
- printf ("GL_POLYGON)\n");
- break;
- default:
- break;
- }
-}
-
-static void CALLBACK endCallback()
-{
- glEnd(); /* resubmit rendering directive */
- printf ("glEnd()\n");
-}
-
-static void CALLBACK vertexCallback(GLfloat *vertex)
-{
- glVertex3fv(vertex); /* resubmit rendering directive */
- printf ("glVertex3f (%5.3f, %5.3f, %5.3f)\n",
- vertex[0], vertex[1], vertex[2]);
-}
-
-static void CALLBACK normalCallback(GLfloat *normal)
-{
- glNormal3fv(normal); /* resubmit rendering directive */
- printf ("glNormal3f (%5.3f, %5.3f, %5.3f)\n",
- normal[0], normal[1], normal[2]);
-}
-
-/* Initialize material property and depth buffer.
- */
-static void init(void)
-{
- GLfloat mat_diffuse[] = { 0.7, 0.7, 0.7, 1.0 };
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat mat_shininess[] = { 100.0 };
-
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
-
- init_surface();
-
- theNurb = gluNewNurbsRenderer();
- gluNurbsProperty(theNurb, GLU_NURBS_MODE,
- GLU_NURBS_TESSELLATOR);
- gluNurbsProperty(theNurb, GLU_SAMPLING_TOLERANCE, 25.0);
- gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL);
- gluNurbsCallback(theNurb, GLU_ERROR, nurbsError);
- gluNurbsCallback(theNurb, GLU_NURBS_BEGIN, beginCallback);
- gluNurbsCallback(theNurb, GLU_NURBS_VERTEX, vertexCallback);
- gluNurbsCallback(theNurb, GLU_NURBS_NORMAL, normalCallback);
- gluNurbsCallback(theNurb, GLU_NURBS_END, endCallback);
-
-}
-
-static void display(void)
-{
- GLfloat knots[8] = {0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0};
- int i, j;
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix();
- glRotatef(330.0, 1.,0.,0.);
- glScalef (0.5, 0.5, 0.5);
-
- gluBeginSurface(theNurb);
- gluNurbsSurface(theNurb,
- 8, knots, 8, knots,
- 4 * 3, 3, &ctlpoints[0][0][0],
- 4, 4, GL_MAP2_VERTEX_3);
- gluEndSurface(theNurb);
-
- if (showPoints) {
- glPointSize(5.0);
- glDisable(GL_LIGHTING);
- glColor3f(1.0, 1.0, 0.0);
- glBegin(GL_POINTS);
- for (i = 0; i < 4; i++) {
- for (j = 0; j < 4; j++) {
- glVertex3f(ctlpoints[i][j][0],
- ctlpoints[i][j][1], ctlpoints[i][j][2]);
- }
- }
- glEnd();
- glEnable(GL_LIGHTING);
- }
- glPopMatrix();
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective (45.0, (GLdouble)w/(GLdouble)h, 3.0, 8.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef (0.0, 0.0, -5.0);
-}
-
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'c':
- case 'C':
- showPoints = !showPoints;
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutReshapeFunc(reshape);
- glutDisplayFunc(display);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
-
-#else
-int main(int argc, char** argv)
-{
- fprintf (stderr, "This program demonstrates a feature which is introduced in the\n");
- fprintf (stderr, "OpenGL Utility Library (GLU) Version 1.3.\n");
- fprintf (stderr, "If your implementation of GLU has the right extensions,\n");
- fprintf (stderr, "you may be able to modify this program to make it run.\n");
- return 0;
-}
-#endif
-
diff --git a/progs/redbook/teaambient.c b/progs/redbook/teaambient.c
deleted file mode 100644
index 20ff1a4a33..0000000000
--- a/progs/redbook/teaambient.c
+++ /dev/null
@@ -1,162 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/**
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/**
- * teaambient.c
- * This program renders three lighted, shaded teapots, with
- * different ambient values.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/* Initialize light source and lighting model.
- */
-static void
-myinit(void)
-{
- GLfloat light_ambient[] =
- {0.0, 0.0, 0.0, 1.0};
- GLfloat light_diffuse[] =
- {1.0, 1.0, 1.0, 1.0};
- GLfloat light_specular[] =
- {1.0, 1.0, 1.0, 1.0};
-/* light_position is NOT default value */
- GLfloat light_position[] =
- {1.0, 0.0, 0.0, 0.0};
- GLfloat global_ambient[] =
- {0.75, 0.75, 0.75, 1.0};
-
- glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
- glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
- glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
- glLightfv(GL_LIGHT0, GL_POSITION, light_position);
-
- glLightModelfv(GL_LIGHT_MODEL_AMBIENT, global_ambient);
-
- glFrontFace(GL_CW);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
- glDepthFunc(GL_LESS);
- glEnable(GL_DEPTH_TEST);
-}
-
-static void
-display(void)
-{
- GLfloat low_ambient[] =
- {0.1, 0.1, 0.1, 1.0};
- GLfloat more_ambient[] =
- {0.4, 0.4, 0.4, 1.0};
- GLfloat most_ambient[] =
- {1.0, 1.0, 1.0, 1.0};
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- /* material has small ambient reflection */
- glMaterialfv(GL_FRONT, GL_AMBIENT, low_ambient);
- glMaterialf(GL_FRONT, GL_SHININESS, 40.0);
- glPushMatrix();
- glTranslatef(0.0, 2.0, 0.0);
- glutSolidTeapot(1.0);
- glPopMatrix();
-
- /* material has moderate ambient reflection */
- glMaterialfv(GL_FRONT, GL_AMBIENT, more_ambient);
- glPushMatrix();
- glTranslatef(0.0, 0.0, 0.0);
- glutSolidTeapot(1.0);
- glPopMatrix();
-
- /* material has large ambient reflection */
- glMaterialfv(GL_FRONT, GL_AMBIENT, most_ambient);
- glPushMatrix();
- glTranslatef(0.0, -2.0, 0.0);
- glutSolidTeapot(1.0);
- glPopMatrix();
- glFlush();
-}
-
-static void
-myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho(-4.0, 4.0, -4.0 * (GLfloat) h / (GLfloat) w,
- 4.0 * (GLfloat) h / (GLfloat) w, -10.0, 10.0);
- else
- glOrtho(-4.0 * (GLfloat) w / (GLfloat) h,
- 4.0 * (GLfloat) w / (GLfloat) h, -4.0, 4.0, -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/* Main Loop
- * Open window with initial window size, title bar,
- * RGBA display mode, and handle input events.
- */
-int
-main(int argc, char **argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(500, 500);
- glutCreateWindow(argv[0]);
- myinit();
- glutReshapeFunc(myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/teapots.c b/progs/redbook/teapots.c
deleted file mode 100644
index 102c18a3e3..0000000000
--- a/progs/redbook/teapots.c
+++ /dev/null
@@ -1,220 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/**
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/**
- * teapots.c
- * This program demonstrates lots of material properties.
- * A single light source illuminates the objects.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-
-/*
- * Initialize depth buffer, projection matrix, light source, and lighting
- * model. Do not specify a material property here.
- */
-static void
-myinit(void)
-{
- GLfloat ambient[] =
- {0.0, 0.0, 0.0, 1.0};
- GLfloat diffuse[] =
- {1.0, 1.0, 1.0, 1.0};
- GLfloat position[] =
- {0.0, 3.0, 3.0, 0.0};
-
- GLfloat lmodel_ambient[] =
- {0.2, 0.2, 0.2, 1.0};
- GLfloat local_view[] =
- {0.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_LOCAL_VIEWER, local_view);
-
- glFrontFace(GL_CW);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
- glEnable(GL_DEPTH_TEST);
- glDepthFunc(GL_LESS);
-}
-
-/*
- * Move object into position. Use 3rd through 12th parameters to specify the
- * material property. Draw a teapot.
- */
-static void
-renderTeapot(GLfloat x, GLfloat y,
- GLfloat ambr, GLfloat ambg, GLfloat ambb,
- GLfloat difr, GLfloat difg, GLfloat difb,
- GLfloat specr, GLfloat specg, GLfloat specb, GLfloat shine)
-{
- float mat[4];
-
- glPushMatrix();
- glTranslatef(x, y, 0.0);
- mat[0] = ambr;
- mat[1] = ambg;
- mat[2] = ambb;
- mat[3] = 1.0;
- glMaterialfv(GL_FRONT, GL_AMBIENT, mat);
- mat[0] = difr;
- mat[1] = difg;
- mat[2] = difb;
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat);
- mat[0] = specr;
- mat[1] = specg;
- mat[2] = specb;
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat);
- glMaterialf(GL_FRONT, GL_SHININESS, shine * 128.0);
- glutSolidTeapot(1.0);
- glPopMatrix();
-}
-
-/**
- * First column: emerald, jade, obsidian, pearl, ruby, turquoise
- * 2nd column: brass, bronze, chrome, copper, gold, silver
- * 3rd column: black, cyan, green, red, white, yellow plastic
- * 4th column: black, cyan, green, red, white, yellow rubber
- */
-static void
-display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- renderTeapot(2.0, 17.0, 0.0215, 0.1745, 0.0215,
- 0.07568, 0.61424, 0.07568, 0.633, 0.727811, 0.633, 0.6);
- renderTeapot(2.0, 14.0, 0.135, 0.2225, 0.1575,
- 0.54, 0.89, 0.63, 0.316228, 0.316228, 0.316228, 0.1);
- renderTeapot(2.0, 11.0, 0.05375, 0.05, 0.06625,
- 0.18275, 0.17, 0.22525, 0.332741, 0.328634, 0.346435, 0.3);
- renderTeapot(2.0, 8.0, 0.25, 0.20725, 0.20725,
- 1, 0.829, 0.829, 0.296648, 0.296648, 0.296648, 0.088);
- renderTeapot(2.0, 5.0, 0.1745, 0.01175, 0.01175,
- 0.61424, 0.04136, 0.04136, 0.727811, 0.626959, 0.626959, 0.6);
- renderTeapot(2.0, 2.0, 0.1, 0.18725, 0.1745,
- 0.396, 0.74151, 0.69102, 0.297254, 0.30829, 0.306678, 0.1);
- renderTeapot(6.0, 17.0, 0.329412, 0.223529, 0.027451,
- 0.780392, 0.568627, 0.113725, 0.992157, 0.941176, 0.807843,
- 0.21794872);
- renderTeapot(6.0, 14.0, 0.2125, 0.1275, 0.054,
- 0.714, 0.4284, 0.18144, 0.393548, 0.271906, 0.166721, 0.2);
- renderTeapot(6.0, 11.0, 0.25, 0.25, 0.25,
- 0.4, 0.4, 0.4, 0.774597, 0.774597, 0.774597, 0.6);
- renderTeapot(6.0, 8.0, 0.19125, 0.0735, 0.0225,
- 0.7038, 0.27048, 0.0828, 0.256777, 0.137622, 0.086014, 0.1);
- renderTeapot(6.0, 5.0, 0.24725, 0.1995, 0.0745,
- 0.75164, 0.60648, 0.22648, 0.628281, 0.555802, 0.366065, 0.4);
- renderTeapot(6.0, 2.0, 0.19225, 0.19225, 0.19225,
- 0.50754, 0.50754, 0.50754, 0.508273, 0.508273, 0.508273, 0.4);
- renderTeapot(10.0, 17.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.01,
- 0.50, 0.50, 0.50, .25);
- renderTeapot(10.0, 14.0, 0.0, 0.1, 0.06, 0.0, 0.50980392, 0.50980392,
- 0.50196078, 0.50196078, 0.50196078, .25);
- renderTeapot(10.0, 11.0, 0.0, 0.0, 0.0,
- 0.1, 0.35, 0.1, 0.45, 0.55, 0.45, .25);
- renderTeapot(10.0, 8.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0,
- 0.7, 0.6, 0.6, .25);
- renderTeapot(10.0, 5.0, 0.0, 0.0, 0.0, 0.55, 0.55, 0.55,
- 0.70, 0.70, 0.70, .25);
- renderTeapot(10.0, 2.0, 0.0, 0.0, 0.0, 0.5, 0.5, 0.0,
- 0.60, 0.60, 0.50, .25);
- renderTeapot(14.0, 17.0, 0.02, 0.02, 0.02, 0.01, 0.01, 0.01,
- 0.4, 0.4, 0.4, .078125);
- renderTeapot(14.0, 14.0, 0.0, 0.05, 0.05, 0.4, 0.5, 0.5,
- 0.04, 0.7, 0.7, .078125);
- renderTeapot(14.0, 11.0, 0.0, 0.05, 0.0, 0.4, 0.5, 0.4,
- 0.04, 0.7, 0.04, .078125);
- renderTeapot(14.0, 8.0, 0.05, 0.0, 0.0, 0.5, 0.4, 0.4,
- 0.7, 0.04, 0.04, .078125);
- renderTeapot(14.0, 5.0, 0.05, 0.05, 0.05, 0.5, 0.5, 0.5,
- 0.7, 0.7, 0.7, .078125);
- renderTeapot(14.0, 2.0, 0.05, 0.05, 0.0, 0.5, 0.5, 0.4,
- 0.7, 0.7, 0.04, .078125);
- glFlush();
-}
-
-static void
-myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho(0.0, 16.0, 0.0, 18.0 * (GLfloat) h / (GLfloat) w,
- -10.0, 10.0);
- else
- glOrtho(0.0, 16.0 * (GLfloat) w / (GLfloat) h, 0.0, 18.0,
- -10.0, 10.0);
- glMatrixMode(GL_MODELVIEW);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-/*
- * Main Loop Open window with initial window size, title bar, RGBA display
- * mode, and handle input events.
- */
-int
-main(int argc, char **argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutCreateWindow(argv[0]);
- myinit();
- glutReshapeFunc(myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/tess.c b/progs/redbook/tess.c
deleted file mode 100644
index 0bf8a8eb98..0000000000
--- a/progs/redbook/tess.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * tess.c
- * This program demonstrates polygon tessellation.
- * Two tesselated objects are drawn. The first is a
- * rectangle with a triangular hole. The second is a
- * smooth shaded, self-intersecting star.
- *
- * Note the exterior rectangle is drawn with its vertices
- * in counter-clockwise order, but its interior clockwise.
- * Note the combineCallback is needed for the self-intersecting
- * star. Also note that removing the TessProperty for the
- * star will make the interior unshaded (WINDING_ODD).
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef GLU_VERSION_1_2
-
-/* Win32 calling conventions. */
-#ifndef CALLBACK
-#define CALLBACK
-#endif
-
-GLuint startList;
-
-static void display (void) {
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3f(1.0, 1.0, 1.0);
- glCallList(startList);
- glCallList(startList + 1);
- glFlush();
-}
-
-static void CALLBACK beginCallback(GLenum which)
-{
- glBegin(which);
-}
-
-static void CALLBACK errorCallback(GLenum errorCode)
-{
- const GLubyte *estring;
-
- estring = gluErrorString(errorCode);
- fprintf(stderr, "Tessellation Error: %s\n", (char *) estring);
- exit(0);
-}
-
-static void CALLBACK endCallback(void)
-{
- glEnd();
-}
-
-static void CALLBACK vertexCallback(GLvoid *vertex)
-{
- const GLdouble *pointer;
-
- pointer = (GLdouble *) vertex;
- glColor3dv(pointer+3);
- glVertex3dv(pointer);
-}
-
-/* combineCallback is used to create a new vertex when edges
- * intersect. coordinate location is trivial to calculate,
- * but weight[4] may be used to average color, normal, or texture
- * coordinate data. In this program, color is weighted.
- */
-static void CALLBACK combineCallback(GLdouble coords[3],
- GLdouble *vertex_data[4],
- GLfloat weight[4], GLdouble **dataOut )
-{
- GLdouble *vertex;
- int i;
-
- vertex = (GLdouble *) malloc(6 * sizeof(GLdouble));
-
- vertex[0] = coords[0];
- vertex[1] = coords[1];
- vertex[2] = coords[2];
- for (i = 3; i < 6; i++)
- vertex[i] = weight[0] * vertex_data[0][i]
- + weight[1] * vertex_data[1][i]
- + weight[2] * vertex_data[2][i]
- + weight[3] * vertex_data[3][i];
- *dataOut = vertex;
-}
-
-static void init (void)
-{
- GLUtesselator *tobj;
- GLdouble rect[4][3] = {{50.0, 50.0, 0.0},
- {200.0, 50.0, 0.0},
- {200.0, 200.0, 0.0},
- {50.0, 200.0, 0.0}};
- GLdouble tri[3][3] = {{75.0, 75.0, 0.0},
- {125.0, 175.0, 0.0},
- {175.0, 75.0, 0.0}};
- GLdouble star[5][6] = {{250.0, 50.0, 0.0, 1.0, 0.0, 1.0},
- {325.0, 200.0, 0.0, 1.0, 1.0, 0.0},
- {400.0, 50.0, 0.0, 0.0, 1.0, 1.0},
- {250.0, 150.0, 0.0, 1.0, 0.0, 0.0},
- {400.0, 150.0, 0.0, 0.0, 1.0, 0.0}};
-
- glClearColor(0.0, 0.0, 0.0, 0.0);
-
- startList = glGenLists(2);
-
- tobj = gluNewTess();
- gluTessCallback(tobj, GLU_TESS_VERTEX,
- (GLvoid (CALLBACK*) ()) &glVertex3dv);
- gluTessCallback(tobj, GLU_TESS_BEGIN,
- (GLvoid (CALLBACK*) ()) &beginCallback);
- gluTessCallback(tobj, GLU_TESS_END,
- (GLvoid (CALLBACK*) ()) &endCallback);
- gluTessCallback(tobj, GLU_TESS_ERROR,
- (GLvoid (CALLBACK*) ()) &errorCallback);
-
- /* rectangle with triangular hole inside */
- glNewList(startList, GL_COMPILE);
- glShadeModel(GL_FLAT);
- gluTessBeginPolygon(tobj, NULL);
- gluTessBeginContour(tobj);
- gluTessVertex(tobj, rect[0], rect[0]);
- gluTessVertex(tobj, rect[1], rect[1]);
- gluTessVertex(tobj, rect[2], rect[2]);
- gluTessVertex(tobj, rect[3], rect[3]);
- gluTessEndContour(tobj);
- gluTessBeginContour(tobj);
- gluTessVertex(tobj, tri[0], tri[0]);
- gluTessVertex(tobj, tri[1], tri[1]);
- gluTessVertex(tobj, tri[2], tri[2]);
- gluTessEndContour(tobj);
- gluTessEndPolygon(tobj);
- glEndList();
-
- gluTessCallback(tobj, GLU_TESS_VERTEX,
- (GLvoid (CALLBACK*) ()) &vertexCallback);
- gluTessCallback(tobj, GLU_TESS_BEGIN,
- (GLvoid (CALLBACK*) ()) &beginCallback);
- gluTessCallback(tobj, GLU_TESS_END,
- (GLvoid (CALLBACK*) ()) &endCallback);
- gluTessCallback(tobj, GLU_TESS_ERROR,
- (GLvoid (CALLBACK*) ()) &errorCallback);
- gluTessCallback(tobj, GLU_TESS_COMBINE,
- (GLvoid (CALLBACK*) ()) &combineCallback);
-
- /* smooth shaded, self-intersecting star */
- glNewList(startList + 1, GL_COMPILE);
- glShadeModel(GL_SMOOTH);
- gluTessProperty(tobj, GLU_TESS_WINDING_RULE,
- GLU_TESS_WINDING_POSITIVE);
- gluTessBeginPolygon(tobj, NULL);
- gluTessBeginContour(tobj);
- gluTessVertex(tobj, star[0], star[0]);
- gluTessVertex(tobj, star[1], star[1]);
- gluTessVertex(tobj, star[2], star[2]);
- gluTessVertex(tobj, star[3], star[3]);
- gluTessVertex(tobj, star[4], star[4]);
- gluTessEndContour(tobj);
- gluTessEndPolygon(tobj);
- glEndList();
- gluDeleteTess(tobj);
-}
-
-static void reshape (int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluOrtho2D(0.0, (GLdouble) w, 0.0, (GLdouble) h);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(500, 500);
- glutCreateWindow(argv[0]);
- init();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
-
-#else
-int main(int argc, char** argv)
-{
- fprintf (stderr, "This program demonstrates the new tesselator API in GLU 1.2.\n");
- fprintf (stderr, "Your GLU library does not support this new interface, sorry.\n");
- return 0;
-}
-#endif
diff --git a/progs/redbook/tesswind.c b/progs/redbook/tesswind.c
deleted file mode 100644
index 4729880a57..0000000000
--- a/progs/redbook/tesswind.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * tesswind.c
- * This program demonstrates the winding rule polygon
- * tessellation property. Four tessellated objects are drawn,
- * each with very different contours. When the w key is pressed,
- * the objects are drawn with a different winding rule.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef GLU_VERSION_1_2
-
-/* Win32 calling conventions. */
-#ifndef CALLBACK
-#define CALLBACK
-#endif
-
-GLdouble currentWinding = GLU_TESS_WINDING_ODD;
-int currentShape = 0;
-GLUtesselator *tobj;
-GLuint list;
-
-/* Make four display lists,
- * each with a different tessellated object.
- */
-static void makeNewLists (void) {
- int i;
- static GLdouble rects[12][3] =
- {{ 50.0, 50.0, 0.0}, {300.0, 50.0, 0.0},
- {300.0, 300.0, 0.0}, { 50.0, 300.0, 0.0},
- {100.0, 100.0, 0.0}, {250.0, 100.0, 0.0},
- {250.0, 250.0, 0.0}, {100.0, 250.0, 0.0},
- {150.0, 150.0, 0.0}, {200.0, 150.0, 0.0},
- {200.0, 200.0, 0.0}, {150.0, 200.0, 0.0}};
- static GLdouble spiral[16][3] =
- {{400.0, 250.0, 0.0}, {400.0, 50.0, 0.0},
- { 50.0, 50.0, 0.0}, { 50.0, 400.0, 0.0},
- {350.0, 400.0, 0.0}, {350.0, 100.0, 0.0},
- {100.0, 100.0, 0.0}, {100.0, 350.0, 0.0},
- {300.0, 350.0, 0.0}, {300.0, 150.0, 0.0},
- {150.0, 150.0, 0.0}, {150.0, 300.0, 0.0},
- {250.0, 300.0, 0.0}, {250.0, 200.0, 0.0},
- {200.0, 200.0, 0.0}, {200.0, 250.0, 0.0}};
- static GLdouble quad1[4][3] =
- {{ 50.0, 150.0, 0.0}, {350.0, 150.0, 0.0},
- {350.0, 200.0, 0.0}, { 50.0, 200.0, 0.0}};
- static GLdouble quad2[4][3] =
- {{100.0, 100.0, 0.0}, {300.0, 100.0, 0.0},
- {300.0, 350.0, 0.0}, {100.0, 350.0, 0.0}};
- static GLdouble tri[3][3] =
- {{200.0, 50.0, 0.0}, {250.0, 300.0, 0.0},
- {150.0, 300.0, 0.0}};
-
- gluTessProperty(tobj, GLU_TESS_WINDING_RULE,
- currentWinding);
-
- glNewList(list, GL_COMPILE);
- gluTessBeginPolygon(tobj, NULL);
- gluTessBeginContour(tobj);
- for (i = 0; i < 4; i++)
- gluTessVertex(tobj, rects[i], rects[i]);
- gluTessEndContour(tobj);
- gluTessBeginContour(tobj);
- for (i = 4; i < 8; i++)
- gluTessVertex(tobj, rects[i], rects[i]);
- gluTessEndContour(tobj);
- gluTessBeginContour(tobj);
- for (i = 8; i < 12; i++)
- gluTessVertex(tobj, rects[i], rects[i]);
- gluTessEndContour(tobj);
- gluTessEndPolygon(tobj);
- glEndList();
-
- glNewList(list+1, GL_COMPILE);
- gluTessBeginPolygon(tobj, NULL);
- gluTessBeginContour(tobj);
- for (i = 0; i < 4; i++)
- gluTessVertex(tobj, rects[i], rects[i]);
- gluTessEndContour(tobj);
- gluTessBeginContour(tobj);
- for (i = 7; i >= 4; i--)
- gluTessVertex(tobj, rects[i], rects[i]);
- gluTessEndContour(tobj);
- gluTessBeginContour(tobj);
- for (i = 11; i >= 8; i--)
- gluTessVertex(tobj, rects[i], rects[i]);
- gluTessEndContour(tobj);
- gluTessEndPolygon(tobj);
- glEndList();
-
- glNewList(list+2, GL_COMPILE);
- gluTessBeginPolygon(tobj, NULL);
- gluTessBeginContour(tobj);
- for (i = 0; i < 16; i++)
- gluTessVertex(tobj, spiral[i], spiral[i]);
- gluTessEndContour(tobj);
- gluTessEndPolygon(tobj);
- glEndList();
-
- glNewList(list+3, GL_COMPILE);
- gluTessBeginPolygon(tobj, NULL);
- gluTessBeginContour(tobj);
- for (i = 0; i < 4; i++)
- gluTessVertex(tobj, quad1[i], quad1[i]);
- gluTessEndContour(tobj);
- gluTessBeginContour(tobj);
- for (i = 0; i < 4; i++)
- gluTessVertex(tobj, quad2[i], quad2[i]);
- gluTessEndContour(tobj);
- gluTessBeginContour(tobj);
- for (i = 0; i < 3; i++)
- gluTessVertex(tobj, tri[i], tri[i]);
- gluTessEndContour(tobj);
- gluTessEndPolygon(tobj);
- glEndList();
-}
-
-static void display (void) {
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3f(1.0, 1.0, 1.0);
- glPushMatrix();
- glCallList(list);
- glTranslatef(0.0, 500.0, 0.0);
- glCallList(list+1);
- glTranslatef(500.0, -500.0, 0.0);
- glCallList(list+2);
- glTranslatef(0.0, 500.0, 0.0);
- glCallList(list+3);
- glPopMatrix();
- glFlush();
-}
-
-static void CALLBACK beginCallback(GLenum which)
-{
- glBegin(which);
-}
-
-static void CALLBACK errorCallback(GLenum errorCode)
-{
- const GLubyte *estring;
-
- estring = gluErrorString(errorCode);
- fprintf(stderr, "Tessellation Error: %s\n", (char *) estring);
- exit(0);
-}
-
-static void CALLBACK endCallback(void)
-{
- glEnd();
-}
-
-/* combineCallback is used to create a new vertex when edges
- * intersect. coordinate location is trivial to calculate,
- * but weight[4] may be used to average color, normal, or texture
- * coordinate data.
- */
-/* ARGSUSED */
-static void CALLBACK combineCallback(GLdouble coords[3], GLdouble *data[4],
- GLfloat weight[4], GLdouble **dataOut )
-{
- GLdouble *vertex;
- vertex = (GLdouble *) malloc(3 * sizeof(GLdouble));
-
- vertex[0] = coords[0];
- vertex[1] = coords[1];
- vertex[2] = coords[2];
- *dataOut = vertex;
-}
-
-static void init(void)
-{
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glShadeModel(GL_FLAT);
-
- tobj = gluNewTess();
- gluTessCallback(tobj, GLU_TESS_VERTEX,
- (GLvoid (CALLBACK*) ()) &glVertex3dv);
- gluTessCallback(tobj, GLU_TESS_BEGIN,
- (GLvoid (CALLBACK*) ()) &beginCallback);
- gluTessCallback(tobj, GLU_TESS_END,
- (GLvoid (CALLBACK*) ()) &endCallback);
- gluTessCallback(tobj, GLU_TESS_ERROR,
- (GLvoid (CALLBACK*) ()) &errorCallback);
- gluTessCallback(tobj, GLU_TESS_COMBINE,
- (GLvoid (CALLBACK*) ()) &combineCallback);
-
- list = glGenLists(4);
- makeNewLists();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- gluOrtho2D(0.0, 1000.0, 0.0, 1000.0 * (GLdouble)h/(GLdouble)w);
- else
- gluOrtho2D(0.0, 1000.0 * (GLdouble)w/(GLdouble)h, 0.0, 1000.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'w':
- case 'W':
- if (currentWinding == GLU_TESS_WINDING_ODD)
- currentWinding = GLU_TESS_WINDING_NONZERO;
- else if (currentWinding == GLU_TESS_WINDING_NONZERO)
- currentWinding = GLU_TESS_WINDING_POSITIVE;
- else if (currentWinding == GLU_TESS_WINDING_POSITIVE)
- currentWinding = GLU_TESS_WINDING_NEGATIVE;
- else if (currentWinding == GLU_TESS_WINDING_NEGATIVE)
- currentWinding = GLU_TESS_WINDING_ABS_GEQ_TWO;
- else if (currentWinding == GLU_TESS_WINDING_ABS_GEQ_TWO)
- currentWinding = GLU_TESS_WINDING_ODD;
- makeNewLists();
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(500, 500);
- glutCreateWindow(argv[0]);
- init();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
-
-#else
-int main(int argc, char** argv)
-{
- fprintf (stderr, "This program demonstrates the new tesselator API in GLU 1.2.\n");
- fprintf (stderr, "Your GLU library does not support this new interface, sorry.\n");
- return 0;
-}
-#endif
diff --git a/progs/redbook/texbind.c b/progs/redbook/texbind.c
deleted file mode 100644
index b6404b32d8..0000000000
--- a/progs/redbook/texbind.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* texbind.c
- * This program demonstrates using glBindTexture() by
- * creating and managing two textures.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef GL_VERSION_1_1
-/* Create checkerboard texture */
-#define checkImageWidth 64
-#define checkImageHeight 64
-static GLubyte checkImage[checkImageHeight][checkImageWidth][4];
-static GLubyte otherImage[checkImageHeight][checkImageWidth][4];
-
-static GLuint texName[2];
-
-static void makeCheckImages(void)
-{
- int i, j, c;
-
- for (i = 0; i < checkImageHeight; i++) {
- for (j = 0; j < checkImageWidth; j++) {
- c = ((((i&0x8)==0)^((j&0x8)==0)))*255;
- checkImage[i][j][0] = (GLubyte) c;
- checkImage[i][j][1] = (GLubyte) c;
- checkImage[i][j][2] = (GLubyte) c;
- checkImage[i][j][3] = (GLubyte) 255;
- c = ((((i&0x10)==0)^((j&0x10)==0)))*255;
- otherImage[i][j][0] = (GLubyte) c;
- otherImage[i][j][1] = (GLubyte) 0;
- otherImage[i][j][2] = (GLubyte) 0;
- otherImage[i][j][3] = (GLubyte) 255;
- }
- }
-}
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel(GL_FLAT);
- glEnable(GL_DEPTH_TEST);
-
- makeCheckImages();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- glGenTextures(2, texName);
- glBindTexture(GL_TEXTURE_2D, texName[0]);
- 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_MAG_FILTER,
- GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
- GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, checkImageWidth,
- checkImageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE,
- checkImage);
-
- glBindTexture(GL_TEXTURE_2D, texName[1]);
- 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_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, checkImageWidth,
- checkImageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE,
- otherImage);
- glEnable(GL_TEXTURE_2D);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glBindTexture(GL_TEXTURE_2D, texName[0]);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0, 0.0);
- glTexCoord2f(0.0, 1.0); glVertex3f(-2.0, 1.0, 0.0);
- glTexCoord2f(1.0, 1.0); glVertex3f(0.0, 1.0, 0.0);
- glTexCoord2f(1.0, 0.0); glVertex3f(0.0, -1.0, 0.0);
- glEnd();
- glBindTexture(GL_TEXTURE_2D, texName[1]);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0, 0.0); glVertex3f(1.0, -1.0, 0.0);
- glTexCoord2f(0.0, 1.0); glVertex3f(1.0, 1.0, 0.0);
- glTexCoord2f(1.0, 1.0); glVertex3f(2.41421, 1.0, -1.41421);
- glTexCoord2f(1.0, 0.0); glVertex3f(2.41421, -1.0, -1.41421);
- glEnd();
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 30.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -3.6);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(250, 250);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutReshapeFunc(reshape);
- glutDisplayFunc(display);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
-#else
-int main(int argc, char** argv)
-{
- fprintf (stderr, "This program demonstrates a feature which is not in OpenGL Version 1.0.\n");
- fprintf (stderr, "If your implementation of OpenGL Version 1.0 has the right extensions,\n");
- fprintf (stderr, "you may be able to modify this program to make it run.\n");
- return 0;
-}
-#endif
diff --git a/progs/redbook/texgen.c b/progs/redbook/texgen.c
deleted file mode 100644
index 5cb97e5a43..0000000000
--- a/progs/redbook/texgen.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* texgen.c
- * This program draws a texture mapped teapot with
- * automatically generated texture coordinates. The
- * texture is rendered as stripes on the teapot.
- * Initially, the object is drawn with texture coordinates
- * based upon the object coordinates of the vertex
- * and distance from the plane x = 0. Pressing the 'e'
- * key changes the coordinate generation to eye coordinates
- * of the vertex. Pressing the 'o' key switches it back
- * to the object coordinates. Pressing the 's' key
- * changes the plane to a slanted one (x + y + z = 0).
- * Pressing the 'x' key switches it back to x = 0.
- */
-
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#define stripeImageWidth 32
-GLubyte stripeImage[4*stripeImageWidth];
-
-#ifdef GL_VERSION_1_1
-static GLuint texName;
-#endif
-
-static void makeStripeImage(void)
-{
- int j;
-
- for (j = 0; j < stripeImageWidth; j++) {
- stripeImage[4*j] = (GLubyte) ((j<=4) ? 255 : 0);
- stripeImage[4*j+1] = (GLubyte) ((j>4) ? 255 : 0);
- stripeImage[4*j+2] = (GLubyte) 0;
- stripeImage[4*j+3] = (GLubyte) 255;
- }
-}
-
-/* planes for texture coordinate generation */
-static GLfloat xequalzero[] = {1.0, 0.0, 0.0, 0.0};
-static GLfloat slanted[] = {1.0, 1.0, 1.0, 0.0};
-static GLfloat *currentCoeff;
-static GLenum currentPlane;
-static GLint currentGenMode;
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glEnable(GL_DEPTH_TEST);
- glShadeModel(GL_SMOOTH);
-
- makeStripeImage();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
-#ifdef GL_VERSION_1_1
- glGenTextures(1, &texName);
- glBindTexture(GL_TEXTURE_1D, texName);
-#endif
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
- glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-#ifdef GL_VERSION_1_1
- glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA, stripeImageWidth, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, stripeImage);
-#else
- glTexImage1D(GL_TEXTURE_1D, 0, 4, stripeImageWidth, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, stripeImage);
-#endif
-
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- currentCoeff = xequalzero;
- currentGenMode = GL_OBJECT_LINEAR;
- currentPlane = GL_OBJECT_PLANE;
- glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, currentGenMode);
- glTexGenfv(GL_S, currentPlane, currentCoeff);
-
- glEnable(GL_TEXTURE_GEN_S);
- glEnable(GL_TEXTURE_1D);
- glEnable(GL_CULL_FACE);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
- glFrontFace(GL_CW);
- glCullFace(GL_BACK);
- glMaterialf (GL_FRONT, GL_SHININESS, 64.0);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
- glPushMatrix ();
- glRotatef(45.0, 0.0, 0.0, 1.0);
-#ifdef GL_VERSION_1_1
- glBindTexture(GL_TEXTURE_1D, texName);
-#endif
- glutSolidTeapot(2.0);
- glPopMatrix ();
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho (-3.5, 3.5, -3.5*(GLfloat)h/(GLfloat)w,
- 3.5*(GLfloat)h/(GLfloat)w, -3.5, 3.5);
- else
- glOrtho (-3.5*(GLfloat)w/(GLfloat)h,
- 3.5*(GLfloat)w/(GLfloat)h, -3.5, 3.5, -3.5, 3.5);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-/* ARGSUSED1 */
-static void keyboard (unsigned char key, int x, int y)
-{
- switch (key) {
- case 'e':
- case 'E':
- currentGenMode = GL_EYE_LINEAR;
- currentPlane = GL_EYE_PLANE;
- glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, currentGenMode);
- glTexGenfv(GL_S, currentPlane, currentCoeff);
- glutPostRedisplay();
- break;
- case 'o':
- case 'O':
- currentGenMode = GL_OBJECT_LINEAR;
- currentPlane = GL_OBJECT_PLANE;
- glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, currentGenMode);
- glTexGenfv(GL_S, currentPlane, currentCoeff);
- glutPostRedisplay();
- break;
- case 's':
- case 'S':
- currentCoeff = slanted;
- glTexGenfv(GL_S, currentPlane, currentCoeff);
- glutPostRedisplay();
- break;
- case 'x':
- case 'X':
- currentCoeff = xequalzero;
- glTexGenfv(GL_S, currentPlane, currentCoeff);
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(256, 256);
- glutInitWindowPosition(100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/texprox.c b/progs/redbook/texprox.c
deleted file mode 100644
index c2d699a71b..0000000000
--- a/progs/redbook/texprox.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * texprox.c
- * The brief program illustrates use of texture proxies.
- * This program only prints out some messages about whether
- * certain size textures are supported and then exits.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef GL_VERSION_1_1
-
-/* Microsoft OpenGL 1.1's <GL/gl.h> forgets to define
- GL_TEXTURE_INTERNAL_FORMAT. */
-#ifndef GL_TEXTURE_INTERNAL_FORMAT
-#define GL_TEXTURE_INTERNAL_FORMAT GL_TEXTURE_COMPONENTS
-#endif
-
-static void init(void)
-{
- GLint proxyComponents;
-
- putchar('\n');
-
- glTexImage2D(GL_PROXY_TEXTURE_2D, 0, GL_RGBA8,
- 64, 64, 0,
- GL_RGBA, GL_UNSIGNED_BYTE, NULL);
- glGetTexLevelParameteriv(GL_PROXY_TEXTURE_2D, 0,
- GL_TEXTURE_INTERNAL_FORMAT, &proxyComponents);
- printf ("Proxying 64x64 level 0 RGBA8 texture (level 0)\n");
- if (proxyComponents == GL_RGBA8)
- printf ("proxy allocation succeeded\n");
- else
- printf ("proxy allocation failed\n");
- putchar('\n');
-
- glTexImage2D(GL_PROXY_TEXTURE_2D, 0, GL_RGBA16,
- 2048, 2048, 0,
- GL_RGBA, GL_UNSIGNED_SHORT, NULL);
- glGetTexLevelParameteriv(GL_PROXY_TEXTURE_2D, 0,
- GL_TEXTURE_INTERNAL_FORMAT, &proxyComponents);
- printf ("Proxying 2048x2048 level 0 RGBA16 texture (big so unlikely to be supported)\n");
- if (proxyComponents == GL_RGBA16)
- printf ("proxy allocation succeeded\n");
- else
- printf ("proxy allocation failed\n");
- putchar('\n');
-}
-
-static void display(void)
-{
- exit(0);
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutMainLoop();
- return 0;
-}
-#else
-int main(int argc, char** argv)
-{
- fprintf (stderr, "This program demonstrates a feature which is not in OpenGL Version 1.0.\n");
- fprintf (stderr, "If your implementation of OpenGL Version 1.0 has the right extensions,\n");
- fprintf (stderr, "you may be able to modify this program to make it run.\n");
- return 0;
-}
-#endif
diff --git a/progs/redbook/texsub.c b/progs/redbook/texsub.c
deleted file mode 100644
index 7827d5a45f..0000000000
--- a/progs/redbook/texsub.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* texsub.c
- * This program texture maps a checkerboard image onto
- * two rectangles. This program clamps the texture, if
- * the texture coordinates fall outside 0.0 and 1.0.
- * If the s key is pressed, a texture subimage is used to
- * alter the original texture. If the r key is pressed,
- * the original texture is restored.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef GL_VERSION_1_1
-/* Create checkerboard textures */
-#define checkImageWidth 64
-#define checkImageHeight 64
-#define subImageWidth 16
-#define subImageHeight 16
-static GLubyte checkImage[checkImageHeight][checkImageWidth][4];
-static GLubyte subImage[subImageHeight][subImageWidth][4];
-
-static GLuint texName;
-
-static void makeCheckImages(void)
-{
- int i, j, c;
-
- for (i = 0; i < checkImageHeight; i++) {
- for (j = 0; j < checkImageWidth; j++) {
- c = ((((i&0x8)==0)^((j&0x8)==0)))*255;
- checkImage[i][j][0] = (GLubyte) c;
- checkImage[i][j][1] = (GLubyte) c;
- checkImage[i][j][2] = (GLubyte) c;
- checkImage[i][j][3] = (GLubyte) 255;
- }
- }
- for (i = 0; i < subImageHeight; i++) {
- for (j = 0; j < subImageWidth; j++) {
- c = ((((i&0x4)==0)^((j&0x4)==0)))*255;
- subImage[i][j][0] = (GLubyte) c;
- subImage[i][j][1] = (GLubyte) 0;
- subImage[i][j][2] = (GLubyte) 0;
- subImage[i][j][3] = (GLubyte) 255;
- }
- }
-}
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel(GL_FLAT);
- glEnable(GL_DEPTH_TEST);
-
- makeCheckImages();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- glGenTextures(1, &texName);
- glBindTexture(GL_TEXTURE_2D, texName);
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, checkImageWidth, checkImageHeight,
- 0, GL_RGBA, GL_UNSIGNED_BYTE, checkImage);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glEnable(GL_TEXTURE_2D);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
- glBindTexture(GL_TEXTURE_2D, texName);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0, 0.0);
- glTexCoord2f(0.0, 1.0); glVertex3f(-2.0, 1.0, 0.0);
- glTexCoord2f(1.0, 1.0); glVertex3f(0.0, 1.0, 0.0);
- glTexCoord2f(1.0, 0.0); glVertex3f(0.0, -1.0, 0.0);
-
- glTexCoord2f(0.0, 0.0); glVertex3f(1.0, -1.0, 0.0);
- glTexCoord2f(0.0, 1.0); glVertex3f(1.0, 1.0, 0.0);
- glTexCoord2f(1.0, 1.0); glVertex3f(2.41421, 1.0, -1.41421);
- glTexCoord2f(1.0, 0.0); glVertex3f(2.41421, -1.0, -1.41421);
- glEnd();
- glFlush();
- glDisable(GL_TEXTURE_2D);
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 30.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -3.6);
-}
-
-/* ARGSUSED1 */
-static void keyboard (unsigned char key, int x, int y)
-{
- switch (key) {
- case 's':
- case 'S':
- glBindTexture(GL_TEXTURE_2D, texName);
- glTexSubImage2D(GL_TEXTURE_2D, 0, 12, 44, subImageWidth,
- subImageHeight, GL_RGBA,
- GL_UNSIGNED_BYTE, subImage);
- glutPostRedisplay();
- break;
- case 'r':
- case 'R':
- glBindTexture(GL_TEXTURE_2D, texName);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, checkImageWidth,
- checkImageHeight, 0, GL_RGBA,
- GL_UNSIGNED_BYTE, checkImage);
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(250, 250);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}
-#else
-int main(int argc, char** argv)
-{
- fprintf (stderr, "This program demonstrates a feature which is not in OpenGL Version 1.0.\n");
- fprintf (stderr, "If your implementation of OpenGL Version 1.0 has the right extensions,\n");
- fprintf (stderr, "you may be able to modify this program to make it run.\n");
- return 0;
-}
-#endif
diff --git a/progs/redbook/texture3d.c b/progs/redbook/texture3d.c
deleted file mode 100644
index c7b77c1cae..0000000000
--- a/progs/redbook/texture3d.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 1993-2003, Silicon Graphics, Inc.
- * All Rights Reserved
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright
- * notice and this permission notice appear in supporting documentation,
- * and that the name of Silicon Graphics, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software
- * without specific, written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
- * OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, LOSS OF
- * PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF THIRD
- * PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN ADVISED OF
- * THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE POSSESSION, USE
- * OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor clauses
- * in the FAR or the DOD or NASA FAR Supplement. Unpublished - rights
- * reserved under the copyright laws of the United States.
- *
- * Contractor/manufacturer is:
- * Silicon Graphics, Inc.
- * 1500 Crittenden Lane
- * Mountain View, CA 94043
- * United State of America
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* texture3d.c
- * This program demonstrates using a three-dimensional texture.
- * It creates a 3D texture and then renders two rectangles
- * with different texture coordinates to obtain different
- * "slices" of the 3D texture.
- */
-#include <GL/glew.h>
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef GL_VERSION_1_2
-#define iWidth 16
-#define iHeight 16
-#define iDepth 16
-
-static GLubyte image[iDepth][iHeight][iWidth][3];
-static GLuint texName;
-
-/* Create a 16x16x16x3 array with different color values in
- * each array element [r, g, b]. Values range from 0 to 255.
- */
-
-static void makeImage(void)
-{
- int s, t, r;
-
- for (s = 0; s < 16; s++)
- for (t = 0; t < 16; t++)
- for (r = 0; r < 16; r++) {
- image[r][t][s][0] = (GLubyte) (s * 17);
- image[r][t][s][1] = (GLubyte) (t * 17);
- image[r][t][s][2] = (GLubyte) (r * 17);
- }
-}
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel(GL_FLAT);
- glEnable(GL_DEPTH_TEST);
-
- makeImage();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
- glGenTextures(1, &texName);
- glBindTexture(GL_TEXTURE_3D, texName);
- glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER,
- GL_NEAREST);
- glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER,
- GL_NEAREST);
- glTexImage3D(GL_TEXTURE_3D, 0, GL_RGB, iWidth, iHeight,
- iDepth, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
- glEnable(GL_TEXTURE_3D);
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glBegin(GL_QUADS);
- glTexCoord3f(0.0, 0.0, 0.0); glVertex3f(-2.25, -1.0, 0.0);
- glTexCoord3f(0.0, 1.0, 0.0); glVertex3f(-2.25, 1.0, 0.0);
- glTexCoord3f(1.0, 1.0, 1.0); glVertex3f(-0.25, 1.0, 0.0);
- glTexCoord3f(1.0, 0.0, 1.0); glVertex3f(-0.25, -1.0, 0.0);
-
- glTexCoord3f(0.0, 0.0, 1.0); glVertex3f(0.25, -1.0, 0.0);
- glTexCoord3f(0.0, 1.0, 1.0); glVertex3f(0.25, 1.0, 0.0);
- glTexCoord3f(1.0, 1.0, 0.0); glVertex3f(2.25, 1.0, 0.0);
- glTexCoord3f(1.0, 0.0, 0.0); glVertex3f(2.25, -1.0, 0.0);
- glEnd();
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 30.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -4.0);
-}
-
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(250, 250);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- glewInit();
- init();
- glutReshapeFunc(reshape);
- glutDisplayFunc(display);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
-#else
-int main(int argc, char** argv)
-{
- fprintf (stderr, "This program demonstrates a feature which is not in OpenGL Version 1.0 or 1.1.\n");
- fprintf (stderr, "If your implementation of OpenGL has the right extensions,\n");
- fprintf (stderr, "you may be able to modify this program to make it run.\n");
- return 0;
-}
-#endif
-
diff --git a/progs/redbook/texturesurf.c b/progs/redbook/texturesurf.c
deleted file mode 100644
index 2023072dba..0000000000
--- a/progs/redbook/texturesurf.c
+++ /dev/null
@@ -1,155 +0,0 @@
-
-/* Copyright (c) Mark J. Kilgard, 1994. */
-
-/*
- * (c) Copyright 1993, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
- */
-/* texturesurf.c
- * This program uses evaluators to generate a curved
- * surface and automatically generated texture coordinates.
- */
-
-#include <stdlib.h>
-#include <GL/glut.h>
-#include <math.h>
-
-GLfloat ctrlpoints[4][4][3] = {
- {{ -1.5, -1.5, 4.0}, { -0.5, -1.5, 2.0},
- {0.5, -1.5, -1.0}, {1.5, -1.5, 2.0}},
- {{ -1.5, -0.5, 1.0}, { -0.5, -0.5, 3.0},
- {0.5, -0.5, 0.0}, {1.5, -0.5, -1.0}},
- {{ -1.5, 0.5, 4.0}, { -0.5, 0.5, 0.0},
- {0.5, 0.5, 3.0}, {1.5, 0.5, 4.0}},
- {{ -1.5, 1.5, -2.0}, { -0.5, 1.5, -2.0},
- {0.5, 1.5, 0.0}, {1.5, 1.5, -1.0}}
-};
-
-GLfloat texpts[2][2][2] = {{{0.0, 0.0}, {0.0, 1.0}},
- {{1.0, 0.0}, {1.0, 1.0}}};
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glColor3f(1.0, 1.0, 1.0);
- glEvalMesh2(GL_FILL, 0, 20, 0, 20);
- glFlush();
-}
-
-#define imageWidth 64
-#define imageHeight 64
-GLubyte image[3*imageWidth*imageHeight];
-
-static void makeImage(void)
-{
- int i, j;
- float ti, tj;
-
- for (i = 0; i < imageWidth; i++) {
- ti = 2.0*3.14159265*i/imageWidth;
- for (j = 0; j < imageHeight; j++) {
- tj = 2.0*3.14159265*j/imageHeight;
-
- image[3*(imageHeight*i+j)] = (GLubyte) 127*(1.0+sin(ti));
- image[3*(imageHeight*i+j)+1] = (GLubyte) 127*(1.0+cos(2*tj));
- image[3*(imageHeight*i+j)+2] = (GLubyte) 127*(1.0+cos(ti+tj));
- }
- }
-}
-
-static void myinit(void)
-{
- glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4,
- 0, 1, 12, 4, &ctrlpoints[0][0][0]);
- glMap2f(GL_MAP2_TEXTURE_COORD_2, 0, 1, 2, 2,
- 0, 1, 4, 2, &texpts[0][0][0]);
- glEnable(GL_MAP2_TEXTURE_COORD_2);
- glEnable(GL_MAP2_VERTEX_3);
- glMapGrid2f(20, 0.0, 1.0, 20, 0.0, 1.0);
- makeImage();
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
- 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);
- glTexImage2D(GL_TEXTURE_2D, 0, 3, imageWidth, imageHeight, 0,
- GL_RGB, GL_UNSIGNED_BYTE, image);
- glEnable(GL_TEXTURE_2D);
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_NORMALIZE);
- glShadeModel (GL_FLAT);
-}
-
-static void myReshape(int w, int h)
-{
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- if (w <= h)
- glOrtho(-4.0, 4.0, -4.0*(GLfloat)h/(GLfloat)w,
- 4.0*(GLfloat)h/(GLfloat)w, -4.0, 4.0);
- else
- glOrtho(-4.0*(GLfloat)w/(GLfloat)h,
- 4.0*(GLfloat)w/(GLfloat)h, -4.0, 4.0, -4.0, 4.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glRotatef(85.0, 1.0, 1.0, 1.0);
-}
-
-static void
-key(unsigned char k, int x, int y)
-{
- switch (k) {
- case 27: /* Escape */
- exit(0);
- break;
- default:
- return;
- }
- glutPostRedisplay();
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutCreateWindow (argv[0]);
- myinit();
- glutReshapeFunc (myReshape);
- glutDisplayFunc(display);
- glutKeyboardFunc(key);
- glutMainLoop();
- return 0; /* ANSI C requires main to return int. */
-}
diff --git a/progs/redbook/torus.c b/progs/redbook/torus.c
deleted file mode 100644
index a67d48e0f5..0000000000
--- a/progs/redbook/torus.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * torus.c
- * This program demonstrates the creation of a display list.
- */
-
-#include <GL/glut.h>
-#include <stdio.h>
-#include <math.h>
-#include <stdlib.h>
-
-/* Some <math.h> files do not define M_PI... */
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-GLuint theTorus;
-
-/* Draw a torus */
-static void torus(int numc, int numt)
-{
- int i, j, k;
- double s, t, x, y, z, twopi;
-
- twopi = 2 * (double)M_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 = (1+.1*cos(s*twopi/numc))*cos(t*twopi/numt);
- y = (1+.1*cos(s*twopi/numc))*sin(t*twopi/numt);
- z = .1 * sin(s * twopi / numc);
- glVertex3f(x, y, z);
- }
- }
- glEnd();
- }
-}
-
-/* Create display list with Torus and initialize state */
-static void init(void)
-{
- theTorus = glGenLists (1);
- glNewList(theTorus, GL_COMPILE);
- torus(8, 25);
- glEndList();
-
- glShadeModel(GL_FLAT);
- glClearColor(0.0, 0.0, 0.0, 0.0);
-}
-
-/* Clear window and draw torus */
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3f (1.0, 1.0, 1.0);
- glCallList(theTorus);
- glFlush();
-}
-
-/* Handle window resize */
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(30, (GLfloat) w/(GLfloat) h, 1.0, 100.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);
-}
-
-/* Rotate about x-axis when "x" typed; rotate about y-axis
- when "y" typed; "i" returns torus to original view */
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 'x':
- case 'X':
- glRotatef(30.,1.0,0.0,0.0);
- glutPostRedisplay();
- break;
- case 'y':
- case 'Y':
- glRotatef(30.,0.0,1.0,0.0);
- glutPostRedisplay();
- break;
- case 'i':
- case 'I':
- glLoadIdentity();
- gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char **argv)
-{
- glutInitWindowSize(200, 200);
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutCreateWindow(argv[0]);
- init();
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutDisplayFunc(display);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/trim.c b/progs/redbook/trim.c
deleted file mode 100644
index 216f62a7c2..0000000000
--- a/progs/redbook/trim.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * trim.c
- * This program draws a NURBS surface in the shape of a
- * symmetrical hill, using both a NURBS curve and pwl
- * (piecewise linear) curve to trim part of the surface.
- */
-#include <stdlib.h>
-#include <GL/glut.h>
-#include <stdio.h>
-
-
-#ifndef CALLBACK
-#define CALLBACK
-#endif
-
-
-GLfloat ctlpoints[4][4][3];
-
-GLUnurbsObj *theNurb;
-
-/*
- * Initializes the control points of the surface to a small hill.
- * The control points range from -3 to +3 in x, y, and z
- */
-static void init_surface(void)
-{
- int u, v;
- for (u = 0; u < 4; u++) {
- for (v = 0; v < 4; v++) {
- ctlpoints[u][v][0] = 2.0*((GLfloat)u - 1.5);
- ctlpoints[u][v][1] = 2.0*((GLfloat)v - 1.5);
-
- if ( (u == 1 || u == 2) && (v == 1 || v == 2))
- ctlpoints[u][v][2] = 3.0;
- else
- ctlpoints[u][v][2] = -3.0;
- }
- }
-}
-
-static void nurbsError(GLenum errorCode)
-{
- const GLubyte *estring;
-
- estring = gluErrorString(errorCode);
- fprintf (stderr, "Nurbs Error: %s\n", (char *) estring);
- exit (0);
-}
-
-/* Initialize material property and depth buffer.
- */
-static void init(void)
-{
- GLfloat mat_diffuse[] = { 0.7, 0.7, 0.7, 1.0 };
- GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
- GLfloat mat_shininess[] = { 100.0 };
-
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
- glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
- glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
-
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glEnable(GL_DEPTH_TEST);
- glEnable(GL_AUTO_NORMAL);
- glEnable(GL_NORMALIZE);
-
- init_surface();
-
- theNurb = gluNewNurbsRenderer();
- gluNurbsProperty(theNurb, GLU_SAMPLING_TOLERANCE, 25.0);
- gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL);
- gluNurbsCallback(theNurb, GLU_ERROR,
- (GLvoid (CALLBACK*) ()) nurbsError);
-}
-
-static void display(void)
-{
- GLfloat knots[8] = {0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0};
- GLfloat edgePt[5][2] = /* counter clockwise */
- {{0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}};
- GLfloat curvePt[4][2] = /* clockwise */
- {{0.25, 0.5}, {0.25, 0.75}, {0.75, 0.75}, {0.75, 0.5}};
- GLfloat curveKnots[8] =
- {0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0};
- GLfloat pwlPt[4][2] = /* clockwise */
- {{0.75, 0.5}, {0.5, 0.25}, {0.25, 0.5}};
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glPushMatrix();
- glRotatef(330.0, 1.,0.,0.);
- glScalef (0.5, 0.5, 0.5);
-
- gluBeginSurface(theNurb);
- gluNurbsSurface(theNurb, 8, knots, 8, knots,
- 4 * 3, 3, &ctlpoints[0][0][0],
- 4, 4, GL_MAP2_VERTEX_3);
- gluBeginTrim (theNurb);
- gluPwlCurve (theNurb, 5, &edgePt[0][0], 2, GLU_MAP1_TRIM_2);
- gluEndTrim (theNurb);
- gluBeginTrim (theNurb);
- gluNurbsCurve (theNurb, 8, curveKnots, 2,
- &curvePt[0][0], 4, GLU_MAP1_TRIM_2);
- gluPwlCurve (theNurb, 3, &pwlPt[0][0], 2, GLU_MAP1_TRIM_2);
- gluEndTrim (theNurb);
- gluEndSurface(theNurb);
-
- glPopMatrix();
- glFlush();
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective (45.0, (GLdouble)w/(GLdouble)h, 3.0, 8.0);
-
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef (0.0, 0.0, -5.0);
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-/* Main Loop
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutReshapeFunc(reshape);
- glutDisplayFunc(display);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/unproject.c b/progs/redbook/unproject.c
deleted file mode 100644
index 6d1c7dbede..0000000000
--- a/progs/redbook/unproject.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * unproject.c
- * When the left mouse button is pressed, this program
- * reads the mouse position and determines two 3D points
- * from which it was transformed. Very little is displayed.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT);
- glFlush();
-}
-
-/* Change these values for a different transformation */
-static void reshape(int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective (45.0, (GLfloat) w/(GLfloat) h, 1.0, 100.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
-}
-
-static void mouse(int button, int state, int x, int y)
-{
- GLint viewport[4];
- GLdouble mvmatrix[16], projmatrix[16];
- GLint realy; /* OpenGL y coordinate position */
- GLdouble wx, wy, wz; /* returned world x, y, z coords */
-
- switch (button) {
- case GLUT_LEFT_BUTTON:
- if (state == GLUT_DOWN) {
- glGetIntegerv (GL_VIEWPORT, viewport);
- glGetDoublev (GL_MODELVIEW_MATRIX, mvmatrix);
- glGetDoublev (GL_PROJECTION_MATRIX, projmatrix);
-/* note viewport[3] is height of window in pixels */
- realy = viewport[3] - (GLint) y - 1;
- printf ("Coordinates at cursor are (%4d, %4d)\n", x, realy);
- gluUnProject ((GLdouble) x, (GLdouble) realy, 0.0,
- mvmatrix, projmatrix, viewport, &wx, &wy, &wz);
- printf ("World coords at z=0.0 are (%f, %f, %f)\n",
- wx, wy, wz);
- gluUnProject ((GLdouble) x, (GLdouble) realy, 1.0,
- mvmatrix, projmatrix, viewport, &wx, &wy, &wz);
- printf ("World coords at z=1.0 are (%f, %f, %f)\n",
- wx, wy, wz);
- }
- break;
- case GLUT_RIGHT_BUTTON:
- if (state == GLUT_DOWN)
- exit(0);
- break;
- default:
- break;
- }
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-/*
- * Open window, register input callback functions
- */
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (500, 500);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc (keyboard);
- glutMouseFunc(mouse);
- glutMainLoop();
- return 0;
-}
diff --git a/progs/redbook/varray.c b/progs/redbook/varray.c
deleted file mode 100644
index 8ce39d7763..0000000000
--- a/progs/redbook/varray.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/*
- * varray.c
- * This program demonstrates vertex arrays.
- */
-#include <GL/glut.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#ifdef GL_VERSION_1_1
-#define POINTER 1
-#define INTERLEAVED 2
-
-#define DRAWARRAY 1
-#define ARRAYELEMENT 2
-#define DRAWELEMENTS 3
-
-int setupMethod = POINTER;
-int derefMethod = DRAWARRAY;
-
-static void setupPointers(void)
-{
- static GLint vertices[] = {25, 25,
- 100, 325,
- 175, 25,
- 175, 325,
- 250, 25,
- 325, 325};
- static GLfloat colors[] = {1.0, 0.2, 0.2,
- 0.2, 0.2, 1.0,
- 0.8, 1.0, 0.2,
- 0.75, 0.75, 0.75,
- 0.35, 0.35, 0.35,
- 0.5, 0.5, 0.5};
-
- glEnableClientState (GL_VERTEX_ARRAY);
- glEnableClientState (GL_COLOR_ARRAY);
-
- glVertexPointer (2, GL_INT, 0, vertices);
- glColorPointer (3, GL_FLOAT, 0, colors);
-}
-
-static void setupInterleave(void)
-{
- static GLfloat intertwined[] =
- {1.0, 0.2, 1.0, 100.0, 100.0, 0.0,
- 1.0, 0.2, 0.2, 0.0, 200.0, 0.0,
- 1.0, 1.0, 0.2, 100.0, 300.0, 0.0,
- 0.2, 1.0, 0.2, 200.0, 300.0, 0.0,
- 0.2, 1.0, 1.0, 300.0, 200.0, 0.0,
- 0.2, 0.2, 1.0, 200.0, 100.0, 0.0};
-
- glInterleavedArrays (GL_C3F_V3F, 0, intertwined);
-}
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel (GL_SMOOTH);
- setupPointers ();
-}
-
-static void display(void)
-{
- glClear (GL_COLOR_BUFFER_BIT);
-
- if (derefMethod == DRAWARRAY)
- glDrawArrays (GL_TRIANGLES, 0, 6);
- else if (derefMethod == ARRAYELEMENT) {
- glBegin (GL_TRIANGLES);
- glArrayElement (2);
- glArrayElement (3);
- glArrayElement (5);
- glEnd ();
- }
- else if (derefMethod == DRAWELEMENTS) {
- GLuint indices[4] = {0, 1, 3, 4};
-
- glDrawElements (GL_POLYGON, 4, GL_UNSIGNED_INT, indices);
- }
- glFlush ();
-}
-
-static void reshape (int w, int h)
-{
- glViewport (0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode (GL_PROJECTION);
- glLoadIdentity ();
- gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h);
-}
-
-/* ARGSUSED2 */
-static void mouse (int button, int state, int x, int y)
-{
- switch (button) {
- case GLUT_LEFT_BUTTON:
- if (state == GLUT_DOWN) {
- if (setupMethod == POINTER) {
- setupMethod = INTERLEAVED;
- setupInterleave();
- }
- else if (setupMethod == INTERLEAVED) {
- setupMethod = POINTER;
- setupPointers();
- }
- glutPostRedisplay();
- }
- break;
- case GLUT_MIDDLE_BUTTON:
- case GLUT_RIGHT_BUTTON:
- if (state == GLUT_DOWN) {
- if (derefMethod == DRAWARRAY)
- derefMethod = ARRAYELEMENT;
- else if (derefMethod == ARRAYELEMENT)
- derefMethod = DRAWELEMENTS;
- else if (derefMethod == DRAWELEMENTS)
- derefMethod = DRAWARRAY;
- glutPostRedisplay();
- }
- break;
- default:
- break;
- }
-}
-
-/* ARGSUSED1 */
-static void keyboard(unsigned char key, int x, int y)
-{
- switch (key) {
- case 27:
- exit(0);
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize (350, 350);
- glutInitWindowPosition (100, 100);
- glutCreateWindow (argv[0]);
- init ();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutMouseFunc(mouse);
- glutKeyboardFunc (keyboard);
- glutMainLoop();
- return 0;
-}
-#else
-int main(int argc, char** argv)
-{
- fprintf (stderr, "This program demonstrates a feature which is not in OpenGL Version 1.0.\n");
- fprintf (stderr, "If your implementation of OpenGL Version 1.0 has the right extensions,\n");
- fprintf (stderr, "you may be able to modify this program to make it run.\n");
- return 0;
-}
-#endif
diff --git a/progs/redbook/wrap.c b/progs/redbook/wrap.c
deleted file mode 100644
index 67749716e8..0000000000
--- a/progs/redbook/wrap.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (c) 1993-1997, Silicon Graphics, Inc.
- * ALL RIGHTS RESERVED
- * Permission to use, copy, modify, and distribute this software for
- * any purpose and without fee is hereby granted, provided that the above
- * copyright notice appear in all copies and that both the copyright notice
- * and this permission notice appear in supporting documentation, and that
- * the name of Silicon Graphics, Inc. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.
- *
- * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
- * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
- * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
- * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
- * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
- * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
- * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * US Government Users Restricted Rights
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
- * (c)(1)(ii) of the Rights in Technical Data and Computer Software
- * clause at DFARS 252.227-7013 and/or in similar or successor
- * clauses in the FAR or the DOD or NASA FAR Supplement.
- * Unpublished-- rights reserved under the copyright laws of the
- * United States. Contractor/manufacturer is Silicon Graphics,
- * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
- *
- * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
- */
-
-/* wrap.c
- * This program texture maps a checkerboard image onto
- * two rectangles. This program demonstrates the wrapping
- * modes, if the texture coordinates fall outside 0.0 and 1.0.
- * Interaction: Pressing the 's' and 'S' keys switch the
- * wrapping between clamping and repeating for the s parameter.
- * The 't' and 'T' keys control the wrapping for the t parameter.
- *
- * If running this program on OpenGL 1.0, texture objects are
- * not used.
- */
-#include <GL/glut.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-/* Create checkerboard texture */
-#define checkImageWidth 64
-#define checkImageHeight 64
-static GLubyte checkImage[checkImageHeight][checkImageWidth][4];
-
-#ifdef GL_VERSION_1_1
-static GLuint texName;
-#endif
-
-static void makeCheckImage(void)
-{
- int i, j, c;
-
- for (i = 0; i < checkImageHeight; i++) {
- for (j = 0; j < checkImageWidth; j++) {
- c = (((i&0x8)==0)^((j&0x8)==0))*255;
- checkImage[i][j][0] = (GLubyte) c;
- checkImage[i][j][1] = (GLubyte) c;
- checkImage[i][j][2] = (GLubyte) c;
- checkImage[i][j][3] = (GLubyte) 255;
- }
- }
-}
-
-static void init(void)
-{
- glClearColor (0.0, 0.0, 0.0, 0.0);
- glShadeModel(GL_FLAT);
- glEnable(GL_DEPTH_TEST);
-
- makeCheckImage();
- glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-
-#ifdef GL_VERSION_1_1
- glGenTextures(1, &texName);
- glBindTexture(GL_TEXTURE_2D, texName);
-#endif
-
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-#ifdef GL_VERSION_1_1
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, checkImageWidth, checkImageHeight,
- 0, GL_RGBA, GL_UNSIGNED_BYTE, checkImage);
-#else
- glTexImage2D(GL_TEXTURE_2D, 0, 4, checkImageWidth, checkImageHeight,
- 0, GL_RGBA, GL_UNSIGNED_BYTE, checkImage);
-#endif
-}
-
-static void display(void)
-{
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glEnable(GL_TEXTURE_2D);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
-#ifdef GL_VERSION_1_1
- glBindTexture(GL_TEXTURE_2D, texName);
-#endif
-
- glBegin(GL_QUADS);
- glTexCoord2f(0.0, 0.0); glVertex3f(-2.0, -1.0, 0.0);
- glTexCoord2f(0.0, 3.0); glVertex3f(-2.0, 1.0, 0.0);
- glTexCoord2f(3.0, 3.0); glVertex3f(0.0, 1.0, 0.0);
- glTexCoord2f(3.0, 0.0); glVertex3f(0.0, -1.0, 0.0);
-
- glTexCoord2f(0.0, 0.0); glVertex3f(1.0, -1.0, 0.0);
- glTexCoord2f(0.0, 3.0); glVertex3f(1.0, 1.0, 0.0);
- glTexCoord2f(3.0, 3.0); glVertex3f(2.41421, 1.0, -1.41421);
- glTexCoord2f(3.0, 0.0); glVertex3f(2.41421, -1.0, -1.41421);
- glEnd();
- glFlush();
- glDisable(GL_TEXTURE_2D);
-}
-
-static void reshape(int w, int h)
-{
- glViewport(0, 0, (GLsizei) w, (GLsizei) h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 30.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -3.6);
-}
-
-/* ARGSUSED1 */
-static void keyboard (unsigned char key, int x, int y)
-{
- switch (key) {
- case 's':
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glutPostRedisplay();
- break;
- case 'S':
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
- glutPostRedisplay();
- break;
- case 't':
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- glutPostRedisplay();
- break;
- case 'T':
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
- glutPostRedisplay();
- break;
- case 27:
- exit(0);
- break;
- default:
- break;
- }
-}
-
-int main(int argc, char** argv)
-{
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(250, 250);
- glutInitWindowPosition(100, 100);
- glutCreateWindow(argv[0]);
- init();
- glutDisplayFunc(display);
- glutReshapeFunc(reshape);
- glutKeyboardFunc(keyboard);
- glutMainLoop();
- return 0;
-}