diff options
Diffstat (limited to 'progs')
-rw-r--r-- | progs/demos/descrip.mms | 90 | ||||
-rw-r--r-- | progs/demos/geartrain.dat | 238 | ||||
-rw-r--r-- | progs/ggi/sphere.asc | 264 | ||||
-rw-r--r-- | progs/ggi/torus.asc | 528 | ||||
-rw-r--r-- | progs/samples/Makefile.DJ | 85 | ||||
-rw-r--r-- | progs/samples/Makefile.mgw | 93 | ||||
-rw-r--r-- | progs/tests/Makefile | 3 | ||||
-rw-r--r-- | progs/tests/calibrate_rast.c | 395 | ||||
-rw-r--r-- | progs/tests/descrip.mms | 84 | ||||
-rw-r--r-- | progs/tests/minmag.c | 198 | ||||
-rw-r--r-- | progs/tests/subtex.c | 223 | ||||
-rw-r--r-- | progs/trivial/.gitignore | 1 | ||||
-rw-r--r-- | progs/trivial/Makefile | 1 | ||||
-rw-r--r-- | progs/trivial/line-smooth.c | 172 | ||||
-rw-r--r-- | progs/util/descrip.mms | 42 | ||||
-rw-r--r-- | progs/xdemos/descrip.mms | 83 |
16 files changed, 1508 insertions, 992 deletions
diff --git a/progs/demos/descrip.mms b/progs/demos/descrip.mms deleted file mode 100644 index bb2489fc3b..0000000000 --- a/progs/demos/descrip.mms +++ /dev/null @@ -1,90 +0,0 @@ -# Makefile for GLUT-based demo programs for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl -# Last update : 20 May 2005 - -.first - define gl [--.include.gl] - -.include [--]mms.config - -##### MACROS ##### - -INCDIR = ([--.include],[-.util]) -CFLAGS =/include=$(INCDIR)/prefix=all/name=(as_is,short)/float=ieee/ieee=denorm - -.ifdef SHARE -GL_LIBS = $(XLIBS) -LIB_DEP = [--.lib]$(GL_SHAR) [--.lib]$(GLU_SHAR) [--.lib]$(GLUT_SHAR) -.else -GL_LIBS = [--.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS) -LIB_DEP = [--.lib]$(GL_LIB) [--.lib]$(GLU_LIB) [--.lib]$(GLUT_LIB) -.endif - - -PROGS = bounce.exe;,clearspd.exe;,drawpix.exe;,gamma.exe;,gears.exe;,\ - glinfo.exe;,glutfx.exe;,isosurf.exe;,morph3d.exe;,\ - paltex.exe;,pointblast.exe;,reflect.exe;,spectex.exe;,stex3d.exe;,\ - tessdemo.exe;,texcyl.exe;,texobj.exe;,trispd.exe;,winpos.exe; - - -##### RULES ##### -.obj.exe : - cxxlink $(MMS$TARGET_NAME),$(GL_LIBS) - -##### TARGETS ##### -default : - $(MMS)$(MMSQUALIFIERS) $(PROGS) - -clean : - delete *.obj;* - -realclean : - delete $(PROGS) - delete *.obj;* - -bounce.exe; : bounce.obj $(LIB_DEP) -clearspd.exe; : clearspd.obj $(LIB_DEP) -drawpix.exe; : drawpix.obj $(LIB_DEP) [-.util]readtex.obj - cxxlink $(MMS$TARGET_NAME),[-.util]readtex.obj,$(GL_LIBS) -gamma.exe; : gamma.obj $(LIB_DEP) -gears.exe; : gears.obj $(LIB_DEP) -glinfo.exe; : glinfo.obj $(LIB_DEP) -glutfx.exe; : glutfx.obj $(LIB_DEP) -isosurf.exe; : isosurf.obj $(LIB_DEP) [-.util]readtex.obj - cxxlink $(MMS$TARGET_NAME),[-.util]readtex.obj,$(GL_LIBS) -morph3d.exe; : morph3d.obj $(LIB_DEP) -paltex.exe; : paltex.obj $(LIB_DEP) -pointblast.exe; : pointblast.obj $(LIB_DEP) -reflect.exe; : reflect.obj [-.util]readtex.obj [-.util]showbuffer.obj\ - $(LIB_DEP) - cxxlink $(MMS$TARGET_NAME),[-.util]readtex,showbuffer,$(GL_LIBS) -spectex.exe; : spectex.obj $(LIB_DEP) -stex3d.exe; : stex3d.obj $(LIB_DEP) -tessdemo.exe; : tessdemo.obj $(LIB_DEP) -texcyl.exe; : texcyl.obj [-.util]readtex.obj $(LIB_DEP) - cxxlink $(MMS$TARGET_NAME),[-.util]readtex.obj,$(GL_LIBS) -texobj.exe; : texobj.obj $(LIB_DEP) -trispd.exe; : trispd.obj $(LIB_DEP) -winpos.exe; : winpos.obj [-.util]readtex.obj $(LIB_DEP) - cxxlink $(MMS$TARGET_NAME),[-.util]readtex.obj,$(GL_LIBS) - - -bounce.obj : bounce.c -clearspd.obj : clearspd.c -drawpix.obj : drawpix.c -gamma.obj : gamma.c -gears.obj : gears.c -glinfo.obj : glinfo.c -glutfx.obj : glutfx.c -isosurf.obj : isosurf.c -morph3d.obj : morph3d.c -paltex.obj : paltex.c -pointblast.obj : pointblast.c -reflect.obj : reflect.c -spectex.obj : spectex.c -stex3d.obj : stex3d.c -tessdemo.obj : tessdemo.c -texcyl.obj : texcyl.c -texobj.obj : texobj.c -trispd.obj : trispd.c -winpos.obj : winpos.c diff --git a/progs/demos/geartrain.dat b/progs/demos/geartrain.dat index 374de48bd5..09fe4c64c2 100644 --- a/progs/demos/geartrain.dat +++ b/progs/demos/geartrain.dat @@ -1,119 +1,119 @@ -BACKGROUND = 0.000 0.500 0.700
-
-ANAME = AXLE1
-ARADIUS = 1.000
-AAXIS = 2
-APOSITION = -7.000 0.000 0.000
-ACOLOR = 0.800 0.500 0.200
-ALENGTH = 6.000
-AMOTORED = 1
-AANGULARVELOCITY = 90.000
-ADIRECTION = 1
-
-ANAME = AXLE2
-ARADIUS = 1.000
-AAXIS = 2
-APOSITION = -3.000 0.000 0.000
-ACOLOR = 0.800 0.500 0.200
-ALENGTH = 12.000
-AMOTORED = 0
-
-ANAME = AXLE3
-ARADIUS = 1.000
-AAXIS = 2
-APOSITION = 1.000 0.000 0.000
-ACOLOR = 0.800 0.500 0.200
-ALENGTH = 6.000
-AMOTORED = 0
-
-ANAME = AXLE4
-ARADIUS = 1.000
-AAXIS = 2
-APOSITION = 8.000 0.000 0.000
-ACOLOR = 0.800 0.500 0.200
-ALENGTH = 18.000
-AMOTORED = 0
-
-ANAME = AXLE5
-ARADIUS = 1.000
-AAXIS = 1
-APOSITION = 8.000 -8.200 -7.400
-ACOLOR = 0.800 0.500 0.200
-ALENGTH = 12.000
-AMOTORED = 0
-
-GNAME = GEAR1
-GTYPE = NORMAL
-GRADIUS = 2.200
-GWIDTH = 3.000
-GTEETH = 40
-GTOOTHDEPTH = 0.500
-GCOLOR = 0.500 0.500 0.500
-GAXLE = AXLE1
-GPOSITION = 0.000
-
-GNAME = GEAR2
-GTYPE = NORMAL
-GRADIUS = 2.200
-GWIDTH = 3.000
-GTEETH = 30
-GTOOTHDEPTH = 0.500
-GCOLOR = 0.500 0.500 0.500
-GAXLE = AXLE2
-GPOSITION = 0.000
-
-GNAME = GEAR3
-GTYPE = NORMAL
-GRADIUS = 2.200
-GWIDTH = 3.000
-GTEETH = 20
-GTOOTHDEPTH = 0.500
-GCOLOR = 0.500 0.500 0.500
-GAXLE = AXLE3
-GPOSITION = 0.000
-
-GNAME = GEAR4
-GTYPE = NORMAL
-GRADIUS = 1.700
-GWIDTH = 1.000
-GTEETH = 20
-GTOOTHDEPTH = 0.500
-GCOLOR = 0.500 0.500 0.500
-GAXLE = AXLE2
-GPOSITION = 5.000
-
-GNAME = GEAR5
-GTYPE = NORMAL
-GRADIUS = 3.000
-GWIDTH = 1.000
-GTEETH = 20
-GTOOTHDEPTH = 0.500
-GCOLOR = 0.500 0.500 0.500
-GAXLE = AXLE4
-GPOSITION = 5.000
-
-GNAME = GEAR6
-GTYPE = BEVEL
-GFACE = 0
-GRADIUS = 4.000
-GWIDTH = 1.000
-GTEETH = 20
-GTOOTHDEPTH = 1.700
-GCOLOR = 0.500 0.500 0.500
-GAXLE = AXLE4
-GPOSITION = -4.000
-
-GNAME = GEAR7
-GTYPE = BEVEL
-GFACE = 0
-GRADIUS = 4.000
-GWIDTH = 1.000
-GTEETH = 20
-GTOOTHDEPTH = 1.700
-GCOLOR = 0.500 0.500 0.500
-GAXLE = AXLE5
-GPOSITION = 5.000
-
-BELTNAME = BELT1
-GEAR1NAME = GEAR5
-GEAR2NAME = GEAR4
+BACKGROUND = 0.000 0.500 0.700 + +ANAME = AXLE1 +ARADIUS = 1.000 +AAXIS = 2 +APOSITION = -7.000 0.000 0.000 +ACOLOR = 0.800 0.500 0.200 +ALENGTH = 6.000 +AMOTORED = 1 +AANGULARVELOCITY = 90.000 +ADIRECTION = 1 + +ANAME = AXLE2 +ARADIUS = 1.000 +AAXIS = 2 +APOSITION = -3.000 0.000 0.000 +ACOLOR = 0.800 0.500 0.200 +ALENGTH = 12.000 +AMOTORED = 0 + +ANAME = AXLE3 +ARADIUS = 1.000 +AAXIS = 2 +APOSITION = 1.000 0.000 0.000 +ACOLOR = 0.800 0.500 0.200 +ALENGTH = 6.000 +AMOTORED = 0 + +ANAME = AXLE4 +ARADIUS = 1.000 +AAXIS = 2 +APOSITION = 8.000 0.000 0.000 +ACOLOR = 0.800 0.500 0.200 +ALENGTH = 18.000 +AMOTORED = 0 + +ANAME = AXLE5 +ARADIUS = 1.000 +AAXIS = 1 +APOSITION = 8.000 -8.200 -7.400 +ACOLOR = 0.800 0.500 0.200 +ALENGTH = 12.000 +AMOTORED = 0 + +GNAME = GEAR1 +GTYPE = NORMAL +GRADIUS = 2.200 +GWIDTH = 3.000 +GTEETH = 40 +GTOOTHDEPTH = 0.500 +GCOLOR = 0.500 0.500 0.500 +GAXLE = AXLE1 +GPOSITION = 0.000 + +GNAME = GEAR2 +GTYPE = NORMAL +GRADIUS = 2.200 +GWIDTH = 3.000 +GTEETH = 30 +GTOOTHDEPTH = 0.500 +GCOLOR = 0.500 0.500 0.500 +GAXLE = AXLE2 +GPOSITION = 0.000 + +GNAME = GEAR3 +GTYPE = NORMAL +GRADIUS = 2.200 +GWIDTH = 3.000 +GTEETH = 20 +GTOOTHDEPTH = 0.500 +GCOLOR = 0.500 0.500 0.500 +GAXLE = AXLE3 +GPOSITION = 0.000 + +GNAME = GEAR4 +GTYPE = NORMAL +GRADIUS = 1.700 +GWIDTH = 1.000 +GTEETH = 20 +GTOOTHDEPTH = 0.500 +GCOLOR = 0.500 0.500 0.500 +GAXLE = AXLE2 +GPOSITION = 5.000 + +GNAME = GEAR5 +GTYPE = NORMAL +GRADIUS = 3.000 +GWIDTH = 1.000 +GTEETH = 20 +GTOOTHDEPTH = 0.500 +GCOLOR = 0.500 0.500 0.500 +GAXLE = AXLE4 +GPOSITION = 5.000 + +GNAME = GEAR6 +GTYPE = BEVEL +GFACE = 0 +GRADIUS = 4.000 +GWIDTH = 1.000 +GTEETH = 20 +GTOOTHDEPTH = 1.700 +GCOLOR = 0.500 0.500 0.500 +GAXLE = AXLE4 +GPOSITION = -4.000 + +GNAME = GEAR7 +GTYPE = BEVEL +GFACE = 0 +GRADIUS = 4.000 +GWIDTH = 1.000 +GTEETH = 20 +GTOOTHDEPTH = 1.700 +GCOLOR = 0.500 0.500 0.500 +GAXLE = AXLE5 +GPOSITION = 5.000 + +BELTNAME = BELT1 +GEAR1NAME = GEAR5 +GEAR2NAME = GEAR4 diff --git a/progs/ggi/sphere.asc b/progs/ggi/sphere.asc index 1424a740d7..cf7cebf224 100644 --- a/progs/ggi/sphere.asc +++ b/progs/ggi/sphere.asc @@ -1,132 +1,132 @@ -Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216
-
-Named object: "Object01"
-Tri-mesh, Vertices: 20 Faces: 36
-Vertex list:
-Vertex 0: X: -210 Y: -432.781738 Z: 180.000031
-Vertex 1: X: -610.810303 Y: 144.260559 Z: 103.580154
-Vertex 2: X: 56.586655 Y: 144.260544 Z: -128.902023
-Vertex 3: X: -75.776352 Y: 144.260605 Z: 565.321838
-Vertex 4: X: -462.815979 Y: -347.937683 Z: 131.797302
-Vertex 5: X: -616.506042 Y: -126.67173 Z: 102.494209
-Vertex 6: X: -41.847229 Y: -347.937683 Z: -14.843644
-Vertex 7: X: 60.375015 Y: -126.671753 Z: -133.291641
-Vertex 8: X: -125.336807 Y: -347.937653 Z: 423.046448
-Vertex 9: X: -73.868958 Y: -126.671692 Z: 570.797424
-Vertex 10: X: -448.353271 Y: 237.304672 Z: -92.34951
-Vertex 11: X: -192.440964 Y: 237.304672 Z: -181.494431
-Vertex 12: X: 145.038193 Y: 237.304672 Z: 109.754745
-Vertex 13: X: 94.283768 Y: 237.304688 Z: 375.953766
-Vertex 14: X: -326.684937 Y: 237.304733 Z: 522.594727
-Vertex 15: X: -531.842834 Y: 237.304718 Z: 345.540588
-Vertex 16: X: -331.419525 Y: -225.964966 Z: -168.564438
-Vertex 17: X: 152.575485 Y: -225.964935 Z: 249.129868
-Vertex 18: X: -451.155914 Y: -225.964905 Z: 459.434662
-Vertex 19: X: -298.413483 Y: 423.31897 Z: 163.142761
-Face list:
-Face 0: A:0 B:4 C:6 AB:1 BC:1 CA:1
-Face 1: A:4 B:5 C:16 AB:1 BC:1 CA:1
-Face 2: A:4 B:16 C:6 AB:1 BC:1 CA:1
-Face 3: A:6 B:16 C:7 AB:1 BC:1 CA:1
-Face 4: A:5 B:1 C:10 AB:1 BC:1 CA:1
-Face 5: A:5 B:10 C:16 AB:1 BC:1 CA:1
-Face 6: A:16 B:10 C:11 AB:1 BC:1 CA:1
-Face 7: A:16 B:11 C:7 AB:1 BC:1 CA:1
-Face 8: A:7 B:11 C:2 AB:1 BC:1 CA:1
-Face 9: A:0 B:6 C:8 AB:1 BC:1 CA:1
-Face 10: A:6 B:7 C:17 AB:1 BC:1 CA:1
-Face 11: A:6 B:17 C:8 AB:1 BC:1 CA:1
-Face 12: A:8 B:17 C:9 AB:1 BC:1 CA:1
-Face 13: A:7 B:2 C:12 AB:1 BC:1 CA:1
-Face 14: A:7 B:12 C:17 AB:1 BC:1 CA:1
-Face 15: A:17 B:12 C:13 AB:1 BC:1 CA:1
-Face 16: A:17 B:13 C:9 AB:1 BC:1 CA:1
-Face 17: A:9 B:13 C:3 AB:1 BC:1 CA:1
-Face 18: A:0 B:8 C:4 AB:1 BC:1 CA:1
-Face 19: A:8 B:9 C:18 AB:1 BC:1 CA:1
-Face 20: A:8 B:18 C:4 AB:1 BC:1 CA:1
-Face 21: A:4 B:18 C:5 AB:1 BC:1 CA:1
-Face 22: A:9 B:3 C:14 AB:1 BC:1 CA:1
-Face 23: A:9 B:14 C:18 AB:1 BC:1 CA:1
-Face 24: A:18 B:14 C:15 AB:1 BC:1 CA:1
-Face 25: A:18 B:15 C:5 AB:1 BC:1 CA:1
-Face 26: A:5 B:15 C:1 AB:1 BC:1 CA:1
-Face 27: A:1 B:15 C:10 AB:1 BC:1 CA:1
-Face 28: A:15 B:14 C:19 AB:1 BC:1 CA:1
-Face 29: A:15 B:19 C:10 AB:1 BC:1 CA:1
-Face 30: A:10 B:19 C:11 AB:1 BC:1 CA:1
-Face 31: A:14 B:3 C:13 AB:1 BC:1 CA:1
-Face 32: A:14 B:13 C:19 AB:1 BC:1 CA:1
-Face 33: A:19 B:13 C:12 AB:1 BC:1 CA:1
-Face 34: A:19 B:12 C:11 AB:1 BC:1 CA:1
-
- Page 1
-
-
-
-Face 35: A:11 B:12 C:2 AB:1 BC:1 CA:1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 2
-
-
-
+Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216 + +Named object: "Object01" +Tri-mesh, Vertices: 20 Faces: 36 +Vertex list: +Vertex 0: X: -210 Y: -432.781738 Z: 180.000031 +Vertex 1: X: -610.810303 Y: 144.260559 Z: 103.580154 +Vertex 2: X: 56.586655 Y: 144.260544 Z: -128.902023 +Vertex 3: X: -75.776352 Y: 144.260605 Z: 565.321838 +Vertex 4: X: -462.815979 Y: -347.937683 Z: 131.797302 +Vertex 5: X: -616.506042 Y: -126.67173 Z: 102.494209 +Vertex 6: X: -41.847229 Y: -347.937683 Z: -14.843644 +Vertex 7: X: 60.375015 Y: -126.671753 Z: -133.291641 +Vertex 8: X: -125.336807 Y: -347.937653 Z: 423.046448 +Vertex 9: X: -73.868958 Y: -126.671692 Z: 570.797424 +Vertex 10: X: -448.353271 Y: 237.304672 Z: -92.34951 +Vertex 11: X: -192.440964 Y: 237.304672 Z: -181.494431 +Vertex 12: X: 145.038193 Y: 237.304672 Z: 109.754745 +Vertex 13: X: 94.283768 Y: 237.304688 Z: 375.953766 +Vertex 14: X: -326.684937 Y: 237.304733 Z: 522.594727 +Vertex 15: X: -531.842834 Y: 237.304718 Z: 345.540588 +Vertex 16: X: -331.419525 Y: -225.964966 Z: -168.564438 +Vertex 17: X: 152.575485 Y: -225.964935 Z: 249.129868 +Vertex 18: X: -451.155914 Y: -225.964905 Z: 459.434662 +Vertex 19: X: -298.413483 Y: 423.31897 Z: 163.142761 +Face list: +Face 0: A:0 B:4 C:6 AB:1 BC:1 CA:1 +Face 1: A:4 B:5 C:16 AB:1 BC:1 CA:1 +Face 2: A:4 B:16 C:6 AB:1 BC:1 CA:1 +Face 3: A:6 B:16 C:7 AB:1 BC:1 CA:1 +Face 4: A:5 B:1 C:10 AB:1 BC:1 CA:1 +Face 5: A:5 B:10 C:16 AB:1 BC:1 CA:1 +Face 6: A:16 B:10 C:11 AB:1 BC:1 CA:1 +Face 7: A:16 B:11 C:7 AB:1 BC:1 CA:1 +Face 8: A:7 B:11 C:2 AB:1 BC:1 CA:1 +Face 9: A:0 B:6 C:8 AB:1 BC:1 CA:1 +Face 10: A:6 B:7 C:17 AB:1 BC:1 CA:1 +Face 11: A:6 B:17 C:8 AB:1 BC:1 CA:1 +Face 12: A:8 B:17 C:9 AB:1 BC:1 CA:1 +Face 13: A:7 B:2 C:12 AB:1 BC:1 CA:1 +Face 14: A:7 B:12 C:17 AB:1 BC:1 CA:1 +Face 15: A:17 B:12 C:13 AB:1 BC:1 CA:1 +Face 16: A:17 B:13 C:9 AB:1 BC:1 CA:1 +Face 17: A:9 B:13 C:3 AB:1 BC:1 CA:1 +Face 18: A:0 B:8 C:4 AB:1 BC:1 CA:1 +Face 19: A:8 B:9 C:18 AB:1 BC:1 CA:1 +Face 20: A:8 B:18 C:4 AB:1 BC:1 CA:1 +Face 21: A:4 B:18 C:5 AB:1 BC:1 CA:1 +Face 22: A:9 B:3 C:14 AB:1 BC:1 CA:1 +Face 23: A:9 B:14 C:18 AB:1 BC:1 CA:1 +Face 24: A:18 B:14 C:15 AB:1 BC:1 CA:1 +Face 25: A:18 B:15 C:5 AB:1 BC:1 CA:1 +Face 26: A:5 B:15 C:1 AB:1 BC:1 CA:1 +Face 27: A:1 B:15 C:10 AB:1 BC:1 CA:1 +Face 28: A:15 B:14 C:19 AB:1 BC:1 CA:1 +Face 29: A:15 B:19 C:10 AB:1 BC:1 CA:1 +Face 30: A:10 B:19 C:11 AB:1 BC:1 CA:1 +Face 31: A:14 B:3 C:13 AB:1 BC:1 CA:1 +Face 32: A:14 B:13 C:19 AB:1 BC:1 CA:1 +Face 33: A:19 B:13 C:12 AB:1 BC:1 CA:1 +Face 34: A:19 B:12 C:11 AB:1 BC:1 CA:1 + + Page 1 + + + +Face 35: A:11 B:12 C:2 AB:1 BC:1 CA:1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Page 2 + + + diff --git a/progs/ggi/torus.asc b/progs/ggi/torus.asc index 6bd41f4033..605a62baa4 100644 --- a/progs/ggi/torus.asc +++ b/progs/ggi/torus.asc @@ -1,264 +1,264 @@ -Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216
-
-Named object: "Object01"
-Tri-mesh, Vertices: 40 Faces: 80
-Vertex list:
-Vertex 0: X: -50.170624 Y: -0.000026 Z: -240.147842
-Vertex 1: X: -80.584503 Y: -63.958851 Z: -205.014572
-Vertex 2: X: -129.795166 Y: -39.528744 Z: -148.16774
-Vertex 3: X: -129.795166 Y: 39.528721 Z: -148.16774
-Vertex 4: X: -80.584503 Y: 63.958797 Z: -205.014572
-Vertex 5: X: 85.963654 Y: -0.000002 Z: 31.490465
-Vertex 6: X: 39.614838 Y: -63.958828 Z: 34.827602
-Vertex 7: X: -35.37915 Y: -39.528728 Z: 40.227196
-Vertex 8: X: -35.37912 Y: 39.528736 Z: 40.227188
-Vertex 9: X: 39.614838 Y: 63.95882 Z: 34.827595
-Vertex 10: X: -9.852051 Y: 0.000023 Z: 319.829254
-Vertex 11: X: -44.985352 Y: -63.958805 Z: 289.415405
-Vertex 12: X: -101.832199 Y: -39.528709 Z: 240.204758
-Vertex 13: X: -101.832184 Y: 39.528755 Z: 240.204773
-Vertex 14: X: -44.985352 Y: 63.958843 Z: 289.415405
-Vertex 15: X: -281.490326 Y: 0.000035 Z: 455.963654
-Vertex 16: X: -284.827484 Y: -63.958794 Z: 409.614868
-Vertex 17: X: -290.227112 Y: -39.528702 Z: 334.62085
-Vertex 18: X: -290.227112 Y: 39.528763 Z: 334.62088
-Vertex 19: X: -284.827484 Y: 63.958855 Z: 409.614838
-Vertex 20: X: -569.829163 Y: 0.000026 Z: 360.14798
-Vertex 21: X: -539.415344 Y: -63.958801 Z: 325.014709
-Vertex 22: X: -490.204712 Y: -39.528709 Z: 268.167847
-Vertex 23: X: -490.204712 Y: 39.528755 Z: 268.167847
-Vertex 24: X: -539.415344 Y: 63.958847 Z: 325.014679
-Vertex 25: X: -705.963684 Y: 0.000002 Z: 88.509598
-Vertex 26: X: -659.614807 Y: -63.958824 Z: 85.172462
-Vertex 27: X: -584.62085 Y: -39.528725 Z: 79.77285
-Vertex 28: X: -584.62085 Y: 39.52874 Z: 79.77285
-Vertex 29: X: -659.614868 Y: 63.958824 Z: 85.172447
-Vertex 30: X: -610.147827 Y: -0.000023 Z: -199.829361
-Vertex 31: X: -575.014587 Y: -63.958847 Z: -169.415497
-Vertex 32: X: -518.167725 Y: -39.528744 Z: -120.204819
-Vertex 33: X: -518.167725 Y: 39.528721 Z: -120.204834
-Vertex 34: X: -575.014587 Y: 63.958801 Z: -169.415497
-Vertex 35: X: -338.509338 Y: -0.000035 Z: -335.963745
-Vertex 36: X: -335.172241 Y: -63.958858 Z: -289.614868
-Vertex 37: X: -329.772675 Y: -39.528751 Z: -214.620865
-Vertex 38: X: -329.772675 Y: 39.528713 Z: -214.620865
-Vertex 39: X: -335.172241 Y: 63.95879 Z: -289.614899
-Face list:
-Face 0: A:0 B:6 C:1 AB:0 BC:1 CA:1
-Smoothing: 1
-Face 1: A:0 B:5 C:6 AB:1 BC:1 CA:0
-Smoothing: 1
-Face 2: A:1 B:7 C:2 AB:0 BC:1 CA:1
-Smoothing: 2
-Face 3: A:1 B:6 C:7 AB:1 BC:1 CA:0
-Smoothing: 2
-Face 4: A:2 B:8 C:3 AB:0 BC:1 CA:1
-Smoothing: 3
-Face 5: A:2 B:7 C:8 AB:1 BC:1 CA:0
-Smoothing: 3
-Face 6: A:3 B:9 C:4 AB:0 BC:1 CA:1
-Smoothing: 4
-Face 7: A:3 B:8 C:9 AB:1 BC:1 CA:0
-
- Page 1
-
-
-
-Smoothing: 4
-Face 8: A:4 B:5 C:0 AB:0 BC:1 CA:1
-Smoothing: 5
-Face 9: A:4 B:9 C:5 AB:1 BC:1 CA:0
-Smoothing: 5
-Face 10: A:5 B:11 C:6 AB:0 BC:1 CA:1
-Smoothing: 6
-Face 11: A:5 B:10 C:11 AB:1 BC:1 CA:0
-Smoothing: 6
-Face 12: A:6 B:12 C:7 AB:0 BC:1 CA:1
-Smoothing: 7
-Face 13: A:6 B:11 C:12 AB:1 BC:1 CA:0
-Smoothing: 7
-Face 14: A:7 B:13 C:8 AB:0 BC:1 CA:1
-Smoothing: 8
-Face 15: A:7 B:12 C:13 AB:1 BC:1 CA:0
-Smoothing: 8
-Face 16: A:8 B:14 C:9 AB:0 BC:1 CA:1
-Smoothing: 9
-Face 17: A:8 B:13 C:14 AB:1 BC:1 CA:0
-Smoothing: 9
-Face 18: A:9 B:10 C:5 AB:0 BC:1 CA:1
-Smoothing: 10
-Face 19: A:9 B:14 C:10 AB:1 BC:1 CA:0
-Smoothing: 10
-Face 20: A:10 B:16 C:11 AB:0 BC:1 CA:1
-Smoothing: 11
-Face 21: A:10 B:15 C:16 AB:1 BC:1 CA:0
-Smoothing: 11
-Face 22: A:11 B:17 C:12 AB:0 BC:1 CA:1
-Smoothing: 12
-Face 23: A:11 B:16 C:17 AB:1 BC:1 CA:0
-Smoothing: 12
-Face 24: A:12 B:18 C:13 AB:0 BC:1 CA:1
-Smoothing: 13
-Face 25: A:12 B:17 C:18 AB:1 BC:1 CA:0
-Smoothing: 13
-Face 26: A:13 B:19 C:14 AB:0 BC:1 CA:1
-Smoothing: 14
-Face 27: A:13 B:18 C:19 AB:1 BC:1 CA:0
-Smoothing: 14
-Face 28: A:14 B:15 C:10 AB:0 BC:1 CA:1
-Smoothing: 15
-Face 29: A:14 B:19 C:15 AB:1 BC:1 CA:0
-Smoothing: 15
-Face 30: A:15 B:21 C:16 AB:0 BC:1 CA:1
-Smoothing: 16
-Face 31: A:15 B:20 C:21 AB:1 BC:1 CA:0
-Smoothing: 16
-Face 32: A:16 B:22 C:17 AB:0 BC:1 CA:1
-Smoothing: 17
-Face 33: A:16 B:21 C:22 AB:1 BC:1 CA:0
-Smoothing: 17
-Face 34: A:17 B:23 C:18 AB:0 BC:1 CA:1
-Smoothing: 18
-Face 35: A:17 B:22 C:23 AB:1 BC:1 CA:0
-Smoothing: 18
-Face 36: A:18 B:24 C:19 AB:0 BC:1 CA:1
-Smoothing: 19
-Face 37: A:18 B:23 C:24 AB:1 BC:1 CA:0
-Smoothing: 19
-
- Page 2
-
-
-
-Face 38: A:19 B:20 C:15 AB:0 BC:1 CA:1
-Smoothing: 20
-Face 39: A:19 B:24 C:20 AB:1 BC:1 CA:0
-Smoothing: 20
-Face 40: A:20 B:26 C:21 AB:0 BC:1 CA:1
-Smoothing: 21
-Face 41: A:20 B:25 C:26 AB:1 BC:1 CA:0
-Smoothing: 21
-Face 42: A:21 B:27 C:22 AB:0 BC:1 CA:1
-Smoothing: 22
-Face 43: A:21 B:26 C:27 AB:1 BC:1 CA:0
-Smoothing: 22
-Face 44: A:22 B:28 C:23 AB:0 BC:1 CA:1
-Smoothing: 23
-Face 45: A:22 B:27 C:28 AB:1 BC:1 CA:0
-Smoothing: 23
-Face 46: A:23 B:29 C:24 AB:0 BC:1 CA:1
-Smoothing: 24
-Face 47: A:23 B:28 C:29 AB:1 BC:1 CA:0
-Smoothing: 24
-Face 48: A:24 B:25 C:20 AB:0 BC:1 CA:1
-Smoothing: 25
-Face 49: A:24 B:29 C:25 AB:1 BC:1 CA:0
-Smoothing: 25
-Face 50: A:25 B:31 C:26 AB:0 BC:1 CA:1
-Smoothing: 26
-Face 51: A:25 B:30 C:31 AB:1 BC:1 CA:0
-Smoothing: 26
-Face 52: A:26 B:32 C:27 AB:0 BC:1 CA:1
-Smoothing: 27
-Face 53: A:26 B:31 C:32 AB:1 BC:1 CA:0
-Smoothing: 27
-Face 54: A:27 B:33 C:28 AB:0 BC:1 CA:1
-Smoothing: 28
-Face 55: A:27 B:32 C:33 AB:1 BC:1 CA:0
-Smoothing: 28
-Face 56: A:28 B:34 C:29 AB:0 BC:1 CA:1
-Smoothing: 29
-Face 57: A:28 B:33 C:34 AB:1 BC:1 CA:0
-Smoothing: 29
-Face 58: A:29 B:30 C:25 AB:0 BC:1 CA:1
-Smoothing: 30
-Face 59: A:29 B:34 C:30 AB:1 BC:1 CA:0
-Smoothing: 30
-Face 60: A:30 B:36 C:31 AB:0 BC:1 CA:1
-Smoothing: 31
-Face 61: A:30 B:35 C:36 AB:1 BC:1 CA:0
-Smoothing: 31
-Face 62: A:31 B:37 C:32 AB:0 BC:1 CA:1
-Smoothing: 32
-Face 63: A:31 B:36 C:37 AB:1 BC:1 CA:0
-Smoothing: 32
-Face 64: A:32 B:38 C:33 AB:0 BC:1 CA:1
-Smoothing: 1
-Face 65: A:32 B:37 C:38 AB:1 BC:1 CA:0
-Smoothing: 1
-Face 66: A:33 B:39 C:34 AB:0 BC:1 CA:1
-Smoothing: 2
-Face 67: A:33 B:38 C:39 AB:1 BC:1 CA:0
-Smoothing: 2
-Face 68: A:34 B:35 C:30 AB:0 BC:1 CA:1
-
- Page 3
-
-
-
-Smoothing: 3
-Face 69: A:34 B:39 C:35 AB:1 BC:1 CA:0
-Smoothing: 3
-Face 70: A:35 B:1 C:36 AB:0 BC:1 CA:1
-Smoothing: 4
-Face 71: A:35 B:0 C:1 AB:1 BC:1 CA:0
-Smoothing: 4
-Face 72: A:36 B:2 C:37 AB:0 BC:1 CA:1
-Smoothing: 5
-Face 73: A:36 B:1 C:2 AB:1 BC:1 CA:0
-Smoothing: 5
-Face 74: A:37 B:3 C:38 AB:0 BC:1 CA:1
-Smoothing: 6
-Face 75: A:37 B:2 C:3 AB:1 BC:1 CA:0
-Smoothing: 6
-Face 76: A:38 B:4 C:39 AB:0 BC:1 CA:1
-Smoothing: 7
-Face 77: A:38 B:3 C:4 AB:1 BC:1 CA:0
-Smoothing: 7
-Face 78: A:39 B:0 C:35 AB:0 BC:1 CA:1
-Smoothing: 8
-Face 79: A:39 B:4 C:0 AB:1 BC:1 CA:0
-Smoothing: 8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 4
-
-
-
+Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216 + +Named object: "Object01" +Tri-mesh, Vertices: 40 Faces: 80 +Vertex list: +Vertex 0: X: -50.170624 Y: -0.000026 Z: -240.147842 +Vertex 1: X: -80.584503 Y: -63.958851 Z: -205.014572 +Vertex 2: X: -129.795166 Y: -39.528744 Z: -148.16774 +Vertex 3: X: -129.795166 Y: 39.528721 Z: -148.16774 +Vertex 4: X: -80.584503 Y: 63.958797 Z: -205.014572 +Vertex 5: X: 85.963654 Y: -0.000002 Z: 31.490465 +Vertex 6: X: 39.614838 Y: -63.958828 Z: 34.827602 +Vertex 7: X: -35.37915 Y: -39.528728 Z: 40.227196 +Vertex 8: X: -35.37912 Y: 39.528736 Z: 40.227188 +Vertex 9: X: 39.614838 Y: 63.95882 Z: 34.827595 +Vertex 10: X: -9.852051 Y: 0.000023 Z: 319.829254 +Vertex 11: X: -44.985352 Y: -63.958805 Z: 289.415405 +Vertex 12: X: -101.832199 Y: -39.528709 Z: 240.204758 +Vertex 13: X: -101.832184 Y: 39.528755 Z: 240.204773 +Vertex 14: X: -44.985352 Y: 63.958843 Z: 289.415405 +Vertex 15: X: -281.490326 Y: 0.000035 Z: 455.963654 +Vertex 16: X: -284.827484 Y: -63.958794 Z: 409.614868 +Vertex 17: X: -290.227112 Y: -39.528702 Z: 334.62085 +Vertex 18: X: -290.227112 Y: 39.528763 Z: 334.62088 +Vertex 19: X: -284.827484 Y: 63.958855 Z: 409.614838 +Vertex 20: X: -569.829163 Y: 0.000026 Z: 360.14798 +Vertex 21: X: -539.415344 Y: -63.958801 Z: 325.014709 +Vertex 22: X: -490.204712 Y: -39.528709 Z: 268.167847 +Vertex 23: X: -490.204712 Y: 39.528755 Z: 268.167847 +Vertex 24: X: -539.415344 Y: 63.958847 Z: 325.014679 +Vertex 25: X: -705.963684 Y: 0.000002 Z: 88.509598 +Vertex 26: X: -659.614807 Y: -63.958824 Z: 85.172462 +Vertex 27: X: -584.62085 Y: -39.528725 Z: 79.77285 +Vertex 28: X: -584.62085 Y: 39.52874 Z: 79.77285 +Vertex 29: X: -659.614868 Y: 63.958824 Z: 85.172447 +Vertex 30: X: -610.147827 Y: -0.000023 Z: -199.829361 +Vertex 31: X: -575.014587 Y: -63.958847 Z: -169.415497 +Vertex 32: X: -518.167725 Y: -39.528744 Z: -120.204819 +Vertex 33: X: -518.167725 Y: 39.528721 Z: -120.204834 +Vertex 34: X: -575.014587 Y: 63.958801 Z: -169.415497 +Vertex 35: X: -338.509338 Y: -0.000035 Z: -335.963745 +Vertex 36: X: -335.172241 Y: -63.958858 Z: -289.614868 +Vertex 37: X: -329.772675 Y: -39.528751 Z: -214.620865 +Vertex 38: X: -329.772675 Y: 39.528713 Z: -214.620865 +Vertex 39: X: -335.172241 Y: 63.95879 Z: -289.614899 +Face list: +Face 0: A:0 B:6 C:1 AB:0 BC:1 CA:1 +Smoothing: 1 +Face 1: A:0 B:5 C:6 AB:1 BC:1 CA:0 +Smoothing: 1 +Face 2: A:1 B:7 C:2 AB:0 BC:1 CA:1 +Smoothing: 2 +Face 3: A:1 B:6 C:7 AB:1 BC:1 CA:0 +Smoothing: 2 +Face 4: A:2 B:8 C:3 AB:0 BC:1 CA:1 +Smoothing: 3 +Face 5: A:2 B:7 C:8 AB:1 BC:1 CA:0 +Smoothing: 3 +Face 6: A:3 B:9 C:4 AB:0 BC:1 CA:1 +Smoothing: 4 +Face 7: A:3 B:8 C:9 AB:1 BC:1 CA:0 + + Page 1 + + + +Smoothing: 4 +Face 8: A:4 B:5 C:0 AB:0 BC:1 CA:1 +Smoothing: 5 +Face 9: A:4 B:9 C:5 AB:1 BC:1 CA:0 +Smoothing: 5 +Face 10: A:5 B:11 C:6 AB:0 BC:1 CA:1 +Smoothing: 6 +Face 11: A:5 B:10 C:11 AB:1 BC:1 CA:0 +Smoothing: 6 +Face 12: A:6 B:12 C:7 AB:0 BC:1 CA:1 +Smoothing: 7 +Face 13: A:6 B:11 C:12 AB:1 BC:1 CA:0 +Smoothing: 7 +Face 14: A:7 B:13 C:8 AB:0 BC:1 CA:1 +Smoothing: 8 +Face 15: A:7 B:12 C:13 AB:1 BC:1 CA:0 +Smoothing: 8 +Face 16: A:8 B:14 C:9 AB:0 BC:1 CA:1 +Smoothing: 9 +Face 17: A:8 B:13 C:14 AB:1 BC:1 CA:0 +Smoothing: 9 +Face 18: A:9 B:10 C:5 AB:0 BC:1 CA:1 +Smoothing: 10 +Face 19: A:9 B:14 C:10 AB:1 BC:1 CA:0 +Smoothing: 10 +Face 20: A:10 B:16 C:11 AB:0 BC:1 CA:1 +Smoothing: 11 +Face 21: A:10 B:15 C:16 AB:1 BC:1 CA:0 +Smoothing: 11 +Face 22: A:11 B:17 C:12 AB:0 BC:1 CA:1 +Smoothing: 12 +Face 23: A:11 B:16 C:17 AB:1 BC:1 CA:0 +Smoothing: 12 +Face 24: A:12 B:18 C:13 AB:0 BC:1 CA:1 +Smoothing: 13 +Face 25: A:12 B:17 C:18 AB:1 BC:1 CA:0 +Smoothing: 13 +Face 26: A:13 B:19 C:14 AB:0 BC:1 CA:1 +Smoothing: 14 +Face 27: A:13 B:18 C:19 AB:1 BC:1 CA:0 +Smoothing: 14 +Face 28: A:14 B:15 C:10 AB:0 BC:1 CA:1 +Smoothing: 15 +Face 29: A:14 B:19 C:15 AB:1 BC:1 CA:0 +Smoothing: 15 +Face 30: A:15 B:21 C:16 AB:0 BC:1 CA:1 +Smoothing: 16 +Face 31: A:15 B:20 C:21 AB:1 BC:1 CA:0 +Smoothing: 16 +Face 32: A:16 B:22 C:17 AB:0 BC:1 CA:1 +Smoothing: 17 +Face 33: A:16 B:21 C:22 AB:1 BC:1 CA:0 +Smoothing: 17 +Face 34: A:17 B:23 C:18 AB:0 BC:1 CA:1 +Smoothing: 18 +Face 35: A:17 B:22 C:23 AB:1 BC:1 CA:0 +Smoothing: 18 +Face 36: A:18 B:24 C:19 AB:0 BC:1 CA:1 +Smoothing: 19 +Face 37: A:18 B:23 C:24 AB:1 BC:1 CA:0 +Smoothing: 19 + + Page 2 + + + +Face 38: A:19 B:20 C:15 AB:0 BC:1 CA:1 +Smoothing: 20 +Face 39: A:19 B:24 C:20 AB:1 BC:1 CA:0 +Smoothing: 20 +Face 40: A:20 B:26 C:21 AB:0 BC:1 CA:1 +Smoothing: 21 +Face 41: A:20 B:25 C:26 AB:1 BC:1 CA:0 +Smoothing: 21 +Face 42: A:21 B:27 C:22 AB:0 BC:1 CA:1 +Smoothing: 22 +Face 43: A:21 B:26 C:27 AB:1 BC:1 CA:0 +Smoothing: 22 +Face 44: A:22 B:28 C:23 AB:0 BC:1 CA:1 +Smoothing: 23 +Face 45: A:22 B:27 C:28 AB:1 BC:1 CA:0 +Smoothing: 23 +Face 46: A:23 B:29 C:24 AB:0 BC:1 CA:1 +Smoothing: 24 +Face 47: A:23 B:28 C:29 AB:1 BC:1 CA:0 +Smoothing: 24 +Face 48: A:24 B:25 C:20 AB:0 BC:1 CA:1 +Smoothing: 25 +Face 49: A:24 B:29 C:25 AB:1 BC:1 CA:0 +Smoothing: 25 +Face 50: A:25 B:31 C:26 AB:0 BC:1 CA:1 +Smoothing: 26 +Face 51: A:25 B:30 C:31 AB:1 BC:1 CA:0 +Smoothing: 26 +Face 52: A:26 B:32 C:27 AB:0 BC:1 CA:1 +Smoothing: 27 +Face 53: A:26 B:31 C:32 AB:1 BC:1 CA:0 +Smoothing: 27 +Face 54: A:27 B:33 C:28 AB:0 BC:1 CA:1 +Smoothing: 28 +Face 55: A:27 B:32 C:33 AB:1 BC:1 CA:0 +Smoothing: 28 +Face 56: A:28 B:34 C:29 AB:0 BC:1 CA:1 +Smoothing: 29 +Face 57: A:28 B:33 C:34 AB:1 BC:1 CA:0 +Smoothing: 29 +Face 58: A:29 B:30 C:25 AB:0 BC:1 CA:1 +Smoothing: 30 +Face 59: A:29 B:34 C:30 AB:1 BC:1 CA:0 +Smoothing: 30 +Face 60: A:30 B:36 C:31 AB:0 BC:1 CA:1 +Smoothing: 31 +Face 61: A:30 B:35 C:36 AB:1 BC:1 CA:0 +Smoothing: 31 +Face 62: A:31 B:37 C:32 AB:0 BC:1 CA:1 +Smoothing: 32 +Face 63: A:31 B:36 C:37 AB:1 BC:1 CA:0 +Smoothing: 32 +Face 64: A:32 B:38 C:33 AB:0 BC:1 CA:1 +Smoothing: 1 +Face 65: A:32 B:37 C:38 AB:1 BC:1 CA:0 +Smoothing: 1 +Face 66: A:33 B:39 C:34 AB:0 BC:1 CA:1 +Smoothing: 2 +Face 67: A:33 B:38 C:39 AB:1 BC:1 CA:0 +Smoothing: 2 +Face 68: A:34 B:35 C:30 AB:0 BC:1 CA:1 + + Page 3 + + + +Smoothing: 3 +Face 69: A:34 B:39 C:35 AB:1 BC:1 CA:0 +Smoothing: 3 +Face 70: A:35 B:1 C:36 AB:0 BC:1 CA:1 +Smoothing: 4 +Face 71: A:35 B:0 C:1 AB:1 BC:1 CA:0 +Smoothing: 4 +Face 72: A:36 B:2 C:37 AB:0 BC:1 CA:1 +Smoothing: 5 +Face 73: A:36 B:1 C:2 AB:1 BC:1 CA:0 +Smoothing: 5 +Face 74: A:37 B:3 C:38 AB:0 BC:1 CA:1 +Smoothing: 6 +Face 75: A:37 B:2 C:3 AB:1 BC:1 CA:0 +Smoothing: 6 +Face 76: A:38 B:4 C:39 AB:0 BC:1 CA:1 +Smoothing: 7 +Face 77: A:38 B:3 C:4 AB:1 BC:1 CA:0 +Smoothing: 7 +Face 78: A:39 B:0 C:35 AB:0 BC:1 CA:1 +Smoothing: 8 +Face 79: A:39 B:4 C:0 AB:1 BC:1 CA:0 +Smoothing: 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Page 4 + + + diff --git a/progs/samples/Makefile.DJ b/progs/samples/Makefile.DJ deleted file mode 100644 index cda4e05941..0000000000 --- a/progs/samples/Makefile.DJ +++ /dev/null @@ -1,85 +0,0 @@ -# Mesa 3-D graphics library -# Version: 4.0 -# -# Copyright (C) 1999 Brian Paul All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# DOS/DJGPP samples makefile v1.6 for Mesa -# -# Copyright (C) 2002 - Daniel Borca -# Email : dborca@users.sourceforge.net -# Web : http://www.geocities.com/dborca - - -# -# Available options: -# -# Environment variables: -# GLIDE path to Glide3 SDK; used with FX. -# default = $(TOP)/glide3 -# FX=1 build for 3dfx Glide3. Note that this disables -# compilation of most DMesa code and requires fxMesa. -# As a consequence, you'll need the DJGPP Glide3 -# library to build any application. -# default = no -# DXE=1 use DXE modules (see README.DJ for details). -# default = no -# -# Targets: -# <file.exe> build a specific file -# - - - -.PHONY: all -.SUFFIXES: .c .o .exe -.SECONDARY: ../util/readtex.o ../util/showbuffer.o - -TOP = ../.. -GLIDE ?= $(TOP)/glide3 - -CC = gcc -CFLAGS = -Wall -W -pedantic -CFLAGS += -O2 -ffast-math -CFLAGS += -I$(TOP)/include -I../util -CFLAGS += -DGLUT_IMPORT_LIB -ifeq ($(FX),1) -CFLAGS += -DFX -endif - -LD = gxx -LDFLAGS = -s -L$(TOP)/lib - -ifeq ($(DXE),1) -LDLIBS += -liglut -liglu -ligl -else -LDLIBS = -lglut -lglu -lgl -ifeq ($(FX),1) -LDFLAGS += -L$(GLIDE)/lib -LDLIBS += -lgld3x -endif -endif - -.c.o: - $(CC) -o $@ $(CFLAGS) -c $< -%.exe: ../util/readtex.o ../util/showbuffer.o %.o - $(LD) -o $@ $(LDFLAGS) $^ $(LDLIBS) - -all: - $(error Must specify <filename.exe> to build) diff --git a/progs/samples/Makefile.mgw b/progs/samples/Makefile.mgw deleted file mode 100644 index 3b2fd785de..0000000000 --- a/progs/samples/Makefile.mgw +++ /dev/null @@ -1,93 +0,0 @@ -# Mesa 3-D graphics library -# Version: 4.0 -# -# Copyright (C) 1999 Brian Paul All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# MinGW samples makefile v1.2 for Mesa -# -# Copyright (C) 2002 - Daniel Borca -# Email : dborca@users.sourceforge.net -# Web : http://www.geocities.com/dborca - -# MinGW samples makefile updated for Mesa 7.0 -# -# Updated : by Heromyth, on 2007-7-21 -# Email : zxpmyth@yahoo.com.cn -# Bugs : 1) All the default settings work fine. But the setting X86=1 can't work. -# The others havn't been tested yet. -# 2) The generated DLLs are *not* compatible with the ones built -# with the other compilers like VC8, especially for GLUT. -# 3) Although more tests are needed, it can be used individually! - -# -# Available options: -# -# Environment variables: -# -# Targets: -# <file.exe> build a specific file -# - - - -.PHONY: all -.SUFFIXES: .c .o .exe -.SECONDARY: ../util/readtex.o ../util/showbuffer.o - -TOP = ../.. - -include $(TOP)/configs/config.mgw -ALL_USING_STDCALL ?= 1 -GL_USING_STDCALL ?= 1 -GLUT_USING_STDCALL ?= 1 - -CC = mingw32-gcc -CFLAGS = -Wall -pedantic -CFLAGS += -O2 -ffast-math -CFLAGS += -I$(TOP)/include -I../util -ifeq ($(FX),1) - CFLAGS += -DFX -endif - -CFLAGS += -DGLUT_DISABLE_ATEXIT_HACK - -ifeq ($(GL_USING_STDCALL),0) - CFLAGS += -DGL_NO_STDCALL -endif - -ifeq ($(GLUT_USING_STDCALL),1) - CFLAGS += -D_STDCALL_SUPPORTED -else - CFLAGS += -DGLUT_NO_STDCALL -endif - - -LD = mingw32-g++ -LDFLAGS = -s -L$(TOP)/lib - -LDLIBS = -lglut32 -lglu32 -lopengl32 - -.c.o: - $(CC) -o $@ $(CFLAGS) -c $< -%.exe: ../util/readtex.o ../util/showbuffer.o %.o - $(LD) -o $@ $(LDFLAGS) $^ $(LDLIBS) - -all: - $(error Must specify <filename.exe> to build) diff --git a/progs/tests/Makefile b/progs/tests/Makefile index 9016efe9e7..7053ebc86a 100644 --- a/progs/tests/Makefile +++ b/progs/tests/Makefile @@ -30,6 +30,7 @@ SOURCES = \ bug_3050.c \ bug_3101.c \ bug_3195.c \ + calibrate_rast.c \ copypixrate.c \ crossbar.c \ cva.c \ @@ -48,6 +49,7 @@ SOURCES = \ invert.c \ jkrahntest.c \ manytex.c \ + minmag.c \ mipmap_limits.c \ multipal.c \ no_s3tc.c \ @@ -61,6 +63,7 @@ SOURCES = \ sharedtex.c \ stencilwrap.c \ stencil_wrap.c \ + subtex \ subtexrate.c \ tex1d.c \ texcompress2.c \ diff --git a/progs/tests/calibrate_rast.c b/progs/tests/calibrate_rast.c new file mode 100644 index 0000000000..37d8ac85e5 --- /dev/null +++ b/progs/tests/calibrate_rast.c @@ -0,0 +1,395 @@ +/* + * Automatic primitive rasterization precision test. + * + * Draw prims at various sub-pixel offsets and examine where the quad is + * actually drawn. + * Check if the range of offsets which paint the right pixels falls within + * OpenGL's specification. + * In case of failures, report the coordinate bias needed to fix the problem. + * + * Note that even Mesa/swrast fails some line tests. This is because some + * window coordinates wind up as 53.9999 instead of 54, for example. Enabling + * the small translation factor below fixes that. Revisit someday... + * + * Brian Paul + * 28 Feb 2008 + */ + + +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> +#include <GL/glut.h> + + +static int Width = 100, Height = 100; +static int Win; +static float Step = 0.125; +#if 0 +/* This tiny offset fixes errors in Mesa/Xlib */ +static float Xtrans = 0.5 * 0.125; +static float Ytrans = 0.5 * 0.125; +#else +static float Xtrans = 0.0; +static float Ytrans = 0.0; +#endif + + +static void +PointCalibrate(int xpos, int ypos) +{ + GLfloat rgba[4]; + float x, y; + float xmin, ymin, xmax, ymax; + + xmin = ymin = 1000.0; + xmax = ymax = -1000.0; + + for (y = -1.0; y <= 1.0; y += Step) { + for (x = -1.0; x <= 1.0; x += Step) { + glClear(GL_COLOR_BUFFER_BIT); + glBegin(GL_POINTS); + glVertex2f(xpos + x, ypos + y); + glEnd(); + glReadPixels(xpos, ypos, 1, 1, GL_RGBA, GL_FLOAT, rgba); + if (rgba[0] == 1.0 && rgba[1] == 1.0 && rgba[2] == 1.0) { + /* hit */ + if (x < xmin) + xmin = x; + if (y < ymin) + ymin = y; + if (x > xmax) + xmax = x; + if (y > ymax) + ymax = y; + } + } + } + + printf("Point at (%2d, %2d) drawn for x in [%6.3f, %6.3f] and y in [%6.3f, %6.3f]\n", + xpos, ypos, + xpos + xmin, xpos + xmax, + ypos + ymin, ypos + ymax); + + if (xmax - xmin != 1.0 - Step) { + printf(" => Inconsistant X-axis rasterization!\n"); + } + if (ymax - ymin != 1.0 - Step) { + printf(" => Inconsistant Y-axis rasterization!\n"); + } + if (xmin < 0.0) { + printf(" => Points should be X biased by about %f\n", xmin); + } + if (ymin < 0.0) { + printf(" => Points should be Y biased by about %f\n", ymin); + } + if (xmax > 1.0) { + printf(" => Points should be X biased by about %f\n", 1.0 - xmax); + } + if (ymax > 1.0) { + printf(" => Points should be Y biased by about %f\n", 1.0 - ymax); + } + +} + + +/** + * XXX Implement VLineCalibrate() someday + */ +static void +HLineCalibrate(int xpos, int ypos, int len) +{ + GLfloat rgba[2][4]; + float x, y; + float ymin, ymax; + float xmin_left, xmax_left, xmin_right, xmax_right; + + xmin_left = xmin_right = 1000.0; + xmax_left = xmax_right = -1000.0; + ymin = 1000; + ymax = -1000.0; + + /* + * First, check vertical positioning of the horizontal line + */ + for (y = -1.0; y <= 1.0; y += Step) { + glClear(GL_COLOR_BUFFER_BIT); + glBegin(GL_LINES); + glVertex2f(xpos, ypos + y); + glVertex2f(xpos + len, ypos + y); + glEnd(); + + glReadPixels(xpos + len / 2, ypos, 1, 1, GL_RGBA, GL_FLOAT, rgba); + if (rgba[0][0] == 1.0) { + /* hit */ + if (y < ymin) + ymin = y; + if (y > ymax) + ymax = y; + } + } + + printf("H-line at Y=%2d drawn for y in [%6.3f, %6.3f]\n", + ypos, + ypos + ymin, ypos + ymax); + + if (ymax - ymin != 1.0 - Step) { + printf(" => Inconsistant Y-axis rasterization!\n"); + } + + if (ymin > 0.5 ) { + printf(" => Lines should be Y biased by about %f\n", ymin - 0.5); + } + + if (ymax < 0.5 ) { + printf(" => Lines should be Y biased by about %f\n", 0.5 - ymax); + } + + /* + * Second, check endpoints (for Y at 1/2 pixel) + */ + for (x = -1.0; x <= 1.0; x += Step) { + glClear(GL_COLOR_BUFFER_BIT); + glBegin(GL_LINES); + glVertex2f(xpos + x, ypos + 0.5f); + glVertex2f(xpos + x + len, ypos + 0.5f); + glEnd(); + + /* left end */ + glReadPixels(xpos - 1, ypos, 2, 1, GL_RGBA, GL_FLOAT, rgba); + if (rgba[0][0] == 0.0 && rgba[1][0] == 1.0) { + /* hit */ + if (x < xmin_left) + xmin_left = x; + if (x > xmax_left) + xmax_left = x; + } + + /* right end */ + glReadPixels(xpos + len - 1, ypos, 2, 1, GL_RGBA, GL_FLOAT, rgba); + if (rgba[0][0] == 1.0 && rgba[1][0] == 0.0) { + /* hit */ + if (x < xmin_right) + xmin_right = x; + if (x > xmax_right) + xmax_right = x; + } + } + + printf("H-line [%d..%d) hit left end for x in [%6.3f, %6.3f] " + "hit right end for x in [%6.3f, %6.3f]\n", + xpos, xpos + len, + xpos + xmin_left, xpos + xmax_left, + xpos + len + xmin_right, xpos + len + xmax_right); + + if (xmax_left - xmin_left > 1.0 - Step) { + printf(" => Inconsistant left-end rasterization!\n"); + } + if (xmax_right - xmin_right > 1.0 - Step) { + printf(" => Inconsistant right-end rasterization!\n"); + } + + if (xmin_left != xmin_right || + xmax_left != xmax_right) { + printf(" => Inconsistant length!\n"); + } + + if (xmin_left < 0.0) { + printf(" => Coords should be X biased by about %f\n", xmin_left ); + } + if (xmin_right < 0.0) { + printf(" => Coords should be X biased by about %f\n", xmin_right ); + } + if (xmax_left >= 1.0) { + printf(" => Coords should be X biased by about %f\n", -xmax_right + 1.0); + } + if (xmax_right >= 1.0) { + printf(" => Coords should be X biased by about %f\n", -xmax_right + 1.0); + } + +} + + +static void +QuadCalibrate(int xpos, int ypos, int width, int height) +{ + GLfloat rgba1[2][4]; + GLfloat rgba2[2][4]; + float x, y; + float xmin, ymin, xmax, ymax; + + xmin = ymin = 1000.0; + xmax = ymax = -1000.0; + + for (y = -1.0; y <= 1.0; y += Step) { + for (x = -1.0; x <= 1.0; x += Step) { + glClear(GL_COLOR_BUFFER_BIT); + glBegin(GL_QUADS); + glVertex2f(xpos + x, ypos + y); + glVertex2f(xpos + x + width, ypos + y); + glVertex2f(xpos + x + width, ypos + y + height); + glVertex2f(xpos + x, ypos + y + height); + glEnd(); + + /* horizontal measurement */ + glReadPixels(xpos - 1, ypos + 2, 2, 1, GL_RGBA, GL_FLOAT, rgba1); + glReadPixels(xpos + width - 1, ypos + 2, 2, 1, GL_RGBA, GL_FLOAT, rgba2); + if (rgba1[0][0] == 0.0 && rgba1[1][0] == 1.0 && + rgba2[0][0] == 1.0 && rgba2[1][0] == 0.0) { + if (x < xmin) + xmin = x; + if (x > xmax) + xmax = x; + } + + /* vertical measurement */ + glReadPixels(xpos + 2, ypos - 1, 1, 2, GL_RGBA, GL_FLOAT, rgba1); + glReadPixels(xpos + 2, ypos + height - 1, 1, 2, GL_RGBA, GL_FLOAT, rgba2); + if (rgba1[0][0] == 0.0 && rgba1[1][0] == 1.0 && + rgba2[0][0] == 1.0 && rgba2[1][0] == 0.0) { + if (y < ymin) + ymin = y; + if (y > ymax) + ymax = y; + } + } + } + + printf("Quad at (%2d, %2d)..(%2d, %2d) drawn" + " for x in [%6.3f, %6.3f] and y in [%6.3f, %6.3f]\n", + xpos, ypos, + xpos + width, ypos + height, + xpos + xmin, xpos + xmax, + ypos + ymin, ypos + ymax); + + if (xmax - xmin != 1.0 - Step) { + printf(" => Inconsistant X-axis rasterization/size!\n"); + } + if (ymax - ymin != 1.0 - Step) { + printf(" => Inconsistant Y-axis rasterization/size!\n"); + } + + if (xmin < -0.5) { + printf(" => Coords should be X biased by about %f\n", 0.5 + xmin ); + } + if (ymin < -0.5) { + printf(" => Coords should be Y biased by about %f\n", 0.5 + ymin); + } + if (xmax > 0.5) { + printf(" => Coords should be X biased by about %f\n", -xmax + 0.5); + } + if (ymax > 0.5) { + printf(" => Coords should be Y biased by about %f\n", -ymax + 0.5); + } +} + + +/** + * Misc/disabled code for debugging. + */ +static void +DebugTest(void) +{ + glClear(GL_COLOR_BUFFER_BIT); + glEnable(GL_BLEND); + glBlendFunc(GL_ONE, GL_ONE); + + glColor3f(.5, .5, .5); + + glBegin(GL_LINES); + glVertex2f(30, 35.5); + glVertex2f(54, 35.5); + glVertex2f(54, 35.5); + glVertex2f(66, 35.5); + glEnd(); + + glDisable(GL_BLEND); + glColor3f(1,1,1); +} + + +static void +Draw(void) +{ + glClear(GL_COLOR_BUFFER_BIT); + + glPushMatrix(); + glTranslatef(Xtrans, Ytrans, 0); + + PointCalibrate(1, 1); + PointCalibrate(50, 50); + PointCalibrate(28, 17); + PointCalibrate(17, 18); + printf("\n"); + + HLineCalibrate(5, 10, 10); + HLineCalibrate(25, 22, 12); + HLineCalibrate(54, 33, 12); + HLineCalibrate(54+12, 33, 12); + printf("\n"); + + QuadCalibrate(2, 2, 10, 10); + QuadCalibrate(50, 50, 10, 10); + QuadCalibrate(28, 17, 12, 12); + QuadCalibrate(17, 28, 12, 12); + + (void) DebugTest; + + glPopMatrix(); + + glutSwapBuffers(); +} + + +static void +Reshape(int width, int height) +{ + Width = width; + Height = height; + glViewport(0, 0, width, height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(0, width, 0, height, -1, 1); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); +} + + +static void +Key(unsigned char key, int x, int y) +{ + (void) x; + (void) y; + switch (key) { + case 27: + glutDestroyWindow(Win); + exit(0); + break; + } + glutPostRedisplay(); +} + + +static void +Init(void) +{ + printf("Measurement/callibration for basic prim rasterization...\n"); + printf("GL_RENDERER: %s\n", (char*) glGetString(GL_RENDERER)); +} + + +int +main(int argc, char *argv[]) +{ + glutInit(&argc, argv); + glutInitWindowPosition(0, 0); + glutInitWindowSize(Width, Height); + glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); + Win = glutCreateWindow(argv[0]); + glutReshapeFunc(Reshape); + glutKeyboardFunc(Key); + glutDisplayFunc(Draw); + Init(); + glutMainLoop(); + return 0; +} diff --git a/progs/tests/descrip.mms b/progs/tests/descrip.mms deleted file mode 100644 index 567b76bc4b..0000000000 --- a/progs/tests/descrip.mms +++ /dev/null @@ -1,84 +0,0 @@ -# Makefile for GLUT-based demo programs for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl - - -.first - define gl [--.include.gl] - -.include [--]mms.config - -##### MACROS ##### - -INCDIR = ([--.include],[-.util]) -CFLAGS = /include=$(INCDIR)/prefix=all/name=(as_is,short)/float=ieee/ieee=denorm - -.ifdef SHARE -GL_LIBS = $(XLIBS) -.else -GL_LIBS = [--.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS) -.endif - -LIB_DEP = [--.lib]$(GL_LIB) [--.lib]$(GLU_LIB) [--.lib]$(GLUT_LIB) - -PROGS = cva.exe,\ - dinoshade.exe,\ - fogcoord.exe,\ - manytex.exe,\ - multipal.exe,\ - projtex.exe,\ - seccolor.exe,\ - sharedtex.exe,\ - texline.exe,\ - texwrap.exe,\ - vptest1.exe,\ - vptest2.exe,\ - vptest3.exe,\ - vptorus.exe,\ - vpwarpmesh.exe - -##### RULES ##### -.obj.exe : - cxxlink $(MMS$TARGET_NAME),$(GL_LIBS) - -##### TARGETS ##### -default : - $(MMS)$(MMSQUALIFIERS) $(PROGS) - -clean : - delete *.obj;* - -realclean : - delete $(PROGS) - delete *.obj;* - -cva.exe : cva.obj $(LIB_DEP) -dinoshade.exe : dinoshade.obj $(LIB_DEP) -fogcoord.exe : fogcoord.obj $(LIB_DEP) -manytex.exe : manytex.obj $(LIB_DEP) -multipal.exe : multipal.obj $(LIB_DEP) -projtex.exe : projtex.obj $(LIB_DEP) -seccolor.exe : seccolor.obj $(LIB_DEP) -sharedtex.exe : sharedtex.obj $(LIB_DEP) -texline.exe : texline.obj $(LIB_DEP) -texwrap.exe : texwrap.obj $(LIB_DEP) -vptest1.exe : vptest1.obj $(LIB_DEP) -vptest2.exe : vptest2.obj $(LIB_DEP) -vptest3.exe : vptest3.obj $(LIB_DEP) -vptorus.exe : vptorus.obj $(LIB_DEP) -vpwarpmesh.exe : vpwarpmesh.obj $(LIB_DEP) - -cva.obj : cva.c -dinoshade.obj : dinoshade.c -fogcoord.obj : fogcoord.c -manytex.obj : manytex.c -multipal.obj : multipal.c -projtex.obj : projtex.c -seccolor.obj : seccolor.c -sharedtex.obj : sharedtex.c -texline.obj : texline.c -texwrap.obj : texwrap.c -vptest1.obj : vptest1.c -vptest2.obj : vptest2.c -vptest3.obj : vptest3.c -vptorus.obj : vptorus.c -vpwarpmesh.obj : vpwarpmesh.c diff --git a/progs/tests/minmag.c b/progs/tests/minmag.c new file mode 100644 index 0000000000..78ef9db03a --- /dev/null +++ b/progs/tests/minmag.c @@ -0,0 +1,198 @@ +/* + * Test minification vs. magnification filtering. + * Draw two quads with different filtering modes: + * + * +--------------------------+ +--------------------------+ + * | MagFilter = GL_LINEAR | | MagFilter = GL_LINEAR | + * | MinFilter = GL_LINEAR | | MinFilter = GL_NEAREST | + * +--------------------------+ +--------------------------+ + * + * They should look different when the quad is smaller than the level 0 + * texture size (when minifying). + */ + +#include <assert.h> +#include <math.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <GL/glut.h> + + +static GLint Width = 1000, Height = 500; + + +static GLint TexWidth = 256, TexHeight = 256; +static GLfloat Zpos = 5; +static GLboolean MipMap = 0*GL_TRUE; +static GLboolean LinearFilter = GL_TRUE; + + +static void +redraw(void) +{ + GLfloat w = 1.0; + GLfloat h = 1.0; + + glClear( GL_COLOR_BUFFER_BIT ); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + + glPushMatrix(); + glTranslatef(-1.5, 0, -Zpos); + glBegin(GL_POLYGON); + glTexCoord2f(0, 0); glVertex2f(-w, -h); + glTexCoord2f(1, 0); glVertex2f( w, -h); + glTexCoord2f(1, 1); glVertex2f( w, h); + glTexCoord2f(0, 1); glVertex2f(-w, h); + glEnd(); + glPopMatrix(); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + + glPushMatrix(); + glTranslatef(1.5, 0, -Zpos); + glBegin(GL_POLYGON); + glTexCoord2f(0, 0); glVertex2f(-w, -h); + glTexCoord2f(1, 0); glVertex2f( w, -h); + glTexCoord2f(1, 1); glVertex2f( w, h); + glTexCoord2f(0, 1); glVertex2f(-w, h); + glEnd(); + glPopMatrix(); + + glutSwapBuffers(); +} + + +static void +init(void) +{ + GLubyte color[10][4] = { + { 0, 0, 0, 0 }, + { 1, 0, 0, 0 }, + { 0, 1, 0, 0 }, + { 0, 0, 1, 0 }, + { 0, 1, 1, 0 }, + { 1, 0, 1, 0 }, + { 1, 1, 0, 0 }, + { 1, 0, 0, 0 }, + { 0, 1, 0, 0 }, + { 0, 0, 1, 0 } + }; + GLubyte *texImage; + + printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + printf("Left quad should be linear filtered and right should be nearest filtered.\n"); + printf("Press z/Z to change quad distance.\n"); + + texImage = (GLubyte*) malloc(4 * TexWidth * TexHeight * sizeof(GLubyte)); + assert(texImage); + + { + GLint level = 0; + GLint w = TexWidth, h = TexHeight; + while (1) { + int i, j; + + for (i = 0; i < h; i++) { + for (j = 0;j < w; j++) { + if (w==1 || h==1 || (((i / 2) ^ (j / 2)) & 1)) { + /*if (j < i) {*/ + texImage[(i*w+j) * 4 + 0] = 255; + texImage[(i*w+j) * 4 + 1] = 255; + texImage[(i*w+j) * 4 + 2] = 255; + texImage[(i*w+j) * 4 + 3] = 255; + } + else { + texImage[(i*w+j) * 4 + 0] = color[level][0] * 255; + texImage[(i*w+j) * 4 + 1] = color[level][1] * 255; + texImage[(i*w+j) * 4 + 2] = color[level][2] * 255; + texImage[(i*w+j) * 4 + 3] = color[level][3] * 255; + } + } + } + + glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA8, w, h, 0, + GL_RGBA, GL_UNSIGNED_BYTE, texImage); + + printf("Texture level %d: %d x %d\n", level, w, h); + if (!MipMap) + break; + + if (w == 1 && h == 1) + break; + if (w > 1) + w /= 2; + if (h > 1) + h /= 2; + level++; + } + } + + free(texImage); + + glClearColor(0.25, 0.25, 0.25, 1.0); + glEnable(GL_TEXTURE_2D); + + glViewport(0, 0, Width, Height); +} + + + +static void +Reshape(int width, int height) +{ + float ar = (float) width /height; + Width = width; + Height = height; + glViewport(0, 0, width, height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glFrustum(-ar, ar, -1.0, 1.0, 5.0, 2500.0); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0.0, 0.0, -15.0); +} + + +static void +Key(unsigned char key, int x, int y) +{ + (void) x; + (void) y; + switch (key) { + case 'z': + Zpos--; + break; + case 'Z': + Zpos++; + break; + case 'f': + LinearFilter = !LinearFilter; + break; + case 27: + exit(0); + break; + } + glutPostRedisplay(); +} + + +int +main(int argc, char *argv[]) +{ + glutInit(&argc, argv); + glutInitWindowPosition(0, 0); + glutInitWindowSize(Width, Height); + glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); + glutCreateWindow(argv[0]); + glutReshapeFunc(Reshape); + glutKeyboardFunc(Key); + glutDisplayFunc(redraw); + init(); + glutMainLoop(); + return 0; +} diff --git a/progs/tests/subtex.c b/progs/tests/subtex.c new file mode 100644 index 0000000000..81ceb085aa --- /dev/null +++ b/progs/tests/subtex.c @@ -0,0 +1,223 @@ +/* + * Test glTexSubImage mid-way through a frame. + * + * The same texture is used for both quads but it gets redefined + * with glTexSubImage (or glTexImage) after the first quad. + */ + + +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> +#include "GL/glut.h" + +static GLuint Window = 0; +static GLboolean Anim = GL_FALSE; +static GLfloat Angle = 0.0f; + + + +static void +first_texture(void) +{ + static int width=8, height=8; + static GLubyte tex1[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 }; + + GLubyte tex[64][3]; + GLint i, j; + + /* red on white */ + for (i=0;i<height;i++) { + for (j=0;j<width;j++) { + int p = i*width+j; + if (tex1[(height-i-1)*width+j]) { + tex[p][0] = 255; tex[p][1] = 0; tex[p][2] = 0; + } + else { + tex[p][0] = 255; tex[p][1] = 255; tex[p][2] = 255; + } + } + } + + glTexImage2D( GL_TEXTURE_2D, 0, 3, width, height, 0, + GL_RGB, GL_UNSIGNED_BYTE, tex ); +} + + +static void +second_texture(void) +{ + static int width=8, height=8; + + static GLubyte tex2[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 2, 0, 0, 0, + 0, 0, 2, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 2, 2, 2, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 }; + + GLubyte tex[64][3]; + GLint i, j; + + /* green on blue */ + for (i=0;i<height;i++) { + for (j=0;j<width;j++) { + int p = i*width+j; + if (tex2[(height-i-1)*width+j]) { + tex[p][0] = 0; tex[p][1] = 255; tex[p][2] = 0; + } + else { + tex[p][0] = 0; tex[p][1] = 0; tex[p][2] = 255; + } + } + } +#if 0 + glTexImage2D( GL_TEXTURE_2D, 0, 3, width, height, 0, + GL_RGB, GL_UNSIGNED_BYTE, tex ); +#else + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, + GL_RGB, GL_UNSIGNED_BYTE, tex ); +#endif +} + + + +static void draw( void ) +{ + glClear( GL_COLOR_BUFFER_BIT ); + + glColor3f( 1.0, 1.0, 1.0 ); + + /* draw first polygon */ + glPushMatrix(); + glTranslatef( -1.0, 0.0, 0.0 ); + glRotatef( Angle, 0.0, 0.0, 1.0 ); + + first_texture(); + + glBegin( GL_POLYGON ); + glTexCoord2f( 0.0, 0.0 ); glVertex2f( -1.0, -1.0 ); + glTexCoord2f( 1.0, 0.0 ); glVertex2f( 1.0, -1.0 ); + glTexCoord2f( 1.0, 1.0 ); glVertex2f( 1.0, 1.0 ); + glTexCoord2f( 0.0, 1.0 ); glVertex2f( -1.0, 1.0 ); + glEnd(); + glPopMatrix(); + + /* draw second polygon */ + glPushMatrix(); + glTranslatef( 1.0, 0.0, 0.0 ); + glRotatef( Angle-90.0, 0.0, 1.0, 0.0 ); + + second_texture(); + + glBegin( GL_POLYGON ); + glTexCoord2f( 0.0, 0.0 ); glVertex2f( -1.0, -1.0 ); + glTexCoord2f( 1.0, 0.0 ); glVertex2f( 1.0, -1.0 ); + glTexCoord2f( 1.0, 1.0 ); glVertex2f( 1.0, 1.0 ); + glTexCoord2f( 0.0, 1.0 ); glVertex2f( -1.0, 1.0 ); + glEnd(); + glPopMatrix(); + + glutSwapBuffers(); +} + + + +static void idle( void ) +{ + static double t0 = -1.; + double dt, t = glutGet(GLUT_ELAPSED_TIME) / 1000.0; + if (t0 < 0.0) + t0 = t; + dt = t - t0; + t0 = t; + Angle += 120.0*dt; + glutPostRedisplay(); +} + + + +/* change view Angle, exit upon ESC */ +static void key(unsigned char k, int x, int y) +{ + (void) x; + (void) y; + switch (k) { + case 'a': + Anim = !Anim; + if (Anim) + glutIdleFunc( idle ); + else + glutIdleFunc( NULL ); + break; + case 27: + glutDestroyWindow(Window); + exit(0); + } +} + + + +/* new window size or exposure */ +static void reshape( int width, int height ) +{ + glViewport(0, 0, (GLint)width, (GLint)height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + /* glOrtho( -3.0, 3.0, -3.0, 3.0, -10.0, 10.0 );*/ + glFrustum( -2.0, 2.0, -2.0, 2.0, 6.0, 20.0 ); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef( 0.0, 0.0, -8.0 ); +} + + +static void init( void ) +{ + /* Setup texturing */ + glEnable( GL_TEXTURE_2D ); + glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL ); + + + glBindTexture( GL_TEXTURE_2D, 0 ); + glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST ); + glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST ); + glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); + glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); +} + + + +int main( int argc, char *argv[] ) +{ + glutInit(&argc, argv); + glutInitWindowPosition(0, 0); + glutInitWindowSize(300, 300); + glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE ); + + Window = glutCreateWindow("Texture Objects"); + if (!Window) { + exit(1); + } + + init(); + + glutReshapeFunc( reshape ); + glutKeyboardFunc( key ); + if (Anim) + glutIdleFunc( idle ); + glutDisplayFunc( draw ); + glutMainLoop(); + return 0; +} diff --git a/progs/trivial/.gitignore b/progs/trivial/.gitignore index cdd04092bd..aafc4a7291 100644 --- a/progs/trivial/.gitignore +++ b/progs/trivial/.gitignore @@ -27,6 +27,7 @@ linestrip linestrip-flat-stipple linestrip-stipple linestrip-stipple-wide +pgon-mode point point-clip point-param diff --git a/progs/trivial/Makefile b/progs/trivial/Makefile index d19abe7e86..8bc6ad4e38 100644 --- a/progs/trivial/Makefile +++ b/progs/trivial/Makefile @@ -25,6 +25,7 @@ SOURCES = \ fs-tri.c \ line-clip.c \ line-cull.c \ + line-smooth.c \ line-stipple-wide.c \ line-userclip-clip.c \ line-userclip-nop-clip.c \ diff --git a/progs/trivial/line-smooth.c b/progs/trivial/line-smooth.c new file mode 100644 index 0000000000..f030de9b9f --- /dev/null +++ b/progs/trivial/line-smooth.c @@ -0,0 +1,172 @@ +/* + * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the name of + * Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF + * ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include <math.h> +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <GL/glut.h> + + +#define CI_OFFSET_1 16 +#define CI_OFFSET_2 32 + + +GLenum doubleBuffer; +GLboolean smooth = GL_TRUE; +GLfloat width = 1.0; + + +static void Init(void) +{ + float range[2], aarange[2]; + fprintf(stderr, "GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER)); + fprintf(stderr, "GL_VERSION = %s\n", (char *) glGetString(GL_VERSION)); + fprintf(stderr, "GL_VENDOR = %s\n", (char *) glGetString(GL_VENDOR)); + glGetFloatv(GL_LINE_WIDTH_RANGE, aarange); + glGetFloatv(GL_ALIASED_LINE_WIDTH_RANGE, range); + printf("Non-AA line width range: %f .. %f\n", range[0], range[1]); + printf("AA line width range: %f .. %f\n", aarange[0], aarange[1]); +} + + +static void Reshape(int width, int height) +{ + glViewport(0, 0, (GLint)width, (GLint)height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glTranslatef(0, 0, -30); +} + +static void Key(unsigned char key, int x, int y) +{ + switch (key) { + case 'w': + width -= 0.5; + if (width < 0.5) + width = 0.5; + break; + case 'W': + width += 0.5; + break; + case 's': + smooth = !smooth; + break; + case 27: + exit(1); + default: + return; + } + printf("LineWidth: %g\n", width); + glutPostRedisplay(); +} + + +static void Draw(void) +{ + float a; + + glClear(GL_COLOR_BUFFER_BIT); + + glLineWidth(width); + + if (smooth) { + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glEnable(GL_LINE_SMOOTH); + } + + glColor3f(1, 1, 1); + + glBegin(GL_LINES); + for (a = 0; a < 3.14159; a += 0.2) { + float x = .9 * cos(a); + float y = .9 * sin(a); + + glVertex2f(-x, -y); + glVertex2f( x, y); + } + glEnd(); + + glDisable(GL_LINE_SMOOTH); + glDisable(GL_BLEND); + + glFlush(); + + if (doubleBuffer) { + glutSwapBuffers(); + } +} + +static GLenum Args(int argc, char **argv) +{ + GLint i; + + doubleBuffer = GL_FALSE; + + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "-sb") == 0) { + doubleBuffer = GL_FALSE; + } else if (strcmp(argv[i], "-db") == 0) { + doubleBuffer = GL_TRUE; + } else { + fprintf(stderr, "%s (Bad option).\n", argv[i]); + return GL_FALSE; + } + } + return GL_TRUE; +} + + +int main(int argc, char **argv) +{ + GLenum type; + + glutInit(&argc, argv); + + if (Args(argc, argv) == GL_FALSE) { + exit(1); + } + + glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250); + + type = GLUT_RGB; + type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE; + glutInitDisplayMode(type); + + if (glutCreateWindow(argv[0]) == GL_FALSE) { + exit(1); + } + + Init(); + + glutReshapeFunc(Reshape); + glutKeyboardFunc(Key); + glutDisplayFunc(Draw); + glutMainLoop(); + return 0; +} diff --git a/progs/util/descrip.mms b/progs/util/descrip.mms deleted file mode 100644 index b2ee5ec971..0000000000 --- a/progs/util/descrip.mms +++ /dev/null @@ -1,42 +0,0 @@ -# Makefile for GLUT-based demo programs for VMS -# contributed by Jouk Jansen joukj@crys.chem.uva.nl - - -.first - define gl [--.include.gl] - -.include [--]mms.config - -##### MACROS ##### - -INCDIR = ([--.include],[-.util]) -CFLAGS = /include=$(INCDIR)/prefix=all/name=(as_is,short)/float=ieee/ieee=denorm - -.ifdef SHARE -GL_LIBS = $(XLIBS) -LIB_DEP = [--.lib]$(GL_SHAR) [--.lib]$(GLU_SHAR) [--.lib]$(GLUT_SHAR) -.else -GL_LIBS = [--.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS) -LIB_DEP = [--.lib]$(GL_LIB) [--.lib]$(GLU_LIB) [--.lib]$(GLUT_LIB) -.endif - - -OBJS =readtex.obj,showbuffer.obj - - -##### RULES ##### -.obj.exe : - cxxlink $(MMS$TARGET_NAME),$(GL_LIBS) - -##### TARGETS ##### -default : - $(MMS)$(MMSQUALIFIERS) $(OBJS) - -clean : - delete *.obj;* - -realclean : - delete *.obj;* - -readtex.obj : readtex.c -showbuffer.obj : showbuffer.c diff --git a/progs/xdemos/descrip.mms b/progs/xdemos/descrip.mms deleted file mode 100644 index fe6a3c44e6..0000000000 --- a/progs/xdemos/descrip.mms +++ /dev/null @@ -1,83 +0,0 @@ -# Makefile for GLUT-based demo programs for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl - - -.first - define gl [--.include.gl] - -.include [--]mms.config - -##### MACROS ##### - -INCDIR = ([--.include],[-.util]) -CFLAGS = /include=$(INCDIR)/prefix=all/name=(as_is,short)/nowarn/float=ieee/ieee=denorm - -.ifdef SHARE -GL_LIBS = $(XLIBS) -.else -GL_LIBS = [--.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS) -.endif - -LIB_DEP = [--.lib]$(GL_LIB) [--.lib]$(GLU_LIB) [--.lib]$(GLUT_LIB) - -PROGS =glthreads.exe,\ - glxdemo.exe,\ - glxgears.exe,\ - glxheads.exe,\ - glxinfo.exe,\ - glxpixmap.exe,\ - manywin.exe,\ - offset.exe,\ - pbinfo.exe,\ - pbdemo.exe,\ - wincopy.exe,\ - xdemo.exe,\ - xfont.exe - -##### RULES ##### -.obj.exe : - cxxlink $(MMS$TARGET_NAME),$(GL_LIBS) - -##### TARGETS ##### -default : - $(MMS)$(MMSQUALIFIERS) $(PROGS) - -clean : - delete *.obj;* - -realclean : - delete $(PROGS) - delete *.obj;* - - -glthreads.exe : glthreads.obj $(LIB_DEP) -glxdemo.exe : glxdemo.obj $(LIB_DEP) -glxgears.exe : glxgears.obj $(LIB_DEP) -glxheads.exe : glxheads.obj $(LIB_DEP) -glxinfo.exe : glxinfo.obj $(LIB_DEP) -glxpixmap.exe : glxpixmap.obj $(LIB_DEP) -manywin.exe : manywin.obj $(LIB_DEP) -offset.exe : offset.obj $(LIB_DEP) -pbinfo.exe : pbinfo.obj pbutil.obj $(LIB_DEP) - cxxlink pbinfo.obj,pbutil.obj,$(GL_LIBS) -pbdemo.exe : pbdemo.obj pbutil.obj $(LIB_DEP) - cxxlink pbdemo.obj,pbutil.obj,$(GL_LIBS) -wincopy.exe : wincopy.obj $(LIB_DEP) -xdemo.exe : xdemo.obj $(LIB_DEP) -xfont.exe :xfont.obj $(LIB_DEP) - - -glthreads.obj : glthreads.c -glxdemo.obj : glxdemo.c -glxgears.obj : glxgears.c -glxheads.obj : glxheads.c -glxinfo.obj : glxinfo.c -glxpixmap.obj : glxpixmap.c -manywin.obj : manywin.c -offset.obj : offset.c -pbinfo.obj : pbinfo.c -pbutil.obj : pbutil.c -pbdemo.obj : pbdemo.c -wincopy.obj : wincopy.c -xdemo.obj : xdemo.c -xfont.obj :xfont.c |