Compare commits
	
		
			334 Commits
		
	
	
		
			mesa-7.7.1
			...
			mesa_4_0_4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 61b226a4f4 | ||
|  | adc4d21dbb | ||
|  | efaa8be77f | ||
|  | ed7b3b61f5 | ||
|  | 17d73e49c8 | ||
|  | 032341cbea | ||
|  | 53170a3af0 | ||
|  | 57181b2c0a | ||
|  | 00a1ff66e2 | ||
|  | 635e8c3459 | ||
|  | 6d99cffed3 | ||
|  | 9c16911e06 | ||
|  | 0de37dcc2e | ||
|  | a53dccf9c5 | ||
|  | 3291a3c69c | ||
|  | d2fba8a633 | ||
|  | 8d7ed801a5 | ||
|  | 689a803c90 | ||
|  | 8365cbbc85 | ||
|  | baa9451a93 | ||
|  | 79c9cca366 | ||
|  | 14b30bace0 | ||
|  | 1c6b172c01 | ||
|  | da1a6739fe | ||
|  | 15b418be49 | ||
|  | 33629a0d70 | ||
|  | d8f5422a37 | ||
|  | b83df71385 | ||
|  | b7f6f84fc2 | ||
|  | 50cd089a7f | ||
|  | 7e22bad6da | ||
|  | 7d46390bd4 | ||
|  | 3580b7a3d3 | ||
|  | c383ce0e0f | ||
|  | a10727eedc | ||
|  | d4c7dd076c | ||
|  | 1e57a87e6a | ||
|  | 6080451f93 | ||
|  | 5419097b37 | ||
|  | 889b6c4e7a | ||
|  | 58be490b08 | ||
|  | d314643448 | ||
|  | a28d96bd0e | ||
|  | 6d3c1ec7cd | ||
|  | aa80a17ad0 | ||
|  | 1509a4399a | ||
|  | c2065e3ea5 | ||
|  | ba35bb6897 | ||
|  | eefdfddd3e | ||
|  | 00068e6686 | ||
|  | 1c1f60d437 | ||
|  | 476c1fdbc6 | ||
|  | 5613f469d7 | ||
|  | 6338c52cd4 | ||
|  | c4c5e26cc7 | ||
|  | b6454b19ae | ||
|  | 84c56fef84 | ||
|  | a2bb621983 | ||
|  | d057db7942 | ||
|  | 5c04890c5f | ||
|  | fb3475078d | ||
|  | ea214a755b | ||
|  | 8af93aa529 | ||
|  | ab81956422 | ||
|  | 38a30cfef0 | ||
|  | e95e02331e | ||
|  | 9636b9aa25 | ||
|  | f610b8f418 | ||
|  | 601fd74868 | ||
|  | 36ee4317c2 | ||
|  | 9d4181cd56 | ||
|  | cf1dc9faf9 | ||
|  | 6fa2c761a1 | ||
|  | d9c191f2ad | ||
|  | 36b477442f | ||
|  | 95358c87ef | ||
|  | 829ca52b1a | ||
|  | 767b8b6b81 | ||
|  | 634d720426 | ||
|  | 72dcd2b1b0 | ||
|  | b60335f125 | ||
|  | 3e78e05a4c | ||
|  | 1099dcdc09 | ||
|  | a73bc7e9ce | ||
|  | 19f17185bd | ||
|  | 22f431fc84 | ||
|  | 5538b98051 | ||
|  | f2acb26f16 | ||
|  | 6d0fd19a71 | ||
|  | 670ea9f590 | ||
|  | c3be87b84b | ||
|  | a4d34a5688 | ||
|  | e64e5f5529 | ||
|  | 4266ec91fe | ||
|  | 8a5bdd826a | ||
|  | 20cbbf8459 | ||
|  | 2847895a03 | ||
|  | 79d05b5649 | ||
|  | a0ad8d5a8a | ||
|  | 1a9198f118 | ||
|  | dd8fbed413 | ||
|  | 972cc7827f | ||
|  | 263d8ff8e3 | ||
|  | 363c8b9048 | ||
|  | eb7b122807 | ||
|  | 6306085c69 | ||
|  | 7e20f99f81 | ||
|  | a79f7f8838 | ||
|  | d1d4f6bd34 | ||
|  | 640f61ba13 | ||
|  | 07e3f72bf8 | ||
|  | d06d24f497 | ||
|  | 3fa786c175 | ||
|  | 984bb590df | ||
|  | 67c5effe5c | ||
|  | fbe488cb76 | ||
|  | dbd36a0ca0 | ||
|  | 076870f384 | ||
|  | c1fba8241b | ||
|  | 690798ae3b | ||
|  | 89e91fcc9a | ||
|  | d5a8eeaeeb | ||
|  | b118f433e1 | ||
|  | fbbb780e1f | ||
|  | 9429860763 | ||
|  | 531af3f17f | ||
|  | 054f415f45 | ||
|  | b1b4382283 | ||
|  | 3aef708b56 | ||
|  | d63730d087 | ||
|  | 2469fc9672 | ||
|  | 86ab257a46 | ||
|  | d7e7d8ec74 | ||
|  | fe4edce605 | ||
|  | b0f477e5dd | ||
|  | ce4c38fe2e | ||
|  | 09760a9563 | ||
|  | d7abab5c67 | ||
|  | e900da049b | ||
|  | 9def08ad3d | ||
|  | 978731595d | ||
|  | 00e5cb4120 | ||
|  | b338ee265a | ||
|  | 8d3f06a565 | ||
|  | 0d1785c6db | ||
|  | 79474dc528 | ||
|  | 43e90c0053 | ||
|  | c748b6c3d8 | ||
|  | 2c109c15e0 | ||
|  | 22fcb86432 | ||
|  | 70c5d68365 | ||
|  | 1b0fcb2124 | ||
|  | 6668d2fcb1 | ||
|  | e3c2d6bd0c | ||
|  | 655e0ad0c1 | ||
|  | d99fa29b94 | ||
|  | 7229861a46 | ||
|  | f5130e3473 | ||
|  | a5ed2460e9 | ||
|  | e2130abf8f | ||
|  | bf6a6f1d59 | ||
|  | abd10c99e5 | ||
|  | c3bc8a9c1e | ||
|  | aa5698e8ed | ||
|  | cf4c9ada0d | ||
|  | 13c751a1c2 | ||
|  | 2af71a9acf | ||
|  | 5e0316f1a8 | ||
|  | 2366fb3b89 | ||
|  | 4ad3511865 | ||
|  | 44f6191507 | ||
|  | aaf89c1cc7 | ||
|  | 7350dd7395 | ||
|  | 972815c414 | ||
|  | 0bb0b4df73 | ||
|  | e07b4252ad | ||
|  | b8855675ca | ||
|  | 6bf823ac2d | ||
|  | af3f3080f9 | ||
|  | bb47715320 | ||
|  | cef9cdf3bb | ||
|  | 4493f41577 | ||
|  | a4f3130a7f | ||
|  | b2c3daa875 | ||
|  | 3d6951c097 | ||
|  | db0ed6252b | ||
|  | e6c59e8d0c | ||
|  | 378fcdb818 | ||
|  | cd3f5d807a | ||
|  | c3e908891c | ||
|  | fdbaf407a7 | ||
|  | 5a86d3852c | ||
|  | 96d0be5cf2 | ||
|  | 0bd26c3c55 | ||
|  | 9f7053e913 | ||
|  | 9fa55ac457 | ||
|  | 101092ea11 | ||
|  | da648d9afd | ||
|  | 7a3b7c9687 | ||
|  | 55f8fcba10 | ||
|  | 7419597f2f | ||
|  | e784671997 | ||
|  | c2165e799c | ||
|  | 40519b3eb3 | ||
|  | dcda68de33 | ||
|  | 8308199e5d | ||
|  | 3b029b0c7d | ||
|  | bff7677bd9 | ||
|  | 41796ecc25 | ||
|  | 94865a95b1 | ||
|  | b8b23d4552 | ||
|  | 3245cfdf41 | ||
|  | 69e043158a | ||
|  | 3ce17ffb84 | ||
|  | 33b483f882 | ||
|  | 308a036114 | ||
|  | 4c97c84f7e | ||
|  | d7bde06097 | ||
|  | a00292bcfe | ||
|  | 7d729ffb58 | ||
|  | aeb6c0af5e | ||
|  | 41110917d7 | ||
|  | a58b1ed0a3 | ||
|  | 27b503cab8 | ||
|  | d38cdd33d0 | ||
|  | 851acc6ea7 | ||
|  | 6115d784a7 | ||
|  | fcca385bec | ||
|  | 06743cf365 | ||
|  | b372b40bd1 | ||
|  | 3e3bd40614 | ||
|  | 3fb6d0bfde | ||
|  | b36acc0423 | ||
|  | 287d6127d2 | ||
|  | a8290d3a95 | ||
|  | b26f972618 | ||
|  | 5bd6bad38d | ||
|  | 1ae3437156 | ||
|  | 93665403aa | ||
|  | 04613cb0bc | ||
|  | e0a30e9d2d | ||
|  | fd3da01ec3 | ||
|  | 40bbb8b7f3 | ||
|  | 00b7772bda | ||
|  | 0fc4d7e46d | ||
|  | 1261fed2c3 | ||
|  | 4f4f542bd7 | ||
|  | 550169ab62 | ||
|  | ad83c33a4d | ||
|  | a340c4f6ef | ||
|  | 781f27575c | ||
|  | 08e126fba6 | ||
|  | b03241a552 | ||
|  | e4efc983bd | ||
|  | 785bfd0c1e | ||
|  | a0e4612f49 | ||
|  | f6e1618f97 | ||
|  | 3a450fb4b0 | ||
|  | 43daa03ac1 | ||
|  | cb69912494 | ||
|  | b4518ee5d4 | ||
|  | 6ef05c2817 | ||
|  | 26d31abd87 | ||
|  | 7702362bda | ||
|  | 5141607357 | ||
|  | a9e14e7bb9 | ||
|  | 5196a16629 | ||
|  | 7f37280955 | ||
|  | 986b7ec195 | ||
|  | 9012185ae8 | ||
|  | 2edf851932 | ||
|  | 1703b67ee0 | ||
|  | 9342fbe46e | ||
|  | 2f88c5fbd4 | ||
|  | dc35f387ca | ||
|  | 597ec4040c | ||
|  | 51aa3d2f30 | ||
|  | 0c1f42ef29 | ||
|  | 06ae58eebb | ||
|  | d8deb468f7 | ||
|  | 4aac60f691 | ||
|  | e20d35d74a | ||
|  | ed26c2d950 | ||
|  | 95681b4a85 | ||
|  | 17a5135fee | ||
|  | 69b71bc1ab | ||
|  | 9f6957e702 | ||
|  | bf78731523 | ||
|  | c527df81df | ||
|  | ca2315d95b | ||
|  | c4dd9e2a03 | ||
|  | 34174976c4 | ||
|  | ff23c15bdc | ||
|  | eb0ce107c7 | ||
|  | bfe6c71b99 | ||
|  | 69f2ff5f38 | ||
|  | f28c19da41 | ||
|  | c132ca9774 | ||
|  | 8ca1772d4a | ||
|  | ff5fe4836a | ||
|  | f88e0898a1 | ||
|  | 3f2eedd634 | ||
|  | 158c7413fb | ||
|  | 0a96860e04 | ||
|  | 37b10249e5 | ||
|  | 589cee71b8 | ||
|  | c6dcd5c4cf | ||
|  | e1ec4771f1 | ||
|  | 917e942fe2 | ||
|  | f427427ca8 | ||
|  | 7ed97d4ef4 | ||
|  | 267b9cc082 | ||
|  | efb678da77 | ||
|  | 32aa05bfd6 | ||
|  | 299a71fe04 | ||
|  | 63da26bd62 | ||
|  | dfb7ebf8a0 | ||
|  | 64681c1f82 | ||
|  | 8c3149f250 | ||
|  | 53e284bda1 | ||
|  | f46ce82219 | ||
|  | 4256cf0175 | ||
|  | 986749a4ea | ||
|  | 07042d164b | ||
|  | 0739d6f158 | ||
|  | 2fd7a602a7 | ||
|  | f97edb4ca3 | ||
|  | 3b0571dd5c | ||
|  | c25f068355 | ||
|  | 3a05f42b28 | ||
|  | 2631c2a2de | ||
|  | b2728086ec | ||
|  | 2e7644f13d | ||
|  | 9c3e7d2294 | 
							
								
								
									
										147
									
								
								Make-config
									
									
									
									
									
								
							
							
						
						
									
										147
									
								
								Make-config
									
									
									
									
									
								
							| @@ -1,13 +1,13 @@ | |||||||
| # $Id: Make-config,v 1.51 2001/10/22 22:45:18 brianp Exp $ | # $Id: Make-config,v 1.50.2.11 2002/09/03 17:50:19 brianp Exp $ | ||||||
|  |  | ||||||
| MESA_MAJOR=4 | MESA_MAJOR=4 | ||||||
| MESA_MINOR=1 | MESA_MINOR=0 | ||||||
| MESA_TINY=0 | MESA_TINY=4 | ||||||
| VERSION=$(MESA_MAJOR).$(MESA_MINOR) | VERSION=$(MESA_MAJOR).$(MESA_MINOR) | ||||||
|  |  | ||||||
| # Mesa 3-D graphics library | # Mesa 3-D graphics library | ||||||
| #  | #  | ||||||
| # Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | # Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. | ||||||
| #  | #  | ||||||
| # Permission is hereby granted, free of charge, to any person obtaining a | # Permission is hereby granted, free of charge, to any person obtaining a | ||||||
| # copy of this software and associated documentation files (the "Software"), | # copy of this software and associated documentation files (the "Software"), | ||||||
| @@ -178,6 +178,25 @@ cygnus-linux: | |||||||
| 	"MAKELIB = ../bin/mklib.cygnus-linux" \ | 	"MAKELIB = ../bin/mklib.cygnus-linux" \ | ||||||
| 	"WLIBS = ../lib/wing32.a -lkernel32 -luser32 -lgdi32" | 	"WLIBS = ../lib/wing32.a -lkernel32 -luser32 -lgdi32" | ||||||
|  |  | ||||||
|  | darwin: | ||||||
|  | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
|  | 	"GL_LIB = libGL.dylib" \ | ||||||
|  | 	"GLU_LIB = libGLU.dylib" \ | ||||||
|  | 	"GLUT_LIB = libglut.dylib" \ | ||||||
|  | 	"GLW_LIB = libGLw.dylib" \ | ||||||
|  | 	"OSMESA_LIB = libOSMesa.dylib" \ | ||||||
|  | 	"CC = cc" \ | ||||||
|  | 	"CPLUSPLUS = cc" \ | ||||||
|  | 	"CFLAGS = -I/usr/X11R6/include -O3 -fPIC -fno-common -ffast-math \ | ||||||
|  |                 -funroll-loops -fexpensive-optimizations -no-cpp-precomp \ | ||||||
|  |                 -dynamic -Ddarwin" \ | ||||||
|  | 	"CCFLAGS = $(CFLAGS)" \ | ||||||
|  | 	"MAKELIB = ../bin/mklib.darwin" \ | ||||||
|  | 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread" \ | ||||||
|  | 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||||
|  | 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL \ | ||||||
|  |                        -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm"  | ||||||
|  |  | ||||||
| dgux: | dgux: | ||||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.a" \ | 	"GL_LIB = libGL.a" \ | ||||||
| @@ -344,7 +363,7 @@ hpux10-gcc-sl: | |||||||
|  |  | ||||||
| # For IRIX 4: don't use -fullwarn because it causes too much garbage | # For IRIX 4: don't use -fullwarn because it causes too much garbage | ||||||
| irix4: | irix4: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.a" \ | 	"GL_LIB = libGL.a" \ | ||||||
| 	"GLU_LIB = libGLU.a" \ | 	"GLU_LIB = libGLU.a" \ | ||||||
| 	"GLUT_LIB = libglut.a" \ | 	"GLUT_LIB = libglut.a" \ | ||||||
| @@ -357,7 +376,7 @@ irix4: | |||||||
|  |  | ||||||
| # On IRIX 5.3 -sopt causes a problem in drawpixels.c so we don't use it | # On IRIX 5.3 -sopt causes a problem in drawpixels.c so we don't use it | ||||||
| irix5: | irix5: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.a" \ | 	"GL_LIB = libGL.a" \ | ||||||
| 	"GLU_LIB = libGLU.a" \ | 	"GLU_LIB = libGLU.a" \ | ||||||
| 	"GLUT_LIB = libglut.a" \ | 	"GLUT_LIB = libglut.a" \ | ||||||
| @@ -385,7 +404,7 @@ irix5-gcc: | |||||||
|  |  | ||||||
| # IRIX 5 using Dynamic Shared Objects (DSO) | # IRIX 5 using Dynamic Shared Objects (DSO) | ||||||
| irix5-dso: | irix5-dso: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.so" \ | 	"GL_LIB = libGL.so" \ | ||||||
| 	"GLU_LIB = libGLU.so" \ | 	"GLU_LIB = libGLU.so" \ | ||||||
| 	"GLUT_LIB = libglut.so" \ | 	"GLUT_LIB = libglut.so" \ | ||||||
| @@ -396,34 +415,46 @@ irix5-dso: | |||||||
| 	"MAKELIB = ../bin/mklib.irix5" \ | 	"MAKELIB = ../bin/mklib.irix5" \ | ||||||
| 	"APP_LIB_DEPS = -rpath ../lib -lX11 -lXmu -lXi -lm" | 	"APP_LIB_DEPS = -rpath ../lib -lX11 -lXmu -lXi -lm" | ||||||
|  |  | ||||||
|  | # IRIX 6 32-bit Targets | ||||||
|  | #	Turn Warnings off for these errors (MIPSpro Compiler 7.30) | ||||||
|  | #	1521:   A nonstandard preprocessing directive is used. | ||||||
|  | #	1552:   The variable "" is set but never used. | ||||||
|  | #	C++ | ||||||
|  | #	3262:   The variable "" was declared but never referenced. | ||||||
|  | #	3666:   The variable "" is set but never used. | ||||||
|  | #	Use -v if using pmake to compile files in subdirectories. | ||||||
| irix6-o32: | irix6-o32: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.a" \ | 	"GL_LIB = libGL.a" \ | ||||||
| 	"GLU_LIB = libGLU.a" \ | 	"GLU_LIB = libGLU.a" \ | ||||||
| 	"GLUT_LIB = libglut.a" \ | 	"GLUT_LIB = libglut.a" \ | ||||||
| 	"GLW_LIB = libGLw.a" \ | 	"GLW_LIB = libGLw.a" \ | ||||||
| 	"OSMESA_LIB = libOSMesa.a" \ | 	"OSMESA_LIB = libOSMesa.a" \ | ||||||
|  | 	"LIBDIR = ../lib32" \ | ||||||
| 	"CC = cc" \ | 	"CC = cc" \ | ||||||
| 	"CFLAGS = -32 -mips2 -O2 -ansi -DUSE_XSHM -DNO_CONST" \ | 	"CPLUSPLUS = CC" \ | ||||||
|  | 	"CFLAGS = -32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM" \ | ||||||
|  | 	"CCFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666" \ | ||||||
| 	"MAKELIB = ../bin/mklib.ar-rcv" \ | 	"MAKELIB = ../bin/mklib.ar-rcv" \ | ||||||
| 	"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm" | 	"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm" | ||||||
|  |  | ||||||
| irix6-o32-dso: | irix6-o32-dso: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.so" \ | 	"GL_LIB = libGL.so" \ | ||||||
| 	"GLU_LIB = libGLU.so" \ | 	"GLU_LIB = libGLU.so" \ | ||||||
| 	"GLUT_LIB = libglut.so" \ | 	"GLUT_LIB = libglut.so" \ | ||||||
| 	"GLW_LIB = libGLw.so" \ | 	"GLW_LIB = libGLw.so" \ | ||||||
| 	"OSMESA_LIB = libOSMesa.so" \ | 	"OSMESA_LIB = libOSMesa.so" \ | ||||||
|  | 	"LIBDIR = ../lib32" \ | ||||||
| 	"CC = cc" \ | 	"CC = cc" \ | ||||||
| 	"CFLAGS = -32 -mips2 -O2 -ansi -DUSE_XSHM -DNO_CONST" \ | 	"CPLUSPLUS = CC" \ | ||||||
|  | 	"CFLAGS = -32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM" \ | ||||||
|  | 	"CCFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666" \ | ||||||
| 	"MAKELIB = ../bin/mklib.irix6-32" \ | 	"MAKELIB = ../bin/mklib.irix6-32" \ | ||||||
| 	"APP_LIB_DEPS = -rpath ../lib -lX11 -lXext -lXmu -lXi -lm" | 	"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXext -lXmu -lXi -lm" | ||||||
|  |  | ||||||
| # For IRIX 6: -woff: |  | ||||||
| #   1209 - controlling expression is constant |  | ||||||
| irix6-n32: | irix6-n32: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.a" \ | 	"GL_LIB = libGL.a" \ | ||||||
| 	"GLU_LIB = libGLU.a" \ | 	"GLU_LIB = libGLU.a" \ | ||||||
| 	"GLUT_LIB = libglut.a" \ | 	"GLUT_LIB = libglut.a" \ | ||||||
| @@ -431,20 +462,24 @@ irix6-n32: | |||||||
| 	"OSMESA_LIB = libOSMesa.a" \ | 	"OSMESA_LIB = libOSMesa.a" \ | ||||||
| 	"LIBDIR = ../lib32" \ | 	"LIBDIR = ../lib32" \ | ||||||
| 	"CC = cc" \ | 	"CC = cc" \ | ||||||
| 	"CFLAGS = -n32 -mips3 -O3 -ansi -woff 1209,1521" \ | 	"CPLUSPLUS = CC" \ | ||||||
|  | 	"CFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1521,1552 -DUSE_XSHM" \ | ||||||
|  | 	"CCFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1552" \ | ||||||
| 	"MAKELIB = ../bin/mklib.ar-rcv" \ | 	"MAKELIB = ../bin/mklib.ar-rcv" \ | ||||||
| 	"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm" | 	"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm" | ||||||
|  |  | ||||||
| irix6-n32-dso: | irix6-n32-dso: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.so" \ | 	"GL_LIB = libGL.so" \ | ||||||
| 	"GLU_LIB = libGLU.so" \ | 	"GLU_LIB = libGLU.so" \ | ||||||
| 	"GLUT_LIB = libglut.so" \ | 	"GLUT_LIB = libglut.so" \ | ||||||
| 	"GLW_LIB = libGLw.a" \ | 	"GLW_LIB = libGLw.so" \ | ||||||
| 	"OSMESA_LIB = libOSMesa.a" \ | 	"OSMESA_LIB = libOSMesa.so" \ | ||||||
| 	"LIBDIR = ../lib32" \ | 	"LIBDIR = ../lib32" \ | ||||||
| 	"CC = cc" \ | 	"CC = cc" \ | ||||||
| 	"CFLAGS = -n32 -mips3 -O3 -ansi -DUSE_XSHM -woff 1185,1521" \ | 	"CPLUSPLUS = CC" \ | ||||||
|  | 	"CFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1521,1552 -DUSE_XSHM" \ | ||||||
|  | 	"CCFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1552" \ | ||||||
| 	"MAKELIB = ../bin/mklib.irix6-n32" \ | 	"MAKELIB = ../bin/mklib.irix6-n32" \ | ||||||
| 	"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXmu -lXi -lfpe -lm" | 	"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXmu -lXi -lfpe -lm" | ||||||
|  |  | ||||||
| @@ -472,7 +507,7 @@ irix6-gcc-n32-sl: | |||||||
| #   1474 - declaring a void parameter list with a typedef is nonstandard | #   1474 - declaring a void parameter list with a typedef is nonstandard | ||||||
| #   1552 - variable was set but never used | #   1552 - variable was set but never used | ||||||
| irix6-64: | irix6-64: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.a" \ | 	"GL_LIB = libGL.a" \ | ||||||
| 	"GLU_LIB = libGLU.a" \ | 	"GLU_LIB = libGLU.a" \ | ||||||
| 	"GLUT_LIB = libglut.a" \ | 	"GLUT_LIB = libglut.a" \ | ||||||
| @@ -485,7 +520,7 @@ irix6-64: | |||||||
| 	"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm" | 	"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm" | ||||||
|  |  | ||||||
| irix6-64-dso: | irix6-64-dso: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.so" \ | 	"GL_LIB = libGL.so" \ | ||||||
| 	"GLU_LIB = libGLU.so" \ | 	"GLU_LIB = libGLU.so" \ | ||||||
| 	"GLUT_LIB = libglut.so" \ | 	"GLUT_LIB = libglut.so" \ | ||||||
| @@ -571,6 +606,32 @@ linux-x86: | |||||||
| 		X86/sse_xform3.S X86/sse_xform4.S \ | 		X86/sse_xform3.S X86/sse_xform4.S \ | ||||||
| 		X86/sse_normal.S X86/sse_vertex.S" | 		X86/sse_normal.S X86/sse_vertex.S" | ||||||
|  |  | ||||||
|  | linux-icc: | ||||||
|  | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
|  | 	"GL_LIB = libGL.so" \ | ||||||
|  | 	"GLU_LIB = libGLU.so" \ | ||||||
|  | 	"GLUT_LIB = libglut.so" \ | ||||||
|  | 	"GLW_LIB = libGLw.so" \ | ||||||
|  | 	"OSMESA_LIB = libOSMesa.so" \ | ||||||
|  | 	"CC = icc" \ | ||||||
|  | 	"CPLUSPLUS = g++" \ | ||||||
|  | 	"CFLAGS = -O3 -tpp6 -KPIC -D_GCC_LIMITS_H_ -D__GNUC__ -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include" \ | ||||||
|  | 	"MAKELIB = ../bin/mklib.linux" \ | ||||||
|  | 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lm -lpthread" \ | ||||||
|  | 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||||
|  | 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||||
|  | 	"APP_LIB_DEPS = -lm" \ | ||||||
|  | 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||||
|  | 		X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \ | ||||||
|  | 		X86/x86_cliptest.S X86/x86_vertex.S \ | ||||||
|  | 		X86/mmx_blend.S \ | ||||||
|  | 		X86/3dnow_xform1.S X86/3dnow_xform2.S \ | ||||||
|  | 		X86/3dnow_xform3.S X86/3dnow_xform4.S \ | ||||||
|  | 		X86/3dnow_normal.S X86/3dnow_vertex.S \ | ||||||
|  | 		X86/sse_xform1.S X86/sse_xform2.S \ | ||||||
|  | 		X86/sse_xform3.S X86/sse_xform4.S \ | ||||||
|  | 		X86/sse_normal.S X86/sse_vertex.S" | ||||||
|  |  | ||||||
| linux-x86-static: | linux-x86-static: | ||||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.a" \ | 	"GL_LIB = libGL.a" \ | ||||||
| @@ -662,7 +723,7 @@ linux-386-glide: | |||||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||||
| 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL" | 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL -lm" \ | ||||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||||
| 		X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \ | 		X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \ | ||||||
| 		X86/x86_cliptest.S X86/x86_vertex.S" | 		X86/x86_cliptest.S X86/x86_vertex.S" | ||||||
| @@ -682,7 +743,7 @@ linux-386-opt-glide: | |||||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||||
| 	"APP_LIB_DEPS = -lm" \ | 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL -lm" \ | ||||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||||
| 		X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \ | 		X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \ | ||||||
| 		X86/x86_cliptest.S X86/x86_vertex.S" | 		X86/x86_cliptest.S X86/x86_vertex.S" | ||||||
| @@ -701,7 +762,7 @@ linux-x86-glide: | |||||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||||
| 	"APP_LIB_DEPS = -lm" \ | 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL -lm" \ | ||||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||||
| 		X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \ | 		X86/x86_xform2.S X86/x86_xform3.S X86/x86_xform4.S \ | ||||||
| 		X86/x86_cliptest.S X86/x86_vertex.S \ | 		X86/x86_cliptest.S X86/x86_vertex.S \ | ||||||
| @@ -832,7 +893,7 @@ linux-osmesa16: | |||||||
| 	"OSMESA16_LIB = libOSMesa16.so" \ | 	"OSMESA16_LIB = libOSMesa16.so" \ | ||||||
| 	"CC = gcc" \ | 	"CC = gcc" \ | ||||||
| 	"CPLUSPLUS = g++" \ | 	"CPLUSPLUS = g++" \ | ||||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \ | 	"CFLAGS = -O3 -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \ | ||||||
| 	"CCFLAGS = $(CFLAGS)" \ | 	"CCFLAGS = $(CFLAGS)" \ | ||||||
| 	"MAKELIB = ../bin/mklib.linux" \ | 	"MAKELIB = ../bin/mklib.linux" \ | ||||||
| 	"GL_LIB_DEPS = -lm -lpthread" \ | 	"GL_LIB_DEPS = -lm -lpthread" \ | ||||||
| @@ -844,7 +905,7 @@ linux-osmesa32: | |||||||
| 	"OSMESA16_LIB = libOSMesa32.so" \ | 	"OSMESA16_LIB = libOSMesa32.so" \ | ||||||
| 	"CC = gcc" \ | 	"CC = gcc" \ | ||||||
| 	"CPLUSPLUS = g++" \ | 	"CPLUSPLUS = g++" \ | ||||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DCHAN_BITS=32 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \ | 	"CFLAGS = -O3 -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DCHAN_BITS=32 -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \ | ||||||
| 	"CCFLAGS = $(CFLAGS)" \ | 	"CCFLAGS = $(CFLAGS)" \ | ||||||
| 	"MAKELIB = ../bin/mklib.linux" \ | 	"MAKELIB = ../bin/mklib.linux" \ | ||||||
| 	"GL_LIB_DEPS = -lm -lpthread" \ | 	"GL_LIB_DEPS = -lm -lpthread" \ | ||||||
| @@ -1177,6 +1238,7 @@ sunos5: | |||||||
| 	"GLW_LIB = libGLw.a" \ | 	"GLW_LIB = libGLw.a" \ | ||||||
| 	"OSMESA_LIB = libOSMesa.a" \ | 	"OSMESA_LIB = libOSMesa.a" \ | ||||||
| 	"CC = cc" \ | 	"CC = cc" \ | ||||||
|  | 	"CPLUSPLUS = CC" \ | ||||||
| 	"CFLAGS = -Xa -fast -xO4 -native -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | 	"CFLAGS = -Xa -fast -xO4 -native -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||||
| 	"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | 	"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||||
| @@ -1189,6 +1251,7 @@ sunos5-sl: | |||||||
| 	"GLW_LIB = libGLw.so" \ | 	"GLW_LIB = libGLw.so" \ | ||||||
| 	"OSMESA_LIB = libOSMesa.so" \ | 	"OSMESA_LIB = libOSMesa.so" \ | ||||||
| 	"CC = cc" \ | 	"CC = cc" \ | ||||||
|  | 	"CPLUSPLUS = CC" \ | ||||||
| 	"CFLAGS = -KPIC -Xa -O -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | 	"CFLAGS = -KPIC -Xa -O -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||||
| 	"MAKELIB = ../bin/mklib.sunos5" \ | 	"MAKELIB = ../bin/mklib.sunos5" \ | ||||||
| 	"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | 	"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||||
| @@ -1201,6 +1264,7 @@ sunos5-ultra: | |||||||
| 	"GLW_LIB = libGLw.a" \ | 	"GLW_LIB = libGLw.a" \ | ||||||
| 	"OSMESA_LIB = libOSMesa.a" \ | 	"OSMESA_LIB = libOSMesa.a" \ | ||||||
| 	"CC = cc" \ | 	"CC = cc" \ | ||||||
|  | 	"CPLUSPLUS = CC" \ | ||||||
| 	"CFLAGS = -Xa -fast -xO5 -xtarget=ultra -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | 	"CFLAGS = -Xa -fast -xO5 -xtarget=ultra -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||||
| 	"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | 	"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||||
| @@ -1213,6 +1277,7 @@ sunos5-ultra-sl: | |||||||
| 	"GLW_LIB = libGLw.so" \ | 	"GLW_LIB = libGLw.so" \ | ||||||
| 	"OSMESA_LIB = libOSMesa.so" \ | 	"OSMESA_LIB = libOSMesa.so" \ | ||||||
| 	"CC = cc" \ | 	"CC = cc" \ | ||||||
|  | 	"CPLUSPLUS = CC" \ | ||||||
| 	"CFLAGS = -KPIC -Xa -fast -xO5 -xtarget=ultra -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | 	"CFLAGS = -KPIC -Xa -fast -xO5 -xtarget=ultra -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||||
| 	"MAKELIB = ../bin/mklib.sunos5" \ | 	"MAKELIB = ../bin/mklib.sunos5" \ | ||||||
| 	"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | 	"APP_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||||
| @@ -1418,7 +1483,7 @@ vistra: | |||||||
| # -woff 1521 = "nonstandard preprocessing directive is used" | # -woff 1521 = "nonstandard preprocessing directive is used" | ||||||
| # -woff 3496 = "bitwise operator precedence" | # -woff 3496 = "bitwise operator precedence" | ||||||
| irix-debug: | irix-debug: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.a" \ | 	"GL_LIB = libGL.a" \ | ||||||
| 	"GLU_LIB = libGLU.a" \ | 	"GLU_LIB = libGLU.a" \ | ||||||
| 	"GLUT_LIB = libglut.a" \ | 	"GLUT_LIB = libglut.a" \ | ||||||
| @@ -1431,7 +1496,7 @@ irix-debug: | |||||||
| 	"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXext -lXmu -lXi -lfpe -lXext -lXmu -lXi -lm" | 	"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXext -lXmu -lXi -lfpe -lXext -lXmu -lXi -lm" | ||||||
|  |  | ||||||
| DEBUG: | DEBUG: | ||||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
| 	"GL_LIB = libGL.a" \ | 	"GL_LIB = libGL.a" \ | ||||||
| 	"GLU_LIB = libGLU.a" \ | 	"GLU_LIB = libGLU.a" \ | ||||||
| 	"GLUT_LIB = libglut.a" \ | 	"GLUT_LIB = libglut.a" \ | ||||||
| @@ -1452,13 +1517,31 @@ linux-debug: | |||||||
| 	"OSMESA_LIB = libOSMesa.so" \ | 	"OSMESA_LIB = libOSMesa.so" \ | ||||||
| 	"CC = gcc" \ | 	"CC = gcc" \ | ||||||
| 	"CPLUSPLUS = g++" \ | 	"CPLUSPLUS = g++" \ | ||||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DSVGA -I/usr/include/glide -DFX -DMESA_TRACE" \ | 	"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DSVGA_foo -I/usr/include/glide -DFX_foo -DMESA_TRACE" \ | ||||||
| 	"CCFLAGS = $(CFLAGS)" \ | 	"CCFLAGS = $(CFLAGS)" \ | ||||||
| 	"MAKELIB = ../bin/mklib.linux" \ | 	"MAKELIB = ../bin/mklib.linux" \ | ||||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L/usr/local/glide/lib -lglide2x -lvga" \ | 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread" \ | ||||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||||
| 	"APP_LIB_DEPS = -lglut -lGLU -lGL -L/usr/local/glide/lib -lglide2x" | 	"APP_LIB_DEPS = -lglut -lGLU -lGL" | ||||||
|  |  | ||||||
|  | linux-x11-debug: | ||||||
|  | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
|  | 	"GL_LIB = libGL.so" \ | ||||||
|  | 	"GLU_LIB = libGLU.so" \ | ||||||
|  | 	"GLUT_LIB = libglut.so" \ | ||||||
|  | 	"GLW_LIB = libGLw.so" \ | ||||||
|  | 	"OSMESA_LIB = libOSMesa.so" \ | ||||||
|  | 	"CC = gcc" \ | ||||||
|  | 	"CPLUSPLUS = g++" \ | ||||||
|  | 	"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DMESA_TRACE" \ | ||||||
|  | 	"CCFLAGS = $(CFLAGS)" \ | ||||||
|  | 	"MAKELIB = ../bin/mklib.linux" \ | ||||||
|  | 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread" \ | ||||||
|  | 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||||
|  | 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||||
|  | 	"APP_LIB_DEPS = -lglut -lGLU -lGL" | ||||||
|  |  | ||||||
|  |  | ||||||
| linux-static-debug: | linux-static-debug: | ||||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||||
|   | |||||||
							
								
								
									
										42
									
								
								Makefile.X11
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								Makefile.X11
									
									
									
									
									
								
							| @@ -1,9 +1,9 @@ | |||||||
| # $Id: Makefile.X11,v 1.57 2001/10/22 22:45:18 brianp Exp $ | # $Id: Makefile.X11,v 1.56.2.13 2002/09/19 16:36:35 brianp Exp $ | ||||||
|  |  | ||||||
| # Mesa 3-D graphics library | # Mesa 3-D graphics library | ||||||
| # Version:  4.1 | # Version:  4.0.4 | ||||||
| #  | #  | ||||||
| # Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | # Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. | ||||||
| #  | #  | ||||||
| # Permission is hereby granted, free of charge, to any person obtaining a | # Permission is hereby granted, free of charge, to any person obtaining a | ||||||
| # copy of this software and associated documentation files (the "Software"), | # copy of this software and associated documentation files (the "Software"), | ||||||
| @@ -42,6 +42,7 @@ default: | |||||||
| 	@echo "  make bsdos4               for BSD/OS 4.x, dynamic libraries" | 	@echo "  make bsdos4               for BSD/OS 4.x, dynamic libraries" | ||||||
| 	@echo "  make cygnus               for Win95/NT using Cygnus-Win32" | 	@echo "  make cygnus               for Win95/NT using Cygnus-Win32" | ||||||
| 	@echo "  make cygnus-linux         for Win95/NT using Cygnus-Win32 under Linux" | 	@echo "  make cygnus-linux         for Win95/NT using Cygnus-Win32 under Linux" | ||||||
|  | 	@echo "  make darwin               for Darwin - Mac OS X" | ||||||
| 	@echo "  make dgux                 for Data General" | 	@echo "  make dgux                 for Data General" | ||||||
| 	@echo "  make freebsd              for FreeBSD systems with GCC" | 	@echo "  make freebsd              for FreeBSD systems with GCC" | ||||||
| 	@echo "  make freebsd-386          for FreeBSD systems with GCC, w/ Intel assembly" | 	@echo "  make freebsd-386          for FreeBSD systems with GCC, w/ Intel assembly" | ||||||
| @@ -86,6 +87,7 @@ default: | |||||||
| 	@echo "  make linux-sparc-ultra    for UltraSparc systems, make ELF shared libs" | 	@echo "  make linux-sparc-ultra    for UltraSparc systems, make ELF shared libs" | ||||||
| 	@echo "  make linux-osmesa16       for 16-bit/channel OSMesa" | 	@echo "  make linux-osmesa16       for 16-bit/channel OSMesa" | ||||||
| 	@echo "  make linux-osmesa32       for 32-bit/channel OSMesa" | 	@echo "  make linux-osmesa32       for 32-bit/channel OSMesa" | ||||||
|  | 	@echo "  make linux-icc            for Linux with the Intel C/C++ compiler" | ||||||
| 	@echo "  make lynxos               for LynxOS systems with GCC" | 	@echo "  make lynxos               for LynxOS systems with GCC" | ||||||
| 	@echo "  make macintosh            for Macintosh" | 	@echo "  make macintosh            for Macintosh" | ||||||
| 	@echo "  make machten-2.2          for Macs w/ MachTen 2.2 (68k w/ FPU)" | 	@echo "  make machten-2.2          for Macs w/ MachTen 2.2 (68k w/ FPU)" | ||||||
| @@ -137,12 +139,12 @@ default: | |||||||
| # XXX we may have to split up this group of targets into those that | # XXX we may have to split up this group of targets into those that | ||||||
| # have a C++ compiler and those that don't for the SI-GLU library. | # have a C++ compiler and those that don't for the SI-GLU library. | ||||||
|  |  | ||||||
| aix aix-sl amix bsdos bsdos4 dgux freebsd freebsd-386 gcc \ | aix aix-sl amix bsdos bsdos4 darwin dgux freebsd freebsd-386 gcc \ | ||||||
| hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \ | hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \ | ||||||
| hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \ | hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \ | ||||||
| irix4 irix5 irix5-gcc irix5-dso irix6-o32 irix6-o32-dso \ | irix4 irix5 irix5-gcc irix5-dso \ | ||||||
| linux linux-static linux-debug linux-static-debug linux-prof \ | linux linux-static linux-debug linux-x11-debug linux-static-debug linux-prof \ | ||||||
| linux-x86 linux-x86-static linux-x86-debug \ | linux-x86 linux-icc linux-x86-static linux-x86-debug \ | ||||||
| linux-glide linux-386-glide linux-386-opt-glide \ | linux-glide linux-386-glide linux-386-opt-glide \ | ||||||
| linux-x86-glide linux-glide-debug linux-glide-prof \ | linux-x86-glide linux-glide-debug linux-glide-prof \ | ||||||
| linux-alpha-static linux-alpha \ | linux-alpha-static linux-alpha \ | ||||||
| @@ -171,12 +173,11 @@ sunos5-x11r6-gcc-sl ultrix-gcc unicos unixware uwin vistra: | |||||||
| 	if [ -d book     ] ; then cd book     ; $(MAKE) -f Makefile.X11 $@ ; fi | 	if [ -d book     ] ; then cd book     ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||||
| 	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi | 	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi | ||||||
|  |  | ||||||
| irix6-n32 irix6-n32-dso irix6-gcc-n32-sl irix-debug: | irix6-o32 irix6-o32-dso irix6-n32 irix6-n32-dso irix6-gcc-n32-sl irix-debug: | ||||||
| 	-mkdir lib32 | 	-mkdir lib32 | ||||||
| 	if [ -d src      ] ; then touch src/depend      ; fi | 	if [ -d src      ] ; then touch src/depend      ; fi | ||||||
| 	if [ -d src-glu  ] ; then touch src-glu/depend  ; fi | 	if [ -d src-glu  ] ; then touch src-glu/depend  ; fi | ||||||
| 	if [ -d src-glut ] ; then touch src-glut/depend ; fi | 	if [ -d src-glut ] ; then touch src-glut/depend ; fi | ||||||
| 	if [ -d src-glut ] ; then touch src-glut/depend ; fi |  | ||||||
| 	if [ -d widgets-sgi ] ; then touch widgets-sgi/depend ; fi | 	if [ -d widgets-sgi ] ; then touch widgets-sgi/depend ; fi | ||||||
| 	if [ -d src      ] ; then cd src      ; $(MAKE) -f Makefile.X11 $@ ; fi | 	if [ -d src      ] ; then cd src      ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||||
| 	if [ -d src-glu  ] ; then cd src-glu  ; $(MAKE) -f Makefile.X11 $@ ; fi | 	if [ -d src-glu  ] ; then cd src-glu  ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||||
| @@ -299,7 +300,6 @@ linux-osmesa16 linux-osmesa32: | |||||||
| 	-mkdir lib | 	-mkdir lib | ||||||
| 	if [ -d src ] ; then touch src/depend ; fi | 	if [ -d src ] ; then touch src/depend ; fi | ||||||
| 	if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.OSMesa16 $@ ; fi | 	if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.OSMesa16 $@ ; fi | ||||||
| 	 |  | ||||||
|  |  | ||||||
| # Remove .o files, emacs backup files, etc. | # Remove .o files, emacs backup files, etc. | ||||||
| clean: | clean: | ||||||
| @@ -322,20 +322,18 @@ clean: | |||||||
|  |  | ||||||
| # Remove everything that can be remade | # Remove everything that can be remade | ||||||
| realclean: clean | realclean: clean | ||||||
| 	-rm -f lib/* | 	-rm -fr lib lib32 lib64 | ||||||
| 	cd demos       && $(MAKE) -f Makefile.X11 realclean || true | 	cd demos       && $(MAKE) -f Makefile.X11 realclean || true | ||||||
| 	cd xdemos      && $(MAKE) -f Makefile.X11 realclean || true | 	cd xdemos      && $(MAKE) -f Makefile.X11 realclean || true | ||||||
| 	cd book        && $(MAKE) -f Makefile.X11 realclean || true | 	cd book        && $(MAKE) -f Makefile.X11 realclean || true | ||||||
| 	cd samples     && $(MAKE) -f Makefile.X11 realclean || true | 	cd samples     && $(MAKE) -f Makefile.X11 realclean || true | ||||||
| 	cd ggi/demos   && $(MAKE) -f Makefile.X11 realclean || true |  | ||||||
| 	cd src/GGI/default && $(MAKE) -f Makefile.X11 realclean || true |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| DIRECTORY = Mesa-4.0 | DIRECTORY = Mesa-4.0.4 | ||||||
| LIB_NAME = MesaLib-4.0 | LIB_NAME = MesaLib-4.0.4 | ||||||
| DEMO_NAME = MesaDemos-4.0 | DEMO_NAME = MesaDemos-4.0.4 | ||||||
| GLU_NAME = MesaGLU-4.0 | GLU_NAME = MesaGLU-4.0.4 | ||||||
| GLUT_NAME = GLUT-3.7 | GLUT_NAME = GLUT-3.7 | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -380,7 +378,7 @@ LIB_FILES =	\ | |||||||
| 	$(DIRECTORY)/include/GL/internal/glcore.h			\ | 	$(DIRECTORY)/include/GL/internal/glcore.h			\ | ||||||
| 	$(DIRECTORY)/include/GL/Makefile.in				\ | 	$(DIRECTORY)/include/GL/Makefile.in				\ | ||||||
| 	$(DIRECTORY)/include/GL/Makefile.am				\ | 	$(DIRECTORY)/include/GL/Makefile.am				\ | ||||||
| 	$(DIRECTORY)/include/GL/dosmesa.h				\ | 	$(DIRECTORY)/include/GL/dmesa.h					\ | ||||||
| 	$(DIRECTORY)/include/GL/amesa.h					\ | 	$(DIRECTORY)/include/GL/amesa.h					\ | ||||||
| 	$(DIRECTORY)/include/GL/fxmesa.h				\ | 	$(DIRECTORY)/include/GL/fxmesa.h				\ | ||||||
| 	$(DIRECTORY)/include/GL/ggimesa.h				\ | 	$(DIRECTORY)/include/GL/ggimesa.h				\ | ||||||
| @@ -403,6 +401,7 @@ LIB_FILES =	\ | |||||||
| 	$(DIRECTORY)/include/GL/xmesa_x.h				\ | 	$(DIRECTORY)/include/GL/xmesa_x.h				\ | ||||||
| 	$(DIRECTORY)/include/GL/xmesa_xf86.h				\ | 	$(DIRECTORY)/include/GL/xmesa_xf86.h				\ | ||||||
| 	$(DIRECTORY)/include/GLView.h					\ | 	$(DIRECTORY)/include/GLView.h					\ | ||||||
|  | 	$(DIRECTORY)/include/dmesadxe.h					\ | ||||||
| 	$(DIRECTORY)/include/Makefile.in				\ | 	$(DIRECTORY)/include/Makefile.in				\ | ||||||
| 	$(DIRECTORY)/include/Makefile.am				\ | 	$(DIRECTORY)/include/Makefile.am				\ | ||||||
| 	$(DIRECTORY)/src/Makefile*					\ | 	$(DIRECTORY)/src/Makefile*					\ | ||||||
| @@ -433,6 +432,9 @@ LIB_FILES =	\ | |||||||
| 	$(DIRECTORY)/src/windml/tornado/*.cdf				\ | 	$(DIRECTORY)/src/windml/tornado/*.cdf				\ | ||||||
| 	$(DIRECTORY)/src/windml/man3/*.3				\ | 	$(DIRECTORY)/src/windml/man3/*.3				\ | ||||||
| 	$(DIRECTORY)/src/windml/man3/*.html				\ | 	$(DIRECTORY)/src/windml/man3/*.html				\ | ||||||
|  | 	$(DIRECTORY)/src/DOS/*.[chS]					\ | ||||||
|  | 	$(DIRECTORY)/src/DOS/vesa/*.[ch]				\ | ||||||
|  | 	$(DIRECTORY)/src/BeOS/*.h					\ | ||||||
| 	$(DIRECTORY)/src/BeOS/*.cpp					\ | 	$(DIRECTORY)/src/BeOS/*.cpp					\ | ||||||
| 	$(DIRECTORY)/src/FX/Makefile.am					\ | 	$(DIRECTORY)/src/FX/Makefile.am					\ | ||||||
| 	$(DIRECTORY)/src/FX/Makefile.in					\ | 	$(DIRECTORY)/src/FX/Makefile.in					\ | ||||||
| @@ -581,7 +583,6 @@ OBSOLETE_LIB_FILES = \ | |||||||
| 	$(DIRECTORY)/src/D3D/*bat					\ | 	$(DIRECTORY)/src/D3D/*bat					\ | ||||||
| 	$(DIRECTORY)/src/D3D/*DEF					\ | 	$(DIRECTORY)/src/D3D/*DEF					\ | ||||||
| 	$(DIRECTORY)/src/DOS/DEPEND.DOS					\ | 	$(DIRECTORY)/src/DOS/DEPEND.DOS					\ | ||||||
| 	$(DIRECTORY)/src/DOS/*.c					\ |  | ||||||
| 	$(DIRECTORY)/src/S3/*.[ch]					\ | 	$(DIRECTORY)/src/S3/*.[ch]					\ | ||||||
| 	$(DIRECTORY)/src/S3/*.def					\ | 	$(DIRECTORY)/src/S3/*.def					\ | ||||||
| 	$(DIRECTORY)/src/S3/*.mak					\ | 	$(DIRECTORY)/src/S3/*.mak					\ | ||||||
| @@ -614,6 +615,9 @@ DEMO_FILES =	\ | |||||||
| 	$(DIRECTORY)/src-glut/descrip.mms	\ | 	$(DIRECTORY)/src-glut/descrip.mms	\ | ||||||
| 	$(DIRECTORY)/src-glut/mms_depend	\ | 	$(DIRECTORY)/src-glut/mms_depend	\ | ||||||
| 	$(DIRECTORY)/src-glut/*.[ch]		\ | 	$(DIRECTORY)/src-glut/*.[ch]		\ | ||||||
|  | 	$(DIRECTORY)/src-glut.dos/*.[ch]	\ | ||||||
|  | 	$(DIRECTORY)/src-glut.dos/Makefile.DJ	\ | ||||||
|  | 	$(DIRECTORY)/src-glut.dos/PC_HW/*.[chS]	\ | ||||||
| 	$(DIRECTORY)/images/*			\ | 	$(DIRECTORY)/images/*			\ | ||||||
| 	$(DIRECTORY)/demos/Makefile*		\ | 	$(DIRECTORY)/demos/Makefile*		\ | ||||||
| 	$(DIRECTORY)/demos/descrip.mms		\ | 	$(DIRECTORY)/demos/descrip.mms		\ | ||||||
|   | |||||||
							
								
								
									
										94
									
								
								docs/MESA_agp_offset.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								docs/MESA_agp_offset.spec
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,94 @@ | |||||||
|  | Name | ||||||
|  |  | ||||||
|  |     MESA_agp_offset | ||||||
|  |  | ||||||
|  | Name Strings | ||||||
|  |  | ||||||
|  |     GLX_MESA_agp_offset | ||||||
|  |  | ||||||
|  | Contact | ||||||
|  |  | ||||||
|  |     Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com) | ||||||
|  |     Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com) | ||||||
|  |  | ||||||
|  | Status | ||||||
|  |  | ||||||
|  |     Shipping (Mesa 4.0.4 and later.  Only implemented in particular | ||||||
|  |     XFree86/DRI drivers.) | ||||||
|  |  | ||||||
|  | Version | ||||||
|  |  | ||||||
|  |     1.0 | ||||||
|  |  | ||||||
|  | Number | ||||||
|  |  | ||||||
|  |     TBD | ||||||
|  |  | ||||||
|  | Dependencies | ||||||
|  |  | ||||||
|  |     OpenGL 1.0 or later is required | ||||||
|  |     GLX_NV_vertex_array_range is required. | ||||||
|  |     This extensions is written against the OpenGL 1.4 Specification. | ||||||
|  |  | ||||||
|  | Overview | ||||||
|  |  | ||||||
|  |     This extensions provides a way to convert pointers in an AGP memory | ||||||
|  |     region into byte offsets into the AGP aperture. | ||||||
|  |     Note, this extension depends on GLX_NV_vertex_array_range, for which | ||||||
|  |     no real specification exists.  See GL_NV_vertex_array_range for more | ||||||
|  |     information. | ||||||
|  |  | ||||||
|  | IP Status | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Issues | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | New Procedures and Functions | ||||||
|  |  | ||||||
|  |     GLuint glXGetAGPOffsetMESA( const GLvoid *pointer ) | ||||||
|  |  | ||||||
|  | New Tokens | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to the OpenGL 1.4 Specification | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to Chapter 3 the GLX 1.4 Specification (Functions and Errors) | ||||||
|  |  | ||||||
|  |     Add a new section, 3.6 as follows: | ||||||
|  |  | ||||||
|  |     3.6 AGP Memory Access | ||||||
|  |  | ||||||
|  |     On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV | ||||||
|  |     and freed with glXFreeMemoryNV.  Sometimes it's useful to know where a | ||||||
|  |     block of AGP memory is located with respect to the start of the AGP | ||||||
|  |     aperature.  The function | ||||||
|  |  | ||||||
|  |         GLuint glXGetAGPOffsetMESA( const GLvoid *pointer ) | ||||||
|  |  | ||||||
|  |     Returns the offset of the given memory block from the start of AGP | ||||||
|  |     memory in basic machine units (i.e. bytes).  If pointer is invalid | ||||||
|  |     the value ~0 will be returned. | ||||||
|  |  | ||||||
|  | GLX Protocol | ||||||
|  |  | ||||||
|  |     None.  This is a client side-only extension. | ||||||
|  |  | ||||||
|  | Errors | ||||||
|  |  | ||||||
|  |     glXGetAGPOffsetMESA will return ~0 if the pointer does not point to | ||||||
|  |     an AGP memory region. | ||||||
|  |  | ||||||
|  | New State | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Revision History | ||||||
|  |  | ||||||
|  |     20 September 2002 - Initial draft | ||||||
|  |     2 October 2002 - finished GLX chapter 3 additions | ||||||
							
								
								
									
										138
									
								
								docs/MESA_pack_invert.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								docs/MESA_pack_invert.spec
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,138 @@ | |||||||
|  | Name | ||||||
|  |  | ||||||
|  |     MESA_pack_invert | ||||||
|  |  | ||||||
|  | Name Strings | ||||||
|  |  | ||||||
|  |     GL_MESA_pack_invert | ||||||
|  |  | ||||||
|  | Contact | ||||||
|  |  | ||||||
|  |     Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com) | ||||||
|  |     Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com) | ||||||
|  |  | ||||||
|  | Status | ||||||
|  |  | ||||||
|  |     Shipping (Mesa 4.0.4 and later) | ||||||
|  |  | ||||||
|  | Version | ||||||
|  |  | ||||||
|  |     1.0 | ||||||
|  |  | ||||||
|  | Number | ||||||
|  |  | ||||||
|  |     TBD | ||||||
|  |  | ||||||
|  | Dependencies | ||||||
|  |  | ||||||
|  |     OpenGL 1.0 or later is required | ||||||
|  |     This extensions is written against the OpenGL 1.4 Specification. | ||||||
|  |  | ||||||
|  | Overview | ||||||
|  |  | ||||||
|  |     This extension adds a new pixel storage parameter to indicate that | ||||||
|  |     images are to be packed in top-to-bottom order instead of OpenGL's | ||||||
|  |     conventional bottom-to-top order.  Only pixel packing can be | ||||||
|  |     inverted (i.e. for glReadPixels, glGetTexImage, glGetConvolutionFilter, | ||||||
|  |     etc). | ||||||
|  |  | ||||||
|  |     Almost all known image file formats store images in top-to-bottom | ||||||
|  |     order.  As it is, OpenGL reads images from the frame buffer in | ||||||
|  |     bottom-to-top order.  Thus, images usually have to be inverted before | ||||||
|  |     writing them to a file with image I/O libraries.  This extension | ||||||
|  |     allows images to be read such that inverting isn't needed. | ||||||
|  |  | ||||||
|  | IP Status | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Issues | ||||||
|  |  | ||||||
|  |     1. Should we also defined UNPACK_INVERT_MESA for glDrawPixels, etc? | ||||||
|  |  | ||||||
|  |     Resolved:  No, we're only concerned with pixel packing.  There are other | ||||||
|  |     solutions for inverting images when using glDrawPixels (negative Y pixel | ||||||
|  |     zoom) or glTexImage (invert the vertex T coordinates).  It would be easy | ||||||
|  |     enough to define a complementary extension for pixel packing in the | ||||||
|  |     future if needed. | ||||||
|  |  | ||||||
|  | New Procedures and Functions | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | New Tokens | ||||||
|  |  | ||||||
|  |     Accepted by the <pname> parameter of PixelStorei and PixelStoref | ||||||
|  |     and the <pname> parameter of GetIntegerv, GetFloatv, GetDoublev | ||||||
|  |     and GetBooleanv: | ||||||
|  |  | ||||||
|  |         PACK_INVERT_MESA                   0x8758 | ||||||
|  |  | ||||||
|  | Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation) | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization) | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment | ||||||
|  | Operations and the Frame Buffer) | ||||||
|  |  | ||||||
|  |     Add the following entry to table 4.4 (PixelStore parameters) on page 182: | ||||||
|  |  | ||||||
|  |     Parameter Name       Type    Initial Value    Valid Range | ||||||
|  |     --------------------------------------------------------- | ||||||
|  |     PACK_INVERT_MESA     boolean     FALSE        TRUE/FALSE | ||||||
|  |  | ||||||
|  |     In the section labeled "Placement in Client Memory" on page 184 | ||||||
|  |     insert the following text into the paragraph before the sentence | ||||||
|  |     that starts with "If the format is RED, GREEN, BLUE...": | ||||||
|  |  | ||||||
|  |     "The parameter PACK_INVERT_MESA controls whether the image is packed | ||||||
|  |      in bottom-to-top order (the default) or top-to-bottom order.  Equation | ||||||
|  |      3.8 is modified as follows: | ||||||
|  |  | ||||||
|  |      ... the first element of the Nth row is indicated by | ||||||
|  |  | ||||||
|  |          p + Nk,                if PACK_INVERT_MESA is false | ||||||
|  |          p + k * (H - 1) - Nk,  if PACK_INVERT_MESA is true, where H is the | ||||||
|  |                                 image height | ||||||
|  |     " | ||||||
|  |  | ||||||
|  | Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions) | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to Chapter 6 of the OpenGL 1.4 Specification (State and | ||||||
|  | State Requests) | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to Appendix A of the OpenGL 1.4 Specification (Invariance) | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to the AGL/GLX/WGL Specifications | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | GLX Protocol | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Errors | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | New State | ||||||
|  |  | ||||||
|  |     Add the following entry to table 6.20 (Pixels) on page 235: | ||||||
|  |  | ||||||
|  |     Get Value         Type     Get Cmd    Initial Value  Description                Sec    Attribute | ||||||
|  |     -------------------------------------------------------------------------------------------------- | ||||||
|  |     PACK_INVERT_MESA  boolean  GetBoolean  FALSE         Value of PACK_INVERT_MESA  4.3.2  pixel-store | ||||||
|  |  | ||||||
|  | Revision History | ||||||
|  |  | ||||||
|  |     21 September 2002 - Initial draft | ||||||
| @@ -15,11 +15,11 @@ Contact | |||||||
|  |  | ||||||
| Status | Status | ||||||
|  |  | ||||||
|     Not yet shipping. |     OBSOLETE - NEVER SHIPPED (use GL_NV_packed_depth_stencil) | ||||||
|  |  | ||||||
| Version | Version | ||||||
|  |  | ||||||
|     $Id: MESA_packed_depth_stencil.spec,v 1.1 2000/11/03 14:58:45 brianp Exp $ |     $Id: MESA_packed_depth_stencil.spec,v 1.1.2.1 2002/09/20 19:14:11 brianp Exp $ | ||||||
|  |  | ||||||
| Number | Number | ||||||
|  |  | ||||||
|   | |||||||
| @@ -14,11 +14,11 @@ Contact | |||||||
|  |  | ||||||
| Status | Status | ||||||
|  |  | ||||||
|     Not yet shipping. |     OBSOLETE - NEVER SHIPPED (use GL_NV_point_sprite) | ||||||
|  |  | ||||||
| Version | Version | ||||||
|  |  | ||||||
|     $Id: MESA_sprite_point.spec,v 1.1 2000/12/08 00:21:02 brianp Exp $ |     $Id: MESA_sprite_point.spec,v 1.1.2.1 2002/09/20 19:14:11 brianp Exp $ | ||||||
|  |  | ||||||
| Number | Number | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										197
									
								
								docs/MESA_ycbcr_texture.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										197
									
								
								docs/MESA_ycbcr_texture.spec
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,197 @@ | |||||||
|  | Name | ||||||
|  |  | ||||||
|  |     MESA_ycbcr_texture | ||||||
|  |  | ||||||
|  | Name Strings | ||||||
|  |  | ||||||
|  |     GL_MESA_ycbcr_texture | ||||||
|  |  | ||||||
|  | Contact | ||||||
|  |  | ||||||
|  |     Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com) | ||||||
|  |     Keith Whitwell, Tungsten Graphics, Inc.  (keith 'at' tungstengraphics.com) | ||||||
|  |  | ||||||
|  | Status | ||||||
|  |  | ||||||
|  |     Shipping (Mesa 4.0.4 and later) | ||||||
|  |  | ||||||
|  | Version | ||||||
|  |  | ||||||
|  |     1.0 | ||||||
|  |  | ||||||
|  | Number | ||||||
|  |  | ||||||
|  |     TBD | ||||||
|  |  | ||||||
|  | Dependencies | ||||||
|  |  | ||||||
|  |     OpenGL 1.0 or later is required | ||||||
|  |     This extensions is written against the OpenGL 1.4 Specification. | ||||||
|  |     NV_texture_rectangle effects the definition of this extension. | ||||||
|  |  | ||||||
|  | Overview | ||||||
|  |  | ||||||
|  |     This extension supports texture images in the YCbCr format.  There is | ||||||
|  |     no support for converting YCbCr images to RGB or vice versa.  The | ||||||
|  |     intention is for YCbCr image data to be directly sent to the renderer | ||||||
|  |     without any pixel transfer operations.  Only 2D texture images are | ||||||
|  |     supported (not glDrawPixels, glReadPixels, etc). | ||||||
|  |  | ||||||
|  |     A YCbCr pixel (texel) is a 16-bit unsigned short with two components. | ||||||
|  |     The first component is luminance (Y).  For pixels in even-numbered | ||||||
|  |     image columns, the second component is Cb.  For pixels in odd-numbered | ||||||
|  |     image columns, the second component is Cr.  If one were to convert the | ||||||
|  |     data to RGB one would need to examine two pixels from columns N and N+1 | ||||||
|  |     (where N is even) to deduce the RGB color. | ||||||
|  |  | ||||||
|  | IP Status | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Issues | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | New Procedures and Functions | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | New Tokens | ||||||
|  |  | ||||||
|  |     Accepted by the <internalFormat> and <format> parameters of | ||||||
|  |     TexImage2D and TexSubImage2D: | ||||||
|  |  | ||||||
|  |         GL_YCBCR_MESA                   0x8757 | ||||||
|  |  | ||||||
|  |     Accepted by the <type> parameter of TexImage2D and TexSubImage2D: | ||||||
|  |  | ||||||
|  |         GL_UNSIGNED_SHORT_8_8_MESA      0x85BA /* same as Apple's */ | ||||||
|  |         GL_UNSIGNED_SHORT_8_8_REV_MESA  0x85BB /* same as Apple's */ | ||||||
|  |  | ||||||
|  | Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation) | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization) | ||||||
|  |  | ||||||
|  |     In section 3.6.4, Rasterization of Pixel Rectangles, on page 102, | ||||||
|  |     add the following to Table 3.8 (Packed pixel formats): | ||||||
|  |      | ||||||
|  |     type Parameter                GL Data   Number of        Matching | ||||||
|  |      Token Name                    Type     Components     Pixel Formats | ||||||
|  |     --------------                -------   ----------     ------------- | ||||||
|  |     UNSIGNED_SHORT_8_8_MESA       ushort         3         YCBCR_422_MESA | ||||||
|  |     UNSIGNED_SHORT_8_8_REV_MESA   ushort         3         YCBCR_422_MESA | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     In section 3.6.4, Rasterization of Pixel Rectangles, on page 102, | ||||||
|  |     add the following to Table 3.10 (UNSIGNED_SHORT formats): | ||||||
|  |  | ||||||
|  |     UNSIGNED_SHORT_8_8_MESA: | ||||||
|  |  | ||||||
|  |       15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0 | ||||||
|  |     +-------------------------------+-------------------------------+ | ||||||
|  |     |              1st              |              2nd              | | ||||||
|  |     +-------------------------------+-------------------------------+ | ||||||
|  |                          | ||||||
|  |     UNSIGNED_SHORT_8_8_REV_MESA: | ||||||
|  |  | ||||||
|  |       15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0 | ||||||
|  |     +-------------------------------+-------------------------------+ | ||||||
|  |     |              2nd              |              1st              | | ||||||
|  |     +-------------------------------+-------------------------------+ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     In section 3.6.4, Rasterization of Pixel Rectangles, on page 102, | ||||||
|  |     add the following to Table 3.12 (Packed pixel fiedl assignments): | ||||||
|  |  | ||||||
|  |                        First       Second     Third      Fourth | ||||||
|  |     Format             Element     Element    Element    Element | ||||||
|  |     ------             -------     -------    -------    ------- | ||||||
|  |     YCBCR_422_MESA     luminance   chroma | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     In section 3.8.1, Texture Image Specification, on page 125, add | ||||||
|  |     another item to the list of TexImage2D and TexImage3D equivalence | ||||||
|  |     exceptions: | ||||||
|  |  | ||||||
|  |     * The value of internalformat and format may be YCBCR_MESA to | ||||||
|  |       indicate that the image data is in YCbCr format.  type must | ||||||
|  |       be either UNSIGNED_SHORT_8_8_MESA or UNSIGNED_SHORT_8_8_REV_MESA | ||||||
|  |       as seen in tables 3.8 and 3.10.  Table 3.12 describes the mapping | ||||||
|  |       between Y and Cb/Cr to the components. | ||||||
|  |       If NV_texture_rectangle is supported target may also be | ||||||
|  |       TEXTURE_RECTANGLE_NV or PROXY_TEXTURE_RECTANGLE_NV. | ||||||
|  |       All pixel transfer operations are bypassed.  The texture is stored as | ||||||
|  |       YCbCr, not RGB.  Queries of the texture's red, green and blue component | ||||||
|  |       sizes will return zero. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     In section 3.8.1, Texture Image Specification, on page 126, add | ||||||
|  |     another item to the list of TexImage1D and TexImage2D equivalence | ||||||
|  |     exceptions: | ||||||
|  |  | ||||||
|  |     * The value of internalformat and format can not be YCBCR_MESA. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     In section 3.8.2, Alternate Texture Image Specification Commands, on | ||||||
|  |     page 129, insert this paragraph after the first full paragraph on the | ||||||
|  |     page: | ||||||
|  |  | ||||||
|  |          "If the internal storage format of the image being updated by | ||||||
|  |     TexSubImage2D is YCBCR_MESA then format must be YCBCR_MESA. | ||||||
|  |     The error INVALID_OPERATION will be generated otherwise." | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment | ||||||
|  | Operations and the Frame Buffer) | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions) | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to Chapter 6 of the OpenGL 1.4 Specification (State and | ||||||
|  | State Requests) | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to Appendix A of the OpenGL 1.4 Specification (Invariance) | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Additions to the AGL/GLX/WGL Specifications | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | GLX Protocol | ||||||
|  |  | ||||||
|  |     None | ||||||
|  |  | ||||||
|  | Errors | ||||||
|  |  | ||||||
|  |     INVALID_ENUM is generated by TexImage2D if <internalFormat> is | ||||||
|  |     MESA_YCBCR but <format> is not MESA_YCBCR. | ||||||
|  |  | ||||||
|  |     INVALID_ENUM is generated by TexImage2D if <format> is MESA_YCBCR but | ||||||
|  |     <internalFormat> is not MESA_YCBCR. | ||||||
|  |  | ||||||
|  |     INVALID_VALUE is generated by TexImage2D if <format> is MESA_YCBCR and | ||||||
|  |     <internalFormat> is MESA_YCBCR and <border> is not zero. | ||||||
|  |  | ||||||
|  |     INVALID_OPERATION is generated by TexSubImage2D if the internal image | ||||||
|  |     format is YCBCR_MESA and format is not YCBCR_MESA. | ||||||
|  |  | ||||||
|  |     INVALID_OPERATION is generated by CopyTexSubImage2D if the internal | ||||||
|  |     image is YCBCR_MESA. | ||||||
|  |      | ||||||
|  | New State | ||||||
|  |  | ||||||
|  |     Edit table 6.16 on page 231: change the type of TEXTURE_INTERNAL_FORMAT | ||||||
|  |     from n x Z42 to n x Z43 to indicate that internal format may also be | ||||||
|  |     YCBCR_MESA. | ||||||
|  |  | ||||||
|  | Revision History | ||||||
|  |  | ||||||
|  |     20 September 2002 - Initial draft | ||||||
							
								
								
									
										141
									
								
								docs/README.BEOS
									
									
									
									
									
								
							
							
						
						
									
										141
									
								
								docs/README.BEOS
									
									
									
									
									
								
							| @@ -1,102 +1,65 @@ | |||||||
|  | Mesa-4.0.3 BeOS R5 driver patch | ||||||
|  | Version alpha v0.3 | ||||||
|  |  | ||||||
|                          Mesa / BeOS Information | HOW TO BUILD: | ||||||
|  |  | ||||||
|  | 1) You need gcc 2.95.3 to be installed:  | ||||||
|  | http://www.bebits.com/app/2157 | ||||||
|  | Check your installed gcc version by running this command from a Terminal: | ||||||
|  | gcc -v | ||||||
|  |  | ||||||
|  | 2) Download Mesa-4.0.3 sources  | ||||||
|  | http://prdownloads.sourceforge.net/mesa3d/MesaLib-4.0.3.tar.gz?download | ||||||
|  |  | ||||||
| Introduction | 3) Extract official 4.0.3 sources code somewhere | ||||||
|  |  | ||||||
| Mesa 3.1 features a new driver for the BeOS.  The new driver implements | 4) Then, extract the BeOS driver patch at same place. This will  | ||||||
| a clone of the BGLView class.  This class, derived from BView, allows | overwrite modified sources and add BeOS-specific ones. | ||||||
| OpenGL rendering into a BeOS window. |  | ||||||
|  |  | ||||||
| Any application which uses the BGLView should be able to use Mesa | 5) Open a new Terminal window: | ||||||
| instead of Be's OpenGL without changing any code. |   $ cd /path/to/Mesa-4.0.3/src | ||||||
|  |   $ make -f Makefile.BeOS-R5 | ||||||
|  |  | ||||||
| Since Be's OpenGL implementation (as of R4) is basically just the | 6) Take a cup of coffee! | ||||||
| SGI sample implementation, it's pretty slow.  You'll see that Mesa |  | ||||||
| is considerably faster. |  | ||||||
|  |  | ||||||
|  | 7) When done, you should find a obj.x86/libGL.so | ||||||
|  |  | ||||||
|  | 8) To test this library as a Be Inc's one: | ||||||
|  | - rename /boot/beos/system/lib/libGL.so into libGL.so.r5 | ||||||
|  | - put/copy obj.x86/libGL.so file into /boot/home/config/lib directory | ||||||
|  | - run GLTeapot... | ||||||
|  |  | ||||||
| Source Code | To see more information, run your(s) GL app(s) from Terminal: | ||||||
|  |   $ export MESA_INFO=1 | ||||||
|  |   $ export MESA_DEBUG=1 | ||||||
|  |   $ myGLapp | ||||||
|  |   MMX cpu detected. | ||||||
|  |   Not testing OS support for SSE, leaving enabled. | ||||||
|  |   SSE cpu detected. | ||||||
|  |   Mesa GL_VERSION = 1.2 Mesa 4.0.3 | ||||||
|  |   Mesa GL_RENDERER = BGLView | ||||||
|  |   Mesa GL_VENDOR = Brian Paul | ||||||
|  |   Mesa GL_EXTENSIONS = GL_ARB_imaging GL_ARB_multitexture  | ||||||
|  |   [...] | ||||||
|  |   GL_SGIX_shadow GL_SGIX_shadow_ambient | ||||||
|  |   Mesa thread-safe: NO | ||||||
|  |   Mesa x86-optimized: YES | ||||||
|  |   Mesa sparc-optimized: NO     | ||||||
|  |  | ||||||
| The source code for the driver is in Mesa-3.1/src/BeOS/GLView.cpp | BUILD ISSUES: | ||||||
| It's not 100% finished at this time but many GLUT-based demos are | - If the build stop on math/m_*.c files, you're not using gcc 2.95.3. | ||||||
| working.  No optimizations have been made at this time. | - The Makefile.BeOS-R5 is set currently to build a non-debug x86/mmx/sse/3dnow optimized libGL.so. | ||||||
|  | It's a modified BeOS standard makefile, so editing it to follow your needs should be easy... | ||||||
|  | - NASM support instead of built-in gcc assembler (GAS) is not supported yet... | ||||||
|  | - "Mesa thread-safe: NO" is correct: the Mesa multithread support don't allow to share a gl context  | ||||||
|  | between any thread, only give you one thread <-> one context, which is inaccurate under BeOS...   | ||||||
|  |  | ||||||
|  | KNOWN LIMITATIONS & BUGS: | ||||||
|  | - BeOS driver only support software rendition ATM | ||||||
|  | - No BDirectWindow support yet, too. GLLife will not work for this reason. | ||||||
|  | - 3dnow support untested | ||||||
|  | - GLTeapot: object mouse control don't work | ||||||
|  | - GLTeapot: window resizing don't work | ||||||
|  | - many others: ALPHA VERSION, remember. | ||||||
|  |  | ||||||
|  | philippe.houdoin@free.fr | ||||||
| Compiling |  | ||||||
|  |  | ||||||
| In the Mesa-3.x directory type "make -f Makefile.X11 beos-r4". |  | ||||||
| When it finishes the libMesaGL.so and libMesaGLU.so libraries for |  | ||||||
| BeOS will be in the Mesa-3.x/lib/ directory. |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Example Programs |  | ||||||
|  |  | ||||||
| Look in the Mesa-3.x/BeOS/ directory for one or two BGLView demo |  | ||||||
| programs.  They should have been compiled along with the Mesa |  | ||||||
| library. |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| GLUT |  | ||||||
|  |  | ||||||
| A version of GLUT 2.5 for BeOS can be found in src-glut.beos/. |  | ||||||
| The original distribution can be obtained from |  | ||||||
| http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip |  | ||||||
|  |  | ||||||
| This is a special version of GLUT adapted for the BeOS.  I don't |  | ||||||
| believe Mark Kilgard's normal GLUT distribution includes BeOS |  | ||||||
| support. |  | ||||||
|  |  | ||||||
| It seems that you have to recompile GLUT with libMesaGL.so instead |  | ||||||
| of libGL.so in order for everything to work.  I'm not sure why. |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Special Features |  | ||||||
|  |  | ||||||
| Mesa's implementation of the BGLView class has an extra member |  | ||||||
| function:  CopySubBufferMESA().  It basically works like SwapBuffers() |  | ||||||
| but it only copies a sub region from the back buffer to the front |  | ||||||
| buffer.  This is a useful optimization for some applications. |  | ||||||
| If you use this method in your code be sure that you check at runtime |  | ||||||
| that you're actually using Mesa (with glGetString) so you don't |  | ||||||
| cause a fatal error when running with Be's OpenGL. |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Work Left To Do |  | ||||||
|  |  | ||||||
| Color index mode is not implemented yet. |  | ||||||
|  |  | ||||||
| Reading pixels from the front buffer not implemented yet. |  | ||||||
|  |  | ||||||
| There is also a BGLScreen class in BeOS for full-screen OpenGL |  | ||||||
| rendering.  This should also be implemented for Mesa. |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Old BeOS Driver |  | ||||||
|  |  | ||||||
| Mesa 2.6 had an earlier BeOS driver.  It was based on Mesa's Off-screen |  | ||||||
| rendering interface, not BGLView.  If you're interested in the older |  | ||||||
| driver you should get Mesa 2.6. |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| BeOS and Glide |  | ||||||
|  |  | ||||||
| Mesa 3.0 supported the 3Dfx/Glide library on Beos.  Download Mesa 3.0 |  | ||||||
| if interested.  Ideally, the 3Dfx/Glide support should be updated to |  | ||||||
| work with the new Mesa 3.1 BGLView implementation. |  | ||||||
|  |  | ||||||
| The Glide library hasn't been updated for BeOS R4, to my knowledge, as |  | ||||||
| of February, 1999. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| $Id: README.BEOS,v 1.6 1999/11/27 01:40:40 brianp Exp $ |  | ||||||
|   | |||||||
							
								
								
									
										211
									
								
								docs/README.DJ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										211
									
								
								docs/README.DJ
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,211 @@ | |||||||
|  | 			Mesa 4.0 DOS/DJGPP Port v1.1 | ||||||
|  | 			~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Description: | ||||||
|  | ~~~~~~~~~~~~ | ||||||
|  |  | ||||||
|  | Well, guess what... this is the DOS port of Mesa 4.0.4, for DJGPP fans... Whoa! | ||||||
|  | The driver has its origins in ddsample.c, written by Brian Paul and found by me | ||||||
|  | in Mesa 3.4.2. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Legal: | ||||||
|  | ~~~~~~ | ||||||
|  |  | ||||||
|  | Mesa copyright applies, provided this package is used within Mesa. For anything | ||||||
|  | else, see GPL. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Installation: | ||||||
|  | ~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
|  | Unzip and type: | ||||||
|  |  | ||||||
|  | 	make -f Makefile.DJ [OPTIONS...] | ||||||
|  |  | ||||||
|  | Available options: | ||||||
|  |  | ||||||
|  |      Environment variables: | ||||||
|  | 	CPU		optimize for the given processor. | ||||||
|  | 			default = k6 | ||||||
|  | 	BIG_OPT=1	crazy optimizations; not very useful, though... | ||||||
|  | 			default = no | ||||||
|  | 	GLIDE		absolute path to Glide library; used with FX. | ||||||
|  | 			default = $(TOP)/include/glide3 | ||||||
|  | 	FX=1		build for 3dfx Glide3; use it if you have the Glide | ||||||
|  | 			SDK (designed for your platform), and, of course, a | ||||||
|  | 			3dfx card... Note that this disables compilation of | ||||||
|  | 			actual DMesa code, as Glide does all the stuff! | ||||||
|  | 			default = no | ||||||
|  | 	HAVE_X86=1	optimize for i386. | ||||||
|  | 			default = no | ||||||
|  | 	HAVE_MMX=1	MMX instructions; use only if you assembler/compiler | ||||||
|  | 			supports MMX instruction set; backwards compatibility | ||||||
|  | 			with older processors is still preserved. | ||||||
|  | 			default = no | ||||||
|  | 	HAVE_SSE=1	(see HAVE_MMX) | ||||||
|  | 			default = no | ||||||
|  | 	HAVE_3DNOW=1	(see HAVE_MMX) | ||||||
|  | 			default = no | ||||||
|  |  | ||||||
|  |      Targets: | ||||||
|  | 	all:		build everything | ||||||
|  | 	libgl:		build GL | ||||||
|  | 	libglu:		build GLU | ||||||
|  | 	libglut:	build GLUT | ||||||
|  | 	clean:		remove object files | ||||||
|  | 	realclean:	remove all generated files | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Tested on: | ||||||
|  | 	CPU:		K6-2 (CXT) @500(412.5) MHz | ||||||
|  | 	Mainboard:	ViA Apollo VP2/97 w/ 128 MB SDRAM | ||||||
|  | 	Video card:	PowerColor Evil King3 (Voodoo3 3000) w/ 16384 kB SDRAM | ||||||
|  | 	DJGPP:		djdev 2.03 + gcc v3.1 + make v3.79.1 | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | FAQ: | ||||||
|  | ~~~~ | ||||||
|  |  | ||||||
|  | 1. Compilation | ||||||
|  |  | ||||||
|  |    Q) I tried to run `make' and it exits because `gcc' complains it cannot find | ||||||
|  |       some stupid file. | ||||||
|  |    A) You need LFN support. | ||||||
|  |    A) When compiling for Glide (FX=1), pay attention to Glide path. | ||||||
|  |  | ||||||
|  | 2. Dynamic modules | ||||||
|  |  | ||||||
|  |    Q) What are you mumbling about dynamic modules? | ||||||
|  |    A) You must have the DXE2 package (available on SimTel.Net, courtesy of | ||||||
|  |       Andrew Zabolotny) installed in order to build the dynamic modules. | ||||||
|  |  | ||||||
|  |    Q) I have DXE2, but I couln'd build the `dxe2gen.exe'. | ||||||
|  |    Q) I built `dxe2gen.exe', but it doesn't do the job right. | ||||||
|  |    A) There is a patched version on my web page. | ||||||
|  |  | ||||||
|  |    Q) DXE2 modules give me headaches... | ||||||
|  |    A) The DXE2 modules are not compulsory. The static libraries are still built | ||||||
|  |       and you can use them in the old-fashioned, classic way. For example: | ||||||
|  | 	gcc -o OUT.exe IN.c -lglut -lglu -lgl | ||||||
|  |  | ||||||
|  |    Q) Okay, DXE2 modules are built. How can I use them? | ||||||
|  |    A) Usage of the dynamic modules requires three things: | ||||||
|  | 	- include DMESADXE.H in one of the sources, so references inside | ||||||
|  | 	  dynamic modules will get resolved (or use `-include' directive). | ||||||
|  | 	- link against import libraries (libI*.a) and LIBDL.A, which will do | ||||||
|  | 	  the dynamic linkage job for you | ||||||
|  | 	- put the DXEs somewhere along the library path (LD_LIBRARY_PATH) or | ||||||
|  | 	  in the current directory | ||||||
|  |       For example: | ||||||
|  | 	gcc -o OUT.exe -include dmesadxe.h IN.c -ligl -liglu -liglut -ldl | ||||||
|  |  | ||||||
|  |    Q) The application dies with "Abort!" due to unresolved symbols. | ||||||
|  |    A) This is bad! Extract the unresolved symbol list from this module. For | ||||||
|  |       example: | ||||||
|  | 	dxe2gen --show-unres gl.dxe > u | ||||||
|  |       Check DMESADXE.H; the symbols in `u' must either be present here or be | ||||||
|  |       exported from another module that has to be loaded before your faulting | ||||||
|  |       one. Then recompile. | ||||||
|  |  | ||||||
|  | 3. Using Mesa for DJGPP | ||||||
|  |  | ||||||
|  |    Q) Does this build work in Win9x? | ||||||
|  |    A) Yes. | ||||||
|  |  | ||||||
|  |    Q) Does it work under NT (W2k, XP) core? | ||||||
|  |    A) Uh... probably not! | ||||||
|  |  | ||||||
|  |    Q) I made a simple application and it does nothing. It exits right away. Not | ||||||
|  |       even a blank screen. | ||||||
|  |    A) The current version supports only RGB[A] modes, for it made no sense to | ||||||
|  |       me to endorse color-index (aka palette) modes. | ||||||
|  |    A) Single-buffered is not allowed at all. Until I can find a way to use | ||||||
|  |       *REAL* hardware acceleration, it won't get implemented. | ||||||
|  |    A) Another weird "feature" is that buffer width must be multiple of 4 (I'm a | ||||||
|  |       lazy programmer and I found that the easiest way to keep buffer handling | ||||||
|  |       at peak performance ;-). | ||||||
|  |  | ||||||
|  |    Q) My demo doesn't display text. I know I used the glut font routines! | ||||||
|  |    A) Then you probably use GLUT as a DXE. Well, there is no direct access to | ||||||
|  |       variables due to the way DXE works. Read the documentation. The author of | ||||||
|  |       GLUT took this into account for _WIN32 DLL's only; I don't want to modify | ||||||
|  |       his headers. The only workaround is to link GLUT the old way :-( | ||||||
|  |  | ||||||
|  |    Q) The DJGPP port of Mesa is so SLOOOW! The Win32 OpenGL performs so much | ||||||
|  |       better... | ||||||
|  |    A) Is that a question? If you have a Voodoo3/Banshee card, you're lucky. The | ||||||
|  |       Glide port is on my web page. If you haven't, sorry; everything is done | ||||||
|  |       in software. Suggestions? | ||||||
|  |  | ||||||
|  |    Q) I have a super/mega/ultra monitor and all you can do is 60Hz? My eyes are | ||||||
|  |       leaking from the orbits... | ||||||
|  |    A) If you were compiling for Glide, see Glide info. If not, be aware that | ||||||
|  |       refresh rate control works only for VESA 3.0. The environment variable | ||||||
|  |       DMESA_REFRESH sets the default screen refresh. For example: | ||||||
|  | 	set DMESA_REFRESH=75 | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | libGLUT (the toolkit): | ||||||
|  | ~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
|  | Well, this "skeletal" GLUT implementation is not mine. Thanks should go to | ||||||
|  | Bernhard Tschirren, Mark Kilgard, Brian Paul and probably others (or probably | ||||||
|  | not ;-). I only changed it to be self-standing (Allegro-free). The keyboard, | ||||||
|  | mouse and timer drivers were inspired from an old project of mine (D3Xl) and | ||||||
|  | fixed with many Allegro "infusions"; I deeply thank to Shawn Hargreaves et co. | ||||||
|  |  | ||||||
|  | My keyboard driver used only scancodes, but since GLUT requires ASCII values | ||||||
|  | for keys, I borrowed the translation tables (and maybe more) from Allegro. | ||||||
|  | Ctrl-Alt-Del (plus Ctrl-Alt-End, for Windows users) will shut down the GLUT | ||||||
|  | engine unconditionally: it will raise SIGINT, which in turn will call the | ||||||
|  | destructors (let's hope), thus cleaning up your/my mess ;-) NB: since the | ||||||
|  | DJGPP guys ensured signal handlers won't go beyond program's space (and since | ||||||
|  | dynamic modules shall) the SIGINT can't be hooked (well, it can, but it is | ||||||
|  | useless), therefore you must live with the 'Exiting due to signal SIGINT' | ||||||
|  | message... | ||||||
|  |  | ||||||
|  | The mouse driver is far from complete (lack of positioning, drawing, etc), | ||||||
|  | but is enough to make almost all the demos work. | ||||||
|  |  | ||||||
|  | The timer is pretty versatile for it supports multiple timers with different | ||||||
|  | frequencies. It may not be the most accurate timer in the known universe, but | ||||||
|  | I think it's OK. Take this example: you have timer A with a very high rate, | ||||||
|  | and then you have timer B with very low rate compared to A; now, A ticks OK, | ||||||
|  | but timer B will probably loose precision! | ||||||
|  |  | ||||||
|  | As an addition, stdout and stderr are redirected and dumped upon exit. This | ||||||
|  | means that printf can be safely called during graphics, but all messages come | ||||||
|  | in bulk! A bit of a hack, I know, but I think it's better than to miss them | ||||||
|  | at all. "Borrowed" from RHIDE (Robert Hoehne) or SETEDIT (Salvador Eduardo | ||||||
|  | Tropea)... I'm not sure. | ||||||
|  |  | ||||||
|  | Window creating defaults: 640x480x16 at (0,0), 8-bit stencil, 16-bit accum. | ||||||
|  | However, the video mode is chosen in such a way that first window will fit. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | History: | ||||||
|  | ~~~~~~~~ | ||||||
|  |  | ||||||
|  | v1.0	mar-2002	initial release | ||||||
|  | v1.1	sep-2002	+ added 3dfx Glide3 support | ||||||
|  | 			+ added refresh rate control | ||||||
|  | 			+ added fonts in glut | ||||||
|  | 			* lots of minor changes | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Contact: | ||||||
|  | ~~~~~~~~ | ||||||
|  |  | ||||||
|  | Name:   Borca Daniel | ||||||
|  | E-mail: dborca@yahoo.com | ||||||
|  | WWW:    http://www.geocities.com/dborca/ | ||||||
| @@ -1,12 +1,13 @@ | |||||||
| File: docs/README.WIN32 | File: docs/README.WIN32 | ||||||
|  |  | ||||||
| Last updated: Oct 15, 2001 - Karl Schultz - kschultz@users.sourceforge.net | Last updated: Aug 15, 2002 - Karl Schultz - kschultz@users.sourceforge.net | ||||||
|  |  | ||||||
| Quick Start | Quick Start | ||||||
|  |  | ||||||
| If you have Microsoft Visual C++ 6.0 installed, simply go to the top directory | If you have Microsoft Visual C++ 6.0 installed, simply go to the top directory | ||||||
| of the Mesa distribution and type 'nmake -f Makefile.win NODEBUG=1' for | of the Mesa distribution and type 'nmake -f Makefile.win NODEBUG=1' for | ||||||
| an optimized build. | an optimized build.  Note that you may have to run ...VC98/BIN/VCVARS32.BAT | ||||||
|  | to set up the appropriate compiler environment variables. | ||||||
|  |  | ||||||
| Details and Notes | Details and Notes | ||||||
|  |  | ||||||
| @@ -17,9 +18,12 @@ Details and Notes | |||||||
|   demos      a handful of demo executables. |   demos      a handful of demo executables. | ||||||
|  |  | ||||||
| - After building, you can copy the above DLL files to a place in your PATH | - After building, you can copy the above DLL files to a place in your PATH | ||||||
|   or to the demos directory if you just want to give the demos a try. |   such as $SystemRoot/SYSTEM32.  If you don't like putting things in a | ||||||
|   The DLL and LIB files are copied to the ./lib directory.  The makefile |   system directory, place them in the same directory as the executable(s). | ||||||
|   creates this directory if it does not already exist. |   For example, you can copy the DLL files to the demos directory if you | ||||||
|  |   just want to run the demos. The build process places the DLL and LIB files | ||||||
|  |   in the ./lib directory.  The makefile creates this directory if it does  | ||||||
|  |   not already exist. | ||||||
|  |  | ||||||
| - The make targets 'clean' and 'clobber' will remove objects and libraries. | - The make targets 'clean' and 'clobber' will remove objects and libraries. | ||||||
|   But the files in ./lib are never cleaned. |   But the files in ./lib are never cleaned. | ||||||
| @@ -52,10 +56,7 @@ Details and Notes | |||||||
|   difficult to modify the makefiles to generate them. |   difficult to modify the makefiles to generate them. | ||||||
|  |  | ||||||
| - The si-glu sources are used to build the GLU libs.  This was done | - The si-glu sources are used to build the GLU libs.  This was done | ||||||
|   mainly to get the better tessellator code.  However the C++ NURBS |   mainly to get the better tessellator code. | ||||||
|   code is not built.  If you need NURBS, consider modifying the |  | ||||||
|   makefiles to build the C++ code or try to build the older GLU |  | ||||||
|   code in src-glu. |  | ||||||
|  |  | ||||||
| - The osmesa driver builds and should work on Windows as well as | - The osmesa driver builds and should work on Windows as well as | ||||||
|   any other platform. |   any other platform. | ||||||
| @@ -68,11 +69,11 @@ Details and Notes | |||||||
|   paths for the rasterizers.  See src/osmesa/osmesa.c for some good |   paths for the rasterizers.  See src/osmesa/osmesa.c for some good | ||||||
|   examples. |   examples. | ||||||
|  |  | ||||||
| - There is DirectDraw support in the Windows driver, but I do not | - There is DirectDraw support in the Windows driver, updated by | ||||||
|   know if it compiles or works.  If you have an application that |   Daniel Slater.  You'll need to uncomment the #define DDRAW line | ||||||
|   does not draw much in a frame, but needs a higher framerate, then |   in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries | ||||||
|   it may pay to turn on the DirectDraw code, since DD often performs |   in src/Makefile.win.  On some systems, you will acheive significantly | ||||||
|   the off-screen to on-screen blit faster than GDI. |   higher framerates with DirectDraw. | ||||||
|  |  | ||||||
| - Some of the more specialized code like FX drivers, stereo, and | - Some of the more specialized code like FX drivers, stereo, and | ||||||
|   parallel support isn't compiled or tested.  I left much of this |   parallel support isn't compiled or tested.  I left much of this | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
|  |  | ||||||
|                        Mesa 4.0 Unix/X11 Information |                       Mesa 4.0.4 Unix/X11 Information | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -25,7 +25,7 @@ There are two ways to compile Mesa on Unix/X11 systems: | |||||||
|  |  | ||||||
|  |  | ||||||
| The top-level makefile will execute the makefiles in a number of sub- | The top-level makefile will execute the makefiles in a number of sub- | ||||||
| directories.  When finished, the Mesa libraries will be in the Mesa-4.0/lib/ | directories.  When finished, the Mesa libraries will be in the Mesa-4.0.4/lib/ | ||||||
| directory.  A few GLUT demos in the demos/ directory should be ready to run. | directory.  A few GLUT demos in the demos/ directory should be ready to run. | ||||||
|  |  | ||||||
| If you also downloaded and unpacked the demos there should be executables | If you also downloaded and unpacked the demos there should be executables | ||||||
| @@ -323,4 +323,4 @@ Summary of X-related environment variables: | |||||||
|  |  | ||||||
|  |  | ||||||
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ||||||
| $Id: README.X11,v 3.8 2001/09/23 16:10:02 brianp Exp $ | $Id: README.X11,v 3.8.2.4 2002/09/03 17:50:21 brianp Exp $ | ||||||
|   | |||||||
							
								
								
									
										22
									
								
								docs/RELNOTES-3.4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								docs/RELNOTES-3.4
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  |  | ||||||
|  |                          Mesa 3.4 release notes | ||||||
|  |  | ||||||
|  |                              November 3, 2000 | ||||||
|  |  | ||||||
|  |                              PLEASE READ!!!! | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Introduction | ||||||
|  | ------------ | ||||||
|  |  | ||||||
|  | Mesa uses an even/odd version number scheme like the Linux kernel. | ||||||
|  | Odd numbered versions (such as 3.3) designate new developmental releases. | ||||||
|  | Even numbered versions (such as 3.4) designate stable releases. | ||||||
|  |  | ||||||
|  | Mesa 3.4 simply fixes bugs found in the Mesa 3.3 release.  For details, | ||||||
|  | see the VERSIONS file. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ---------------------------------------------------------------------- | ||||||
|  | $Id: RELNOTES-3.4,v 1.1.4.1 2002/03/23 02:36:52 brianp Exp $ | ||||||
							
								
								
									
										22
									
								
								docs/RELNOTES-4.0.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								docs/RELNOTES-4.0.1
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  |  | ||||||
|  |                           Mesa 4.0.1 release notes | ||||||
|  |  | ||||||
|  |                              December 17, 2001 | ||||||
|  |  | ||||||
|  |                               PLEASE READ!!!! | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Introduction | ||||||
|  | ------------ | ||||||
|  |  | ||||||
|  | Mesa uses an even/odd version number scheme like the Linux kernel. | ||||||
|  | Odd numbered versions (such as 3.3) designate new developmental releases. | ||||||
|  | Even numbered versions (such as 3.4) designate stable releases. | ||||||
|  |  | ||||||
|  | Mesa 4.0.1 only contains bug fixes since version 4.0. | ||||||
|  |  | ||||||
|  | See the docs/VERSIONS file for the list of bug fixes. | ||||||
|  |  | ||||||
|  | ---------------------------------------------------------------------- | ||||||
|  | $Id: RELNOTES-4.0.1,v 1.1.2.2 2001/12/17 19:43:38 brianp Exp $ | ||||||
							
								
								
									
										50
									
								
								docs/RELNOTES-4.0.2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								docs/RELNOTES-4.0.2
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | |||||||
|  |  | ||||||
|  |                           Mesa 4.0.2 release notes | ||||||
|  |  | ||||||
|  |                                April 2, 2002 | ||||||
|  |  | ||||||
|  |                               PLEASE READ!!!! | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Introduction | ||||||
|  | ------------ | ||||||
|  |  | ||||||
|  | Mesa uses an even/odd version number scheme like the Linux kernel. | ||||||
|  | Odd numbered versions (such as 3.3) designate new developmental releases. | ||||||
|  | Even numbered versions (such as 3.4) designate stable releases. | ||||||
|  |  | ||||||
|  | Mesa 4.0.2 only contains bug fixes and a new DOS driver since version 4.0.1. | ||||||
|  |  | ||||||
|  | See the docs/VERSIONS file for the list of bug fixes. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Device Drivers | ||||||
|  | -------------- | ||||||
|  |  | ||||||
|  | Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the | ||||||
|  | device driver.  If the driver enables all the ARB extensions which are part | ||||||
|  | of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3".  Otherwise, | ||||||
|  | it'll return "1.2". | ||||||
|  |  | ||||||
|  | A number of Mesa's software drivers haven't been actively maintained for | ||||||
|  | some time.  We rely on volunteers to maintain many of the drivers. | ||||||
|  | Here's the current status of all included drivers: | ||||||
|  |  | ||||||
|  | Driver			Status | ||||||
|  | ----------------------	--------------------- | ||||||
|  | XMesa (Xlib)		implements OpenGL 1.3 | ||||||
|  | OSMesa (off-screen)	implements OpenGL 1.3 | ||||||
|  | FX (3dfx Voodoo1/2)	implements OpenGL 1.3 | ||||||
|  | SVGA			implements OpenGL 1.3 | ||||||
|  | Wind River UGL		implements OpenGL 1.3 | ||||||
|  | Windows/Win32		implements OpenGL 1.3 | ||||||
|  | DOS/DJGPP		implements OpenGL 1.3 (new in Mesa 4.0.2) | ||||||
|  | GGI			needs updating | ||||||
|  | BeOS			needs updating | ||||||
|  | Allegro			needs updating | ||||||
|  | D3D			needs updating | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ---------------------------------------------------------------------- | ||||||
|  | $Id: RELNOTES-4.0.2,v 1.1.2.3 2002/04/01 16:54:11 brianp Exp $ | ||||||
							
								
								
									
										52
									
								
								docs/RELNOTES-4.0.3
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/RELNOTES-4.0.3
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  |  | ||||||
|  |                           Mesa 4.0.3 release notes | ||||||
|  |  | ||||||
|  |                                June 25, 2002 | ||||||
|  |  | ||||||
|  |                               PLEASE READ!!!! | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Introduction | ||||||
|  | ------------ | ||||||
|  |  | ||||||
|  | Mesa uses an even/odd version number scheme like the Linux kernel. | ||||||
|  | Odd numbered versions (such as 3.3) designate new developmental releases. | ||||||
|  | Even numbered versions (such as 3.4) designate stable releases. | ||||||
|  |  | ||||||
|  | Mesa 4.0.3 basically just contains bug fixes version 4.0.2. | ||||||
|  |  | ||||||
|  | See the docs/VERSIONS file for the list of bug fixes. | ||||||
|  |  | ||||||
|  | The GGI driver has been updated, thanks to Filip Spacek. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Device Drivers | ||||||
|  | -------------- | ||||||
|  |  | ||||||
|  | Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the | ||||||
|  | device driver.  If the driver enables all the ARB extensions which are part | ||||||
|  | of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3".  Otherwise, | ||||||
|  | it'll return "1.2". | ||||||
|  |  | ||||||
|  | A number of Mesa's software drivers haven't been actively maintained for | ||||||
|  | some time.  We rely on volunteers to maintain many of the drivers. | ||||||
|  | Here's the current status of all included drivers: | ||||||
|  |  | ||||||
|  | Driver			Status | ||||||
|  | ----------------------	--------------------- | ||||||
|  | XMesa (Xlib)		implements OpenGL 1.3 | ||||||
|  | OSMesa (off-screen)	implements OpenGL 1.3 | ||||||
|  | FX (3dfx Voodoo1/2)	implements OpenGL 1.3 | ||||||
|  | SVGA			implements OpenGL 1.3 | ||||||
|  | Wind River UGL		implements OpenGL 1.3 | ||||||
|  | Windows/Win32		implements OpenGL 1.3 | ||||||
|  | DOS/DJGPP		implements OpenGL 1.3 (new in Mesa 4.0.2) | ||||||
|  | GGI			implements OpenGL 1.3 | ||||||
|  | BeOS			needs updating | ||||||
|  | Allegro			needs updating | ||||||
|  | D3D			needs updating | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ---------------------------------------------------------------------- | ||||||
|  | $Id: RELNOTES-4.0.3,v 1.1.2.3 2002/06/24 20:44:58 brianp Exp $ | ||||||
							
								
								
									
										114
									
								
								docs/VERSIONS
									
									
									
									
									
								
							
							
						
						
									
										114
									
								
								docs/VERSIONS
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| $Id: VERSIONS,v 1.74 2001/10/22 22:45:18 brianp Exp $ | $Id: VERSIONS,v 1.73.2.41 2002/10/02 17:36:59 brianp Exp $ | ||||||
|  |  | ||||||
|  |  | ||||||
| Mesa Version History | Mesa Version History | ||||||
| @@ -899,8 +899,114 @@ Mesa Version History | |||||||
| 	- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky) | 	- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky) | ||||||
|  |  | ||||||
|  |  | ||||||
| 4.1  Month, ??, 2002 | 4.0.1  December 17, 2001 | ||||||
|     New: |     New: | ||||||
| 	-  | 	- better sub-pixel sample positions for AA triangles (Ray Tice) | ||||||
|  | 	- slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO) | ||||||
|     Bug fixes: |     Bug fixes: | ||||||
| 	-  | 	- added missing break statements in glGet*() for multisample cases | ||||||
|  | 	- fixed uninitialized hash table mutex bug (display lists / texobjs) | ||||||
|  | 	- fixed bad teximage error check conditional (bug 476846) | ||||||
|  | 	- fixed demos readtex.c compilation problem on Windows (Karl Schultz) | ||||||
|  | 	- added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT | ||||||
|  | 	- silence some compiler warnings (gcc 2.96) | ||||||
|  | 	- enable the #define GL_VERSION_1_3 in GL/gl.h | ||||||
|  | 	- added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h | ||||||
|  | 	- fixed glu.h typedef problem found with MSDev 6.0 | ||||||
|  | 	- build libGL.so with -Bsymbolic (fixes bug found with Chromium) | ||||||
|  | 	- added missing 'const' to glXGetContextIDEXT() in glxext.h | ||||||
|  | 	- fixed a few glXGetProcAddress() errors (texture compression, etc) | ||||||
|  | 	- fixed start index bug in compiled vertex arrays (Keith) | ||||||
|  | 	- fixed compilation problems in src/SPARC/glapi_sparc.S | ||||||
|  | 	- fixed triangle strip "parity" bug found in VTK medical1 demo (Keith) | ||||||
|  | 	- use glXGetProcAddressARB in GLUT to avoid extension linking problems | ||||||
|  | 	- provoking vertex of flat-shaded, color-index triangles was wrong | ||||||
|  | 	- fixed a few display list bugs (GLUT walker, molecule, etc) (Keith) | ||||||
|  | 	- glTexParameter didn't flush the vertex buffer (Ray Tice) | ||||||
|  | 	- feedback attributes for glDraw/CopyPixels and glBitmap were wrong | ||||||
|  | 	- fixed bug in normal length caching (ParaView lighting bug) | ||||||
|  | 	- fixed separate_specular color bug found in Chimera (18 Dec 2001) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 4.0.2  April 2, 2002 | ||||||
|  |     New: | ||||||
|  | 	- New DOS (DJGPP) driver written by Daniel Borca | ||||||
|  | 	- New driver interface functions for TCL drivers (such as Radeon DRI) | ||||||
|  | 	- GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32" | ||||||
|  | 	  if using deep color channels | ||||||
|  | 	- latest GL/glext.h and GL/glxext.h headers from SGI | ||||||
|  |     Bug fixes: | ||||||
|  | 	- GL_BLEND with non-black texture env color wasn't always correct | ||||||
|  | 	- GL_REPLACE with GL_RGB texture format wasn't always correct (alpha) | ||||||
|  | 	- glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken | ||||||
|  | 	- glReadPixels was sometimes mistakenly clipped by the scissor box | ||||||
|  | 	- glDraw/ReadPixels didn't catch all the errors that they should have | ||||||
|  | 	- Fixed 24bpp rendering problem in Windows driver (Karl Schultz) | ||||||
|  | 	- 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c) | ||||||
|  | 	- Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP) | ||||||
|  | 	- glColorMask as sometimes effecting glXSwapBuffers() | ||||||
|  | 	- fixed a potential bug in XMesaGarbageCollect() | ||||||
|  | 	- N threads rendering into one window didn't work reliably | ||||||
|  | 	- glCopyPixels didn't work for deep color channels | ||||||
|  | 	- improved 8 -> 16bit/channel texture image conversion (Gerk Huisma) | ||||||
|  | 	- glPopAttrib() didn't correctly restore user clip planes | ||||||
|  | 	- user clip planes failed for some perspective projections (Chromium) | ||||||
|  |     Known bugs: | ||||||
|  | 	- mipmap LOD computation | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 4.0.3  June 25, 2002 | ||||||
|  |     New: | ||||||
|  | 	- updated GL/glext.h file (version 15) | ||||||
|  | 	- corrected MMX blend code (Jose Fonseca) | ||||||
|  | 	- support for software-based alpha planes in Windows driver | ||||||
|  | 	- updated GGI driver (Filip Spacek) | ||||||
|  |     Bug fixes: | ||||||
|  | 	- glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens | ||||||
|  | 	- OSMesaMakeCurrent() didn't recognize buffer size changes | ||||||
|  | 	- assorted conformance fixes for 16-bit/channel rendering | ||||||
|  | 	- texcombine alpha subtraction mode was broken | ||||||
|  | 	- fixed lighting bug with non-uniform scaling and display lists | ||||||
|  | 	- fixed bug when deleting shared display lists | ||||||
|  | 	- disabled SPARC cliptest assembly code (Mesa bug 544665) | ||||||
|  | 	- fixed a couple Solaris compilation/link problems | ||||||
|  | 	- blending clipped glDrawPixels didn't always work | ||||||
|  | 	- glGetTexImage() didn't accept packed pixel types | ||||||
|  | 	- glPixelMapu[is]v() could explode given too large of pixelmap | ||||||
|  | 	- glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT | ||||||
|  | 	- glXCopyContext() could lead to segfaults | ||||||
|  | 	- glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665) | ||||||
|  |     Changes: | ||||||
|  | 	- lots of C++ (g++) code clean-ups | ||||||
|  | 	- lots of T&L updates for the Radeon DRI driver | ||||||
|  |     Known bugs: | ||||||
|  | 	- mipmap LOD computation (fixed for Mesa 4.1) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 4.0.4  October 3, 2002 | ||||||
|  |     New: | ||||||
|  | 	- GL_NV_texture_rectangle extension | ||||||
|  | 	- updated glext.h header (version 17) | ||||||
|  | 	- updated DOS driver (Daniel Borca) | ||||||
|  | 	- updated BeOS R5 driver (Philippe Houdoin) | ||||||
|  | 	- added GL_IBM_texture_mirror_repeat | ||||||
|  | 	- glxinfo now takes -l option to print interesting OpenGL limits info | ||||||
|  | 	- GL_MESA_ycbcr_texture extension | ||||||
|  | 	- GL_APPLE_client_storage extension (for some DRI drivers only) | ||||||
|  | 	- GL_MESA_pack_invert extension | ||||||
|  |     Bug fixes: | ||||||
|  | 	- fixed GL_LINEAR fog bug by adding clamping | ||||||
|  | 	- fixed FP exceptions found using Alpha CPU | ||||||
|  | 	- 3dfx MESA_GLX_FX=window (render to window) didn't work | ||||||
|  | 	- fixed memory leak in wglCreateContest (Karl Schultz) | ||||||
|  | 	- define GLAPIENTRY and GLAPI if undefined in glu.h | ||||||
|  | 	- wglGetProcAddress didn't handle all API functions | ||||||
|  | 	- when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map | ||||||
|  | 	- removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc() | ||||||
|  | 	- error checking in compressed tex image functions had some glitches | ||||||
|  | 	- fixed AIX compile problem in src/config.c | ||||||
|  | 	- glGetTexImage was using pixel unpacking instead of packing params | ||||||
|  | 	- auto-mipmap generation for cube maps was incorrect | ||||||
|  |     Changes: | ||||||
|  | 	- max texture units reduced to six to accomodate texture rectangles | ||||||
|  | 	- removed unfinished GL_MESA_sprite_point extension code | ||||||
|   | |||||||
							
								
								
									
										77
									
								
								include/GL/dmesa.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								include/GL/dmesa.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,77 @@ | |||||||
|  | /* | ||||||
|  |  * 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 device driver v1.0 for Mesa 4.0 | ||||||
|  |  * | ||||||
|  |  *  Copyright (C) 2002 - Borca Daniel | ||||||
|  |  *  Email : dborca@yahoo.com | ||||||
|  |  *  Web   : http://www.geocities.com/dborca | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #ifndef DMESA_included | ||||||
|  | #define DMESA_included | ||||||
|  |  | ||||||
|  | #define DMESA_MAJOR_VERSION 4 | ||||||
|  | #define DMESA_MINOR_VERSION 0 | ||||||
|  |  | ||||||
|  | typedef struct dmesa_context *DMesaContext; | ||||||
|  | typedef struct dmesa_visual *DMesaVisual; | ||||||
|  | typedef struct dmesa_buffer *DMesaBuffer; | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | extern "C" { | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | DMesaVisual DMesaCreateVisual (GLint width, GLint height, GLint colDepth, | ||||||
|  |                                GLboolean dbFlag, GLint depthSize, | ||||||
|  |                                GLint stencilSize, | ||||||
|  |                                GLint accumSize); | ||||||
|  |  | ||||||
|  | void DMesaDestroyVisual (DMesaVisual v); | ||||||
|  |  | ||||||
|  | DMesaBuffer DMesaCreateBuffer (DMesaVisual visual, | ||||||
|  |                                GLint xpos, GLint ypos, | ||||||
|  |                                GLint width, GLint height); | ||||||
|  |  | ||||||
|  | void DMesaDestroyBuffer (DMesaBuffer b); | ||||||
|  |  | ||||||
|  | DMesaContext DMesaCreateContext (DMesaVisual visual, DMesaContext share); | ||||||
|  |  | ||||||
|  | void DMesaDestroyContext (DMesaContext c); | ||||||
|  |  | ||||||
|  | GLboolean DMesaViewport (DMesaBuffer b, | ||||||
|  |                          GLint xpos, GLint ypos, | ||||||
|  |                          GLint width, GLint height); | ||||||
|  |  | ||||||
|  | GLboolean DMesaMakeCurrent (DMesaContext c, DMesaBuffer b); | ||||||
|  |  | ||||||
|  | void DMesaSwapBuffers (DMesaBuffer b); | ||||||
|  |  | ||||||
|  | #ifdef __cplusplus | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #endif | ||||||
| @@ -1,10 +1,11 @@ | |||||||
| /* $Id: ggimesa.h,v 1.3 2000/02/09 19:03:28 brianp Exp $ */ | /* $Id: ggimesa.h,v 1.3.6.1 2002/06/10 15:16:16 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Mesa 3-D graphics library |  * Mesa 3-D graphics library GGI bindings (GGIGL [giggle]) | ||||||
|  * Version:  3.3 |  * Version:  4.0 | ||||||
|  * Copyright (C) 1995-2000  Brian Paul |  * Copyright (C) 1995-2000  Brian Paul | ||||||
|  * Copyright (C) 1998  Uwe Maurer |  * Copyright (C) 1998  Uwe Maurer | ||||||
|  |  * Copyrigth (C) 2001 Filip Spacek | ||||||
|  * |  * | ||||||
|  * This library is free software; you can redistribute it and/or |  * This library is free software; you can redistribute it and/or | ||||||
|  * modify it under the terms of the GNU Library General Public |  * modify it under the terms of the GNU Library General Public | ||||||
| @@ -25,34 +26,59 @@ | |||||||
| #ifndef GGIMESA_H | #ifndef GGIMESA_H | ||||||
| #define GGIMESA_H | #define GGIMESA_H | ||||||
|  |  | ||||||
|  | #define GGIMESA_MAJOR_VERSION 4 | ||||||
| #define GGIMESA_MAJOR_VERSION 3 | #define GGIMESA_MINOR_VERSION 0 | ||||||
| #define GGIMESA_MINOR_VERSION 3 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| extern "C" { | extern "C" { | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #include "GL/gl.h" |  | ||||||
|  |  | ||||||
|  |  | ||||||
| typedef struct ggi_mesa_context *GGIMesaContext; |  | ||||||
|  |  | ||||||
| #include <ggi/ggi.h> | #include <ggi/ggi.h> | ||||||
|  | #include "GL/gl.h" | ||||||
|  |    | ||||||
|  | typedef struct ggi_mesa_context *ggi_mesa_context_t; | ||||||
|  |  | ||||||
| extern GGIMesaContext GGIMesaCreateContext(void); | /* | ||||||
|  |  * Initialize Mesa GGI extension | ||||||
|  |  */ | ||||||
|  | int ggiMesaInit(void); | ||||||
|  | /* | ||||||
|  |  * Clean up Mesa GGI exension | ||||||
|  |  */ | ||||||
|  | int ggiMesaExit(void); | ||||||
|  |  | ||||||
| extern void GGIMesaDestroyContext(GGIMesaContext ctx); | /* | ||||||
|  |  * Attach Mesa GGI extension to the visual 'vis' | ||||||
|  |  */ | ||||||
|  | int ggiMesaAttach(ggi_visual_t vis); | ||||||
|  | /* | ||||||
|  |  * Detach Mesa GGI extension from the visual 'vis' | ||||||
|  |  */ | ||||||
|  | int ggiMesaDetach(ggi_visual_t vis); | ||||||
|  |  | ||||||
| extern void GGIMesaMakeCurrent(GGIMesaContext ctx); | int ggiMesaExtendVisual(ggi_visual_t vis, GLboolean alpha_flag, | ||||||
|  | 			GLboolean stereo_flag, GLint depth_size, | ||||||
|  | 			GLint stencil_size, GLint accum_red_size, | ||||||
|  | 			GLint accum_green_size, GLint accum_blue_size, | ||||||
|  | 			GLint accum_alpha_size, GLint num_samples); | ||||||
|  |  | ||||||
| extern GGIMesaContext GGIMesaGetCurrentContext(void); | /* | ||||||
|  |  * Create a new context capable of displaying on the visual vis. | ||||||
|  |  */ | ||||||
|  | ggi_mesa_context_t ggiMesaCreateContext(ggi_visual_t vis); | ||||||
|  | /* | ||||||
|  |  * Destroy the context 'ctx' | ||||||
|  |  */ | ||||||
|  | void ggiMesaDestroyContext(ggi_mesa_context_t ctx); | ||||||
|  |  | ||||||
| extern void GGIMesaSwapBuffers(void); | /* | ||||||
|  |  * Make context 'ctx' the current context and bind it to visual 'vis'. | ||||||
|  |  * Note that the context must have been created with respect to that visual. | ||||||
|  |  */ | ||||||
|  | void ggiMesaMakeCurrent(ggi_mesa_context_t ctx, ggi_visual_t vis); | ||||||
|  |  | ||||||
|  | void ggiMesaSwapBuffers(void); | ||||||
|  |  | ||||||
| extern int GGIMesaSetVisual(GGIMesaContext ctx, ggi_visual_t vis, |  | ||||||
| 			    GLboolean rgb_flag, GLboolean db_flag); |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										101
									
								
								include/GL/gl.h
									
									
									
									
									
								
							
							
						
						
									
										101
									
								
								include/GL/gl.h
									
									
									
									
									
								
							| @@ -1,10 +1,10 @@ | |||||||
| /* $Id: gl.h,v 1.59 2001/09/23 16:06:13 brianp Exp $ */ | /* $Id: gl.h,v 1.59.2.11 2002/09/21 17:12:10 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Mesa 3-D graphics library |  * Mesa 3-D graphics library | ||||||
|  * Version:  4.0 |  * Version:  4.0.4 | ||||||
|  * |  * | ||||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. |  * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. | ||||||
|  * |  * | ||||||
|  * Permission is hereby granted, free of charge, to any person obtaining a |  * Permission is hereby granted, free of charge, to any person obtaining a | ||||||
|  * copy of this software and associated documentation files (the "Software"), |  * copy of this software and associated documentation files (the "Software"), | ||||||
| @@ -63,6 +63,10 @@ | |||||||
| #  define GLAPIENTRY | #  define GLAPIENTRY | ||||||
| #endif /* WIN32 / CYGWIN bracket */ | #endif /* WIN32 / CYGWIN bracket */ | ||||||
|  |  | ||||||
|  | #if (defined(__BEOS__) && defined(__POWERPC__)) || defined(__QUICKDRAW__) | ||||||
|  | #  define PRAGMA_EXPORT_SUPPORTED		1 | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) && !defined(__CYGWIN__) | #if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) && !defined(__CYGWIN__) | ||||||
| #include <gl/mesa_wgl.h> | #include <gl/mesa_wgl.h> | ||||||
| #endif | #endif | ||||||
| @@ -84,7 +88,7 @@ extern "C" { | |||||||
|  |  | ||||||
| #define GL_VERSION_1_1   1 | #define GL_VERSION_1_1   1 | ||||||
| #define GL_VERSION_1_2   1 | #define GL_VERSION_1_2   1 | ||||||
| /*#define GL_VERSION_1_3   1  not yet */ | #define GL_VERSION_1_3   1 | ||||||
| #define GL_ARB_imaging   1 | #define GL_ARB_imaging   1 | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -1912,7 +1916,8 @@ GLAPI void GLAPIENTRY glMultTransposeMatrixf( const GLfloat m[16] ); | |||||||
|  |  | ||||||
| GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); | GLAPI void GLAPIENTRY glSampleCoverage( GLclampf value, GLboolean invert ); | ||||||
|  |  | ||||||
| GLAPI void GLAPIENTRY glSamplePass( GLenum pass ); |  | ||||||
|  | #if defined(GL_GLEXT_LEGACY) | ||||||
|  |  | ||||||
|  |  | ||||||
| /* | /* | ||||||
| @@ -1992,14 +1997,45 @@ GLAPI void GLAPIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v); | |||||||
| GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); | GLAPI void GLAPIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); | ||||||
| GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); | GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v); | ||||||
|  |  | ||||||
|  | typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); | ||||||
|  | typedef void (GLAPIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); | ||||||
|  |  | ||||||
| #endif /* GL_ARB_multitexture */ | #endif /* GL_ARB_multitexture */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #if defined(GL_GLEXT_LEGACY) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * 1. GL_EXT_abgr |  * 1. GL_EXT_abgr | ||||||
|  */ |  */ | ||||||
| @@ -2372,8 +2408,6 @@ GLAPI void GLAPIENTRY glUnlockArraysEXT( void ); | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * 197. GL_MESA_window_pos |  * 197. GL_MESA_window_pos | ||||||
|  */ |  */ | ||||||
| @@ -2488,21 +2522,50 @@ GLAPI void GLAPIENTRY glTracePointerRangeMESA( const GLvoid* first, const GLvoid | |||||||
| #endif /* GL_MESA_packed_depth_stencil */ | #endif /* GL_MESA_packed_depth_stencil */ | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * ??. GL_MESA_sprite_point |  | ||||||
|  */ |  | ||||||
| #ifndef GL_MESA_sprite_point |  | ||||||
| #define GL_MESA_sprite_point 1 |  | ||||||
|  |  | ||||||
| #define GL_SPRITE_POINT_MESA 0x8757  /* XXX not finalized! */ | #ifndef GL_MESA_ycbcr_texture | ||||||
|  | #define GL_MESA_ycbcr_texture 1 | ||||||
|  |  | ||||||
| #endif | #define GL_YCBCR_MESA				0x8757 | ||||||
|  | #define GL_UNSIGNED_SHORT_8_8_MESA		0x85BA /* same as Apple */ | ||||||
|  | #define GL_UNSIGNED_SHORT_8_8_REV_MESA		0x85BB /* same as Apple */ | ||||||
|  |  | ||||||
|  | #endif /* GL_MESA_texture_ycbcr */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #ifndef GL_MESA_pack_invert | ||||||
|  | #define GL_MESA_pack_invert 1 | ||||||
|  |  | ||||||
|  | #define GL_PACK_INVERT_MESA                     0x8758 | ||||||
|  |  | ||||||
|  | #endif /* GL_MESA_pack_invert */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #ifndef GL_APPLE_client_storage | ||||||
|  | #define GL_APPLE_client_storage 1 | ||||||
|  |  | ||||||
|  | #define GL_UNPACK_CLIENT_STORAGE_APPLE          0x85B2 | ||||||
|  |  | ||||||
|  | #endif /* GL_APPLE_client_storage */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #ifndef GL_APPLE_ycbcr_422 | ||||||
|  | #define GL_APPLE_ycbcr_422 1 | ||||||
|  |  | ||||||
|  | #define GL_YCBCR_422_APPLE			0x85B9 | ||||||
|  | #define GL_UNSIGNED_SHORT_8_8_APPLE		0x85BA | ||||||
|  | #define GL_UNSIGNED_SHORT_8_8_REV_APPLE		0x85BB | ||||||
|  |  | ||||||
|  | #endif /* GL_APPLE_ycbcr_422 */ | ||||||
|  |  | ||||||
|  |  | ||||||
| /********************************************************************** | /********************************************************************** | ||||||
|  * Begin system-specific stuff |  * Begin system-specific stuff | ||||||
|  */ |  */ | ||||||
| #if defined(__BEOS__) || defined(__QUICKDRAW__) | #if defined(PRAGMA_EXPORT_SUPPORTED) | ||||||
| #pragma export off | #pragma export off | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1244
									
								
								include/GL/glext.h
									
									
									
									
									
								
							
							
						
						
									
										1244
									
								
								include/GL/glext.h
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -36,6 +36,14 @@ | |||||||
|  |  | ||||||
| #include <GL/gl.h> | #include <GL/gl.h> | ||||||
|  |  | ||||||
|  | #ifndef GLAPIENTRY | ||||||
|  | #define GLAPIENTRY | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifndef GLAPI | ||||||
|  | #define GLAPI | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| extern "C" { | extern "C" { | ||||||
| #endif | #endif | ||||||
| @@ -250,10 +258,10 @@ typedef struct GLUquadric GLUquadric; | |||||||
| typedef struct GLUtesselator GLUtesselator; | typedef struct GLUtesselator GLUtesselator; | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| typedef struct GLUnurbs GLUnurbsObj; | typedef GLUnurbs GLUnurbsObj; | ||||||
| typedef struct GLUquadric GLUquadricObj; | typedef GLUquadric GLUquadricObj; | ||||||
| typedef struct GLUtesselator GLUtesselatorObj; | typedef GLUtesselator GLUtesselatorObj; | ||||||
| typedef struct GLUtesselator GLUtriangulatorObj; | typedef GLUtesselator GLUtriangulatorObj; | ||||||
|  |  | ||||||
| #define GLU_TESS_MAX_COORD 1.0e150 | #define GLU_TESS_MAX_COORD 1.0e150 | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| /* $Id: glx.h,v 1.33 2001/09/24 14:15:58 brianp Exp $ */ | /* $Id: glx.h,v 1.33.2.4 2002/09/20 17:36:33 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Mesa 3-D graphics library |  * Mesa 3-D graphics library | ||||||
|  * Version:  4.0 |  * Version:  4.0.3 | ||||||
|  *  |  *  | ||||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. |  * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. | ||||||
|  *  |  *  | ||||||
|  * Permission is hereby granted, free of charge, to any person obtaining a |  * Permission is hereby granted, free of charge, to any person obtaining a | ||||||
|  * copy of this software and associated documentation files (the "Software"), |  * copy of this software and associated documentation files (the "Software"), | ||||||
| @@ -172,8 +172,8 @@ extern "C" { | |||||||
| /* | /* | ||||||
|  * GLX 1.4 and later: |  * GLX 1.4 and later: | ||||||
|  */ |  */ | ||||||
| #define GLX_SAMPLE_BUFFERS_SGIS            100000 | #define GLX_SAMPLE_BUFFERS              0x186a0 /*100000*/ | ||||||
| #define GLX_SAMPLES_SGIS                   100001 | #define GLX_SAMPLES                     0x186a1 /*100001*/ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -297,7 +297,6 @@ extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable, | |||||||
| extern void (*glXGetProcAddress(const GLubyte *procname))(); | extern void (*glXGetProcAddress(const GLubyte *procname))(); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifndef GLX_GLXEXT_LEGACY | #ifndef GLX_GLXEXT_LEGACY | ||||||
|  |  | ||||||
| #include <GL/glxext.h> | #include <GL/glxext.h> | ||||||
| @@ -453,6 +452,38 @@ extern void (*glXGetProcAddressARB(const GLubyte *procName))(); | |||||||
| #endif /* GLX_GLXEXT_LEGACY */ | #endif /* GLX_GLXEXT_LEGACY */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  ** The following aren't in glxext.h yet. | ||||||
|  |  **/ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * ???. GLX_NV_vertex_array_range | ||||||
|  |  */ | ||||||
|  | #ifndef GLX_NV_vertex_array_range | ||||||
|  | #define GLX_NV_vertex_array_range | ||||||
|  |  | ||||||
|  | extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); | ||||||
|  | extern void glXFreeMemoryNV(GLvoid *pointer); | ||||||
|  | typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); | ||||||
|  | typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer); | ||||||
|  |  | ||||||
|  | #endif /* GLX_NV_vertex_array_range */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * ???. GLX_MESA_agp_offset | ||||||
|  |  */  | ||||||
|  | #ifndef GLX_MESA_agp_offset | ||||||
|  | #define GLX_MESA_agp_offset 1 | ||||||
|  |  | ||||||
|  | extern GLuint glXGetAGPOffsetMESA(const GLvoid *pointer); | ||||||
|  | typedef GLuint (* PFNGLXGETAGPOFFSETMESAPROC) (const GLvoid *pointer); | ||||||
|  |  | ||||||
|  | #endif /* GLX_MESA_agp_offset */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| /* $Id: glx_mangle.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */ | /* $Id: glx_mangle.h,v 1.1.1.1.8.2 2002/09/20 18:32:17 kschultz Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Mesa 3-D graphics library |  * Mesa 3-D graphics library | ||||||
|  * Version:  3.0 |  * Version:  4.1 | ||||||
|  * Copyright (C) 1995-1998  Brian Paul |  * Copyright (C) 1995-1998  Brian Paul | ||||||
|  * |  * | ||||||
|  * This library is free software; you can redistribute it and/or |  * This library is free software; you can redistribute it and/or | ||||||
| @@ -21,25 +21,6 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * $Log: glx_mangle.h,v $ |  | ||||||
|  * Revision 1.1  1999/08/19 00:55:40  jtg |  | ||||||
|  * Initial revision |  | ||||||
|  * |  | ||||||
|  * Revision 3.3  1999/06/21 22:01:00  brianp |  | ||||||
|  * added #ifndef GLX_MANGLE_H stuff, video sync extension functions |  | ||||||
|  * |  | ||||||
|  * Revision 3.2  1998/03/26 02:44:53  brianp |  | ||||||
|  * removed ^M characters |  | ||||||
|  * |  | ||||||
|  * Revision 3.1  1998/03/17 02:41:19  brianp |  | ||||||
|  * updated by Randy Frank |  | ||||||
|  * |  | ||||||
|  * Revision 3.0  1998/02/20 05:04:45  brianp |  | ||||||
|  * initial rev |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| #ifndef GLX_MANGLE_H | #ifndef GLX_MANGLE_H | ||||||
| #define GLX_MANGLE_H | #define GLX_MANGLE_H | ||||||
|  |  | ||||||
| @@ -60,13 +41,133 @@ | |||||||
| #define glXWaitGL mglXWaitGL | #define glXWaitGL mglXWaitGL | ||||||
| #define glXWaitX mglXWaitX | #define glXWaitX mglXWaitX | ||||||
| #define glXUseXFont mglXUseXFont | #define glXUseXFont mglXUseXFont | ||||||
|  |  | ||||||
|  | /* GLX 1.1 */ | ||||||
| #define glXQueryExtensionsString mglXQueryExtensionsString | #define glXQueryExtensionsString mglXQueryExtensionsString | ||||||
| #define glXQueryServerString mglXQueryServerString | #define glXQueryServerString mglXQueryServerString | ||||||
| #define glXGetClientString mglXGetClientString | #define glXGetClientString mglXGetClientString | ||||||
|  |  | ||||||
|  | /* GLX 1.2 */ | ||||||
|  | #define glXGetCurrentDisplay mglXGetCurrentDisplay | ||||||
|  |  | ||||||
|  | /* GLX 1.3 */ | ||||||
|  | #define glXChooseFBConfig mglXChooseFBConfig | ||||||
|  | #define glXGetFBConfigAttrib mglXGetFBConfigAttrib | ||||||
|  | #define glXGetFBConfigs mglXGetFBConfigs  | ||||||
|  | #define glXGetVisualFromFBConfig mglXGetVisualFromFBConfig | ||||||
|  | #define glXCreateWindow mglXCreateWindow  | ||||||
|  | #define glXDestroyWindow mglXDestroyWindow  | ||||||
|  | #define glXCreatePixmap mglXCreatePixmap  | ||||||
|  | #define glXDestroyPixmap mglXDestroyPixmap  | ||||||
|  | #define glXCreatePbuffer mglXCreatePbuffer  | ||||||
|  | #define glXDestroyPbuffer mglXDestroyPbuffer  | ||||||
|  | #define glXQueryDrawable mglXQueryDrawable  | ||||||
|  | #define glXCreateNewContext mglXCreateNewContext  | ||||||
|  | #define glXMakeContextCurrent mglXMakeContextCurrent | ||||||
|  | #define glXGetCurrentReadDrawable mglXGetCurrentReadDrawable | ||||||
|  | #define glXQueryContext mglXQueryContext  | ||||||
|  | #define glXSelectEvent mglXSelectEvent  | ||||||
|  | #define glXGetSelectedEvent mglXGetSelectedEvent  | ||||||
|  |  | ||||||
|  | /* GLX 1.4 */ | ||||||
|  | #define glXGetProcAddress mglXGetProcAddress | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * 41. GLX_SGI_video_sync | ||||||
|  |  */ | ||||||
|  | #define glXGetVideoSyncSGI mglXGetVideoSyncSGI  | ||||||
|  | #define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * 47. GLX_EXT_import_context | ||||||
|  |  */ | ||||||
|  | #define glXFreeContextEXT mglXFreeContextEXT  | ||||||
|  | #define glXGetContextIDEXT mglXGetContextIDEXT  | ||||||
|  | #define glXGetCurrentDisplayEXT mglXGetCurrentDisplayEXT | ||||||
|  | #define glXImportContextEXT mglXImportContextEXT  | ||||||
|  | #define glXQueryContextInfoEXT mglXQueryContextInfoEXT | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * 215. GLX_MESA_copy_sub_buffer | ||||||
|  |  */ | ||||||
|  | #define glXCopySubBufferMESA mglXCopySubBufferMESA | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * 216. GLX_MESA_pixmap_colormap | ||||||
|  |  */ | ||||||
|  | #define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * 217. GLX_MESA_release_buffers | ||||||
|  |  */ | ||||||
|  | #define glXReleaseBuffersMESA mglXReleaseBuffersMESA | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * 218. GLX_MESA_set_3dfx_mode | ||||||
|  |  */ | ||||||
|  | #define glXSet3DfxModeMESA mglXSet3DfxModeMESA  | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * ARB 2. GLX_ARB_get_proc_address | ||||||
|  |  */ | ||||||
|  | #define glXGetProcAddressARB mglXGetProcAddressARB | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  ** The following aren't in glxext.h yet. | ||||||
|  |  **/ | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * ???. GLX_NV_vertex_array_range | ||||||
|  |  */ | ||||||
|  | #define glXAllocateMemoryNV mglXAllocateMemoryNV  | ||||||
|  | #define glXFreeMemoryNV mglXFreeMemoryNV | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * ???. GLX_MESA_agp_offset | ||||||
|  |  */  | ||||||
|  | #define glXGetAGPOffsetMESA mglXGetAGPOffsetMESA | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Other extensions implemented and in glxext.h | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #define glXSwapIntervalSGI mglXSwapIntervalSGI  | ||||||
|  | #define glXGetVideoSyncSGI mglXGetVideoSyncSGI | ||||||
|  | #define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI | ||||||
|  | #define glXMakeCurrentReadSGI mglXMakeCurrentReadSGI | ||||||
|  | #define glXCushionSGI mglXCushionSGI | ||||||
|  |  | ||||||
| #define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA | #define glXCreateGLXPixmapMESA mglXCreateGLXPixmapMESA | ||||||
| #define glXReleaseBuffersMESA mglXReleaseBuffersMESA | #define glXReleaseBuffersMESA mglXReleaseBuffersMESA | ||||||
| #define glXCopySubBufferMESA mglXCopySubBufferMESA | #define glXCopySubBufferMESA mglXCopySubBufferMESA | ||||||
| #define glXGetVideoSyncSGI mglXGetVideoSyncSGI |  | ||||||
| #define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI | #define glXGetTransparentIndexSUN mglXGetTransparentIndexSUN | ||||||
|  |  | ||||||
|  | #define glXBindChannelToWindowSGIX mglXBindChannelToWindowSGIX | ||||||
|  | #define glXBindSwapBarrierSGIX mglXBindSwapBarrierSGIX | ||||||
|  | #define glXChannelRectSGIX mglXChannelRectSGIX  | ||||||
|  | #define glXChannelRectSyncSGIX mglXChannelRectSyncSGIX | ||||||
|  | #define glXChooseFBConfigSGIX mglXChooseFBConfigSGIX | ||||||
|  | #define glXCreateContextWithConfigSGIX mglXCreateContextWithConfigSGIX | ||||||
|  | #define glXCreateGLXPbufferSGIX mglXCreateGLXPbufferSGIX | ||||||
|  | #define glXCreateGLXPixmapWithConfigSGIX mglXCreateGLXPixmapWithConfigSGIX | ||||||
|  | #define glXDestroyGLXPbufferSGIX mglXDestroyGLXPbufferSGIX | ||||||
|  | #define glXGetCurrentReadDrawableSGI mglXGetCurrentReadDrawableSGI | ||||||
|  | #define glXGetFBConfigAttribSGIX mglXGetFBConfigAttribSGIX | ||||||
|  | #define glXGetFBConfigFromVisualSGIX mglXGetFBConfigFromVisualSGIX | ||||||
|  | #define glXGetSelectedEventSGIX mglXGetSelectedEventSGIX | ||||||
|  | #define glXGetVisualFromFBConfigSGIX mglXGetVisualFromFBConfigSGIX | ||||||
|  | #define glXJoinSwapGroupSGIX mglXJoinSwapGroupSGIX | ||||||
|  | #define glXQueryChannelDeltasSGIX mglXQueryChannelDeltasSGIX | ||||||
|  | #define glXQueryChannelRectSGIX mglXQueryChannelRectSGIX | ||||||
|  | #define glXQueryGLXPbufferSGIX mglXQueryGLXPbufferSGIX | ||||||
|  | #define glXQueryMaxSwapBarriersSGIX mglXQueryMaxSwapBarriersSGIX | ||||||
|  | #define glXSelectEventSGIX mglXSelectEventSGIX | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -42,12 +42,16 @@ extern "C" { | |||||||
| #ifndef APIENTRY | #ifndef APIENTRY | ||||||
| #define APIENTRY | #define APIENTRY | ||||||
| #endif | #endif | ||||||
|  | #ifndef GLAPI | ||||||
|  | #define GLAPI extern | ||||||
|  | #endif | ||||||
|  |  | ||||||
| /*************************************************************/ | /*************************************************************/ | ||||||
|  |  | ||||||
| /* Header file version number, required by OpenGL ABI for Linux */ | /* Header file version number, required by OpenGL ABI for Linux */ | ||||||
| /* glxext.h last updated 2001/09/26 */ | /* glxext.h last updated 2002/03/22 */ | ||||||
| #define GLX_GLXEXT_VERSION 3 | /* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */ | ||||||
|  | #define GLX_GLXEXT_VERSION 5 | ||||||
|  |  | ||||||
| #ifndef GLX_VERSION_1_3 | #ifndef GLX_VERSION_1_3 | ||||||
| #define GLX_WINDOW_BIT                     0x00000001 | #define GLX_WINDOW_BIT                     0x00000001 | ||||||
| @@ -113,6 +117,9 @@ extern "C" { | |||||||
| #define GLX_SAMPLES                        100001 | #define GLX_SAMPLES                        100001 | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #ifndef GLX_ARB_get_proc_address | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifndef GLX_ARB_multisample | #ifndef GLX_ARB_multisample | ||||||
| #define GLX_SAMPLE_BUFFERS_ARB             100000 | #define GLX_SAMPLE_BUFFERS_ARB             100000 | ||||||
| #define GLX_SAMPLES_ARB                    100001 | #define GLX_SAMPLES_ARB                    100001 | ||||||
| @@ -276,7 +283,6 @@ extern "C" { | |||||||
| /*************************************************************/ | /*************************************************************/ | ||||||
|  |  | ||||||
| #ifndef GLX_ARB_get_proc_address | #ifndef GLX_ARB_get_proc_address | ||||||
| /* XXX Added void parameter to silence many, many warnings (BrianP) */ |  | ||||||
| typedef void (*__GLXextFuncPtr)(void); | typedef void (*__GLXextFuncPtr)(void); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| @@ -348,6 +354,14 @@ typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigne | |||||||
| typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); | typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #ifndef GLX_VERSION_1_4 | ||||||
|  | #define GLX_VERSION_1_4 1 | ||||||
|  | #ifdef GLX_GLXEXT_PROTOTYPES | ||||||
|  | extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *); | ||||||
|  | #endif /* GLX_GLXEXT_PROTOTYPES */ | ||||||
|  | typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifndef GLX_ARB_get_proc_address | #ifndef GLX_ARB_get_proc_address | ||||||
| #define GLX_ARB_get_proc_address 1 | #define GLX_ARB_get_proc_address 1 | ||||||
| #ifdef GLX_GLXEXT_PROTOTYPES | #ifdef GLX_GLXEXT_PROTOTYPES | ||||||
| @@ -356,6 +370,10 @@ extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); | |||||||
| typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); | typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #ifndef GLX_ARB_multisample | ||||||
|  | #define GLX_ARB_multisample 1 | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #ifndef GLX_SGIS_multisample | #ifndef GLX_SGIS_multisample | ||||||
| #define GLX_SGIS_multisample 1 | #define GLX_SGIS_multisample 1 | ||||||
| #endif | #endif | ||||||
| @@ -413,13 +431,13 @@ typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSou | |||||||
| #ifdef GLX_GLXEXT_PROTOTYPES | #ifdef GLX_GLXEXT_PROTOTYPES | ||||||
| extern Display * glXGetCurrentDisplayEXT (void); | extern Display * glXGetCurrentDisplayEXT (void); | ||||||
| extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *); | extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *); | ||||||
| extern GLXContextID glXGetContextIDEXT (GLXContext); | extern GLXContextID glXGetContextIDEXT (const GLXContext); | ||||||
| extern GLXContext glXImportContextEXT (Display *, GLXContextID); | extern GLXContext glXImportContextEXT (Display *, GLXContextID); | ||||||
| extern void glXFreeContextEXT (Display *, GLXContext); | extern void glXFreeContextEXT (Display *, GLXContext); | ||||||
| #endif /* GLX_GLXEXT_PROTOTYPES */ | #endif /* GLX_GLXEXT_PROTOTYPES */ | ||||||
| typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); | typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); | ||||||
| typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value); | typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value); | ||||||
| typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (GLXContext context); | typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); | ||||||
| typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID); | typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID); | ||||||
| typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context); | typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context); | ||||||
| #endif | #endif | ||||||
| @@ -554,14 +572,33 @@ typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); | |||||||
| #define GLX_SGIX_visual_select_group 1 | #define GLX_SGIX_visual_select_group 1 | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifndef GLX_GLX_OML_swap_method | #ifndef GLX_OML_swap_method | ||||||
| #define GLX_GLX_OML_swap_method 1 | #define GLX_OML_swap_method 1 | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifndef GLX_GLX_OML_sync_control | #if defined(__STDC_VERSION__) | ||||||
| #define GLX_GLX_OML_sync_control 1 | #if __STDC_VERSION__ >= 199901L | ||||||
|  | /* Include ISO C99 integer types for OML_sync_control; need a better test */ | ||||||
|  | #include <inttypes.h> | ||||||
|  |  | ||||||
|  | #ifndef GLX_OML_sync_control | ||||||
|  | #define GLX_OML_sync_control 1 | ||||||
|  | #ifdef GLX_GLXEXT_PROTOTYPES | ||||||
|  | extern Bool glXGetSyncValuesOML (Display *, GLXDrawable, int64_t *, int64_t *, int64_t *); | ||||||
|  | extern Bool glXGetMscRateOML (Display *, GLXDrawable, int32_t *, int32_t *); | ||||||
|  | extern int64_t glXSwapBuffersMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t); | ||||||
|  | extern Bool glXWaitForMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *); | ||||||
|  | extern Bool glXWaitForSbcOML (Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *); | ||||||
|  | #endif /* GLX_GLXEXT_PROTOTYPES */ | ||||||
|  | typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); | ||||||
|  | typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); | ||||||
|  | typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); | ||||||
|  | typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc); | ||||||
|  | typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #endif /* C99 version test */ | ||||||
|  | #endif /* STDC test */ | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| /* $Id: osmesa.h,v 1.9 2001/09/23 16:06:13 brianp Exp $ */ | /* $Id: osmesa.h,v 1.9.2.1 2002/04/26 13:53:09 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Mesa 3-D graphics library |  * Mesa 3-D graphics library | ||||||
|  * Version:  4.0 |  * Version:  4.0.3 | ||||||
|  *  |  *  | ||||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. |  * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. | ||||||
|  *  |  *  | ||||||
|  * Permission is hereby granted, free of charge, to any person obtaining a |  * Permission is hereby granted, free of charge, to any person obtaining a | ||||||
|  * copy of this software and associated documentation files (the "Software"), |  * copy of this software and associated documentation files (the "Software"), | ||||||
| @@ -64,7 +64,7 @@ extern "C" { | |||||||
|  |  | ||||||
| #define OSMESA_MAJOR_VERSION 4 | #define OSMESA_MAJOR_VERSION 4 | ||||||
| #define OSMESA_MINOR_VERSION 0 | #define OSMESA_MINOR_VERSION 0 | ||||||
| #define OSMESA_PATCH_VERSION 0 | #define OSMESA_PATCH_VERSION 3 | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: wmesa.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */ | /* $Id: wmesa.h,v 1.1.1.1.8.1 2002/04/23 18:24:41 kschultz Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Mesa 3-D graphics library |  * Mesa 3-D graphics library | ||||||
| @@ -24,8 +24,17 @@ | |||||||
|  |  | ||||||
| /* | /* | ||||||
|  * $Log: wmesa.h,v $ |  * $Log: wmesa.h,v $ | ||||||
|  * Revision 1.1  1999/08/19 00:55:40  jtg |  * Revision 1.1.1.1.8.1  2002/04/23 18:24:41  kschultz | ||||||
|  * Initial revision |  * Fix up alpha buffer handling for Windows. | ||||||
|  |  * - add two new Pixel Format Descriptors that do not have alpha bits to | ||||||
|  |  * mirror the two that do. | ||||||
|  |  * - add logic to wglChoosePixelFormat to match PFD's with respect to alpha. | ||||||
|  |  * - Create/clear software alpha buffer as required. | ||||||
|  |  * Now a wgl or GLUT program can control the creation of a software alpha | ||||||
|  |  * buffer via the PFD or GLUT parms, respectively. | ||||||
|  |  * | ||||||
|  |  * Revision 1.1.1.1  1999/08/19 00:55:40  jtg | ||||||
|  |  * Imported sources | ||||||
|  * |  * | ||||||
|  * Revision 3.2  1999/01/03 02:54:45  brianp |  * Revision 3.2  1999/01/03 02:54:45  brianp | ||||||
|  * updated per Ted Jump |  * updated per Ted Jump | ||||||
| @@ -101,13 +110,17 @@ typedef struct wmesa_context *WMesaContext; | |||||||
|  *                    GL_FALSE = color index mode |  *                    GL_FALSE = color index mode | ||||||
|  *         db_flag - GL_TRUE = double-buffered, |  *         db_flag - GL_TRUE = double-buffered, | ||||||
|  *                   GL_FALSE = single buffered |  *                   GL_FALSE = single buffered | ||||||
|  |  *         alpha_flag - GL_TRUE = create software alpha buffer, | ||||||
|  |  *                      GL_FALSE = no software alpha buffer | ||||||
|  * |  * | ||||||
|  * Note: Indexed mode requires double buffering under Windows. |  * Note: Indexed mode requires double buffering under Windows. | ||||||
|  * |  * | ||||||
|  * Return:  a WMesa_context or NULL if error. |  * Return:  a WMesa_context or NULL if error. | ||||||
|  */ |  */ | ||||||
| extern WMesaContext WMesaCreateContext(HWND hWnd,HPALETTE* pPal, | extern WMesaContext WMesaCreateContext(HWND hWnd,HPALETTE* pPal, | ||||||
|                                        GLboolean rgb_flag,GLboolean db_flag); |                                        GLboolean rgb_flag, | ||||||
|  |                                        GLboolean db_flag, | ||||||
|  |                                        GLboolean alpha_flag); | ||||||
|  |  | ||||||
|  |  | ||||||
| /* | /* | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| /* $Id: xmesa.h,v 1.12 2001/09/23 16:06:13 brianp Exp $ */ | /* $Id: xmesa.h,v 1.12.2.2 2002/04/26 13:53:09 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Mesa 3-D graphics library |  * Mesa 3-D graphics library | ||||||
|  * Version:  4.0 |  * Version:  4.0.3 | ||||||
|  *  |  *  | ||||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. |  * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved. | ||||||
|  *  |  *  | ||||||
|  * Permission is hereby granted, free of charge, to any person obtaining a |  * Permission is hereby granted, free of charge, to any person obtaining a | ||||||
|  * copy of this software and associated documentation files (the "Software"), |  * copy of this software and associated documentation files (the "Software"), | ||||||
| @@ -365,6 +365,15 @@ extern GLboolean XMesaSetFXmode( GLint mode ); | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Reallocate the back/depth/stencil/accum/etc/ buffers associated with | ||||||
|  |  * buffer <b> if its size has changed. | ||||||
|  |  * | ||||||
|  |  * New in Mesa 4.0.2 | ||||||
|  |  */ | ||||||
|  | extern void XMesaResizeBuffers( XMesaBuffer b ); | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| # $Id: Makefile.win,v 1.5 2001/10/04 19:13:36 kschultz Exp $ | # $Id: Makefile.win,v 1.5.2.2 2002/04/15 22:14:09 kschultz Exp $ | ||||||
|  |  | ||||||
| # Mesa 3-D graphics library | # Mesa 3-D graphics library | ||||||
| # Version:  3.5 | # Version:  3.5 | ||||||
| @@ -67,34 +67,64 @@ SRCS = \ | |||||||
| 	geartrain.c \ | 	geartrain.c \ | ||||||
| 	glinfo.c \ | 	glinfo.c \ | ||||||
| 	gloss.c \ | 	gloss.c \ | ||||||
|  | 	gltestperf.c \ | ||||||
|  | 	glutfx.c \ | ||||||
| 	isosurf.c \ | 	isosurf.c \ | ||||||
|  | 	lodbias.c \ | ||||||
| 	morph3d.c \ | 	morph3d.c \ | ||||||
| 	teapot.c | 	multiarb.c \ | ||||||
|  | 	occlude.c \ | ||||||
|  | 	paltex.c \ | ||||||
|  | 	pixeltex.c \ | ||||||
|  | 	pointblast.c \ | ||||||
|  | 	ray.c \ | ||||||
|  | 	readpix.c \ | ||||||
|  | 	reflect.c \ | ||||||
|  | 	renormal.c \ | ||||||
|  | 	shadowtex.c \ | ||||||
|  | 	spectex.c \ | ||||||
|  | 	stex3d.c \ | ||||||
|  | 	teapot.c \ | ||||||
|  | 	terrain.c \ | ||||||
|  | 	tessdemo.c \ | ||||||
|  | 	texcyl.c \ | ||||||
|  | 	texdown.c \ | ||||||
|  | 	texenv.c \ | ||||||
|  | 	texobj.c \ | ||||||
|  | 	trispd.c \ | ||||||
|  | 	tunnel.c \ | ||||||
|  | 	tunnel2.c \ | ||||||
|  | 	winpos.c | ||||||
|  |  | ||||||
|  | CXXSRCS = \ | ||||||
|  | 	rain.cxx | ||||||
|  |  | ||||||
| OSMESASRCS = osdemo.c | OSMESASRCS = osdemo.c | ||||||
|  | IPERSSRCS = ipers.c | ||||||
|  | IPERSEXES = $(IPERSSRCS:.c=.exe) | ||||||
| !include "../mesawin32.mak" | !include "../mesawin32.mak" | ||||||
|  |  | ||||||
| ##### TARGETS ##### | ##### TARGETS ##### | ||||||
|  |  | ||||||
| clean:: | clean:: | ||||||
|  |  | ||||||
| realclean:: | clobber:: | ||||||
|  | 	@del readtex.c readtex.h | ||||||
|  |  | ||||||
| targets: readtex.c readtex.h $(PROGS) | $(EXES) : $*.obj readtex.c readtex.h | ||||||
|  |  | ||||||
| # remove comments when we get non-osmesa pgm working |  | ||||||
| $(EXES) : $*.obj |  | ||||||
| 	@echo $@ | 	@echo $@ | ||||||
| 	$(link) -out:$@ $** /LIBPATH:$(LIBDIR) $(LIBS) | 	$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) | ||||||
|  |  | ||||||
| $(OSMESAEXES) : $*.obj | $(OSMESAEXES) : $*.obj | ||||||
| 	@echo $@ | 	@echo $@ | ||||||
| 	$(link) $(lcommon) -out:$@ $** /LIBPATH:$(LIBDIR) $(LIBS) $(EXTRALIBS) | 	$(link) $(lcommon) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) $(EXTRALIBS) | ||||||
|  |  | ||||||
|  | $(IPERSEXES) : $*.obj | ||||||
|  | 	@echo $@ | ||||||
|  | 	$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) winmm.lib | ||||||
|  |  | ||||||
| readtex.c: | readtex.c: | ||||||
| 	@copy ../util/readtex.c . | 	-copy ..\util\readtex.c . | ||||||
|  |  | ||||||
| readtex.h: | readtex.h: | ||||||
| 	@copy ../util/readtex.c . | 	-copy ..\util\readtex.h . | ||||||
|  |  | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: drawpix.c,v 1.5 2000/12/24 22:53:54 pesco Exp $ */ | /* $Id: drawpix.c,v 1.5.2.2 2002/09/13 18:15:09 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * glDrawPixels demo/test/benchmark |  * glDrawPixels demo/test/benchmark | ||||||
| @@ -6,60 +6,6 @@ | |||||||
|  * Brian Paul   September 25, 1997  This file is in the public domain. |  * Brian Paul   September 25, 1997  This file is in the public domain. | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * $Log: drawpix.c,v $ |  | ||||||
|  * Revision 1.5  2000/12/24 22:53:54  pesco |  | ||||||
|  * * demos/Makefile.am (INCLUDES): Added -I$(top_srcdir)/util. |  | ||||||
|  * * demos/Makefile.X11, demos/Makefile.BeOS-R4, demos/Makefile.cygnus: |  | ||||||
|  * Essentially the same. |  | ||||||
|  * Program files updated to include "readtex.c", not "../util/readtex.c". |  | ||||||
|  * * demos/reflect.c: Likewise for "showbuffer.c". |  | ||||||
|  * |  | ||||||
|  * |  | ||||||
|  * * Makefile.am (EXTRA_DIST): Added top-level regular files. |  | ||||||
|  * |  | ||||||
|  * * include/GL/Makefile.am (INC_X11): Added glxext.h. |  | ||||||
|  * |  | ||||||
|  * |  | ||||||
|  * * src/GGI/include/ggi/mesa/Makefile.am (EXTRA_HEADERS): Include |  | ||||||
|  * Mesa GGI headers in dist even if HAVE_GGI is not given. |  | ||||||
|  * |  | ||||||
|  * * configure.in: Look for GLUT and demo source dirs in $srcdir. |  | ||||||
|  * |  | ||||||
|  * * src/swrast/Makefile.am (libMesaSwrast_la_SOURCES): Set to *.[ch]. |  | ||||||
|  * More source list updates in various Makefile.am's. |  | ||||||
|  * |  | ||||||
|  * * Makefile.am (dist-hook): Remove CVS directory from distribution. |  | ||||||
|  * (DIST_SUBDIRS): List all possible subdirs here. |  | ||||||
|  * (SUBDIRS): Only list subdirs selected for build again. |  | ||||||
|  * The above two applied to all subdir Makefile.am's also. |  | ||||||
|  * |  | ||||||
|  * Revision 1.4  2000/09/08 21:45:21  brianp |  | ||||||
|  * added dither key option |  | ||||||
|  * |  | ||||||
|  * Revision 1.3  1999/10/28 18:23:29  brianp |  | ||||||
|  * minor changes to Usage() function |  | ||||||
|  * |  | ||||||
|  * Revision 1.2  1999/10/21 22:13:58  brianp |  | ||||||
|  * added f key to toggle front/back drawing |  | ||||||
|  * |  | ||||||
|  * Revision 1.1.1.1  1999/08/19 00:55:40  jtg |  | ||||||
|  * Imported sources |  | ||||||
|  * |  | ||||||
|  * Revision 3.3  1999/03/28 18:18:33  brianp |  | ||||||
|  * minor clean-up |  | ||||||
|  * |  | ||||||
|  * Revision 3.2  1998/11/05 04:34:04  brianp |  | ||||||
|  * moved image files to ../images/ directory |  | ||||||
|  * |  | ||||||
|  * Revision 3.1  1998/02/22 16:43:17  brianp |  | ||||||
|  * added a few casts to silence compiler warnings |  | ||||||
|  * |  | ||||||
|  * Revision 3.0  1998/02/14 18:42:29  brianp |  | ||||||
|  * initial rev |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| @@ -287,7 +233,7 @@ static void Init( GLboolean ciMode ) | |||||||
|  |  | ||||||
|    if (ciMode) { |    if (ciMode) { | ||||||
|       /* Convert RGB image to grayscale */ |       /* Convert RGB image to grayscale */ | ||||||
|       GLubyte *indexImage = malloc( ImgWidth * ImgHeight ); |       GLubyte *indexImage = (GLubyte *) malloc( ImgWidth * ImgHeight ); | ||||||
|       GLint i; |       GLint i; | ||||||
|       for (i=0; i<ImgWidth*ImgHeight; i++) { |       for (i=0; i<ImgWidth*ImgHeight; i++) { | ||||||
|          int gray = Image[i*3] + Image[i*3+1] + Image[i*3+2]; |          int gray = Image[i*3] + Image[i*3+1] + Image[i*3+2]; | ||||||
|   | |||||||
| @@ -752,7 +752,7 @@ main(int ac, char **av) | |||||||
|    glFogfv(GL_FOG_COLOR, fogcolor); |    glFogfv(GL_FOG_COLOR, fogcolor); | ||||||
|    glFogf(GL_FOG_DENSITY, 0.1); |    glFogf(GL_FOG_DENSITY, 0.1); | ||||||
|  |  | ||||||
|    p = malloc(sizeof(part) * np); |    p = (part *) malloc(sizeof(part) * np); | ||||||
|  |  | ||||||
|    for (i = 0; i < np; i++) |    for (i = 0; i < np; i++) | ||||||
|       setnewpart(&p[i]); |       setnewpart(&p[i]); | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ | |||||||
| #include <math.h> | #include <math.h> | ||||||
| #include <time.h> | #include <time.h> | ||||||
|  |  | ||||||
| #ifdef WIN32 | #if defined (WIN32)|| defined(_WIN32) | ||||||
| #include <windows.h> | #include <windows.h> | ||||||
| #include <mmsystem.h> | #include <mmsystem.h> | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: isosurf.c,v 1.13 2001/10/04 19:14:26 kschultz Exp $ */ | /* $Id: isosurf.c,v 1.13.2.2 2002/09/10 23:35:38 kschultz Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Display an isosurface of 3-D wind speed volume. |  * Display an isosurface of 3-D wind speed volume. | ||||||
| @@ -32,6 +32,7 @@ | |||||||
| #include <math.h> | #include <math.h> | ||||||
| #ifdef _WIN32 | #ifdef _WIN32 | ||||||
| #include <windows.h> | #include <windows.h> | ||||||
|  | #undef CLIP_MASK | ||||||
| #endif | #endif | ||||||
| #define GL_GLEXT_LEGACY | #define GL_GLEXT_LEGACY | ||||||
| #include "GL/glut.h" | #include "GL/glut.h" | ||||||
| @@ -39,34 +40,36 @@ | |||||||
| #include "readtex.c"   /* I know, this is a hack.  KW: me too. */ | #include "readtex.c"   /* I know, this is a hack.  KW: me too. */ | ||||||
| #define TEXTURE_FILE "../images/reflect.rgb" | #define TEXTURE_FILE "../images/reflect.rgb" | ||||||
|  |  | ||||||
| #define LIT		0x1 | #define LIT		0x00000001 | ||||||
| #define UNLIT		0x2 | #define UNLIT		0x00000002 | ||||||
| #define REFLECT		0x10 | #define REFLECT		0x00000004 | ||||||
| #define POINT_FILTER	0x40 | #define POINT_FILTER	0x00000008 | ||||||
| #define LINEAR_FILTER	0x80 | #define LINEAR_FILTER	0x00000010 | ||||||
| #define GLVERTEX	0x100 | #define GLVERTEX	0x00000020 | ||||||
| #define DRAW_ELTS	0x4  | #define DRAW_ELTS	0x00000040  | ||||||
| #define DRAW_ARRAYS	0x200  | #define DRAW_ARRAYS	0x00000080  | ||||||
| #define ARRAY_ELT	0x400 | #define ARRAY_ELT	0x00000100 | ||||||
| #define LOCKED	        0x800 | #define LOCKED	        0x00000200 | ||||||
| #define UNLOCKED	0x8  | #define UNLOCKED	0x00000400  | ||||||
| #define IMMEDIATE	0x1000 | #define IMMEDIATE	0x00000800 | ||||||
| #define DISPLAYLIST	0x2000000 | #define DISPLAYLIST	0x00001000 | ||||||
| #define SHADE_SMOOTH	0x2000 | #define SHADE_SMOOTH	0x00002000 | ||||||
| #define SHADE_FLAT	0x4000 | #define SHADE_FLAT	0x00004000 | ||||||
| #define TRIANGLES	0x8000 | #define TRIANGLES	0x00008000 | ||||||
| #define STRIPS		0x10000 | #define STRIPS		0x00010000 | ||||||
| #define POINTS		0x20000 | #define POINTS		0x00020000 | ||||||
| #define USER_CLIP	0x40000 | #define USER_CLIP	0x00040000 | ||||||
| #define NO_USER_CLIP	0x80000 | #define NO_USER_CLIP	0x00080000 | ||||||
| #define MATERIALS	0x100000 | #define MATERIALS	0x00100000 | ||||||
| #define NO_MATERIALS	0x200000 | #define NO_MATERIALS	0x00200000 | ||||||
| #define FOG		0x400000 | #define FOG		0x00400000 | ||||||
| #define NO_FOG		0x800000 | #define NO_FOG		0x00800000 | ||||||
| #define QUIT		0x1000000 | #define QUIT		0x01000000 | ||||||
| #define GLINFO		0x4000000 | #define GLINFO		0x02000000 | ||||||
| #define STIPPLE		0x8000000 | #define STIPPLE		0x04000000 | ||||||
| #define NO_STIPPLE	0x20 | #define NO_STIPPLE	0x08000000 | ||||||
|  | #define POLYGON_FILL	0x10000000 | ||||||
|  | #define POLYGON_LINE	0x20000000 | ||||||
|  |  | ||||||
| #define LIGHT_MASK		(LIT|UNLIT|REFLECT) | #define LIGHT_MASK		(LIT|UNLIT|REFLECT) | ||||||
| #define FILTER_MASK		(POINT_FILTER|LINEAR_FILTER) | #define FILTER_MASK		(POINT_FILTER|LINEAR_FILTER) | ||||||
| @@ -79,9 +82,10 @@ | |||||||
| #define SHADE_MASK		(SHADE_SMOOTH|SHADE_FLAT) | #define SHADE_MASK		(SHADE_SMOOTH|SHADE_FLAT) | ||||||
| #define FOG_MASK		(FOG|NO_FOG) | #define FOG_MASK		(FOG|NO_FOG) | ||||||
| #define STIPPLE_MASK		(STIPPLE|NO_STIPPLE) | #define STIPPLE_MASK		(STIPPLE|NO_STIPPLE) | ||||||
|  | #define POLYGON_MASK		(POLYGON_FILL|POLYGON_LINE) | ||||||
|  |  | ||||||
| #define MAXVERTS 10000 | #define MAXVERTS 10000 | ||||||
| static GLuint maxverts = MAXVERTS; | static GLint maxverts = MAXVERTS; | ||||||
| static float data[MAXVERTS][6]; | static float data[MAXVERTS][6]; | ||||||
| static float compressed_data[MAXVERTS][6]; | static float compressed_data[MAXVERTS][6]; | ||||||
| static float expanded_data[MAXVERTS*3][6]; | static float expanded_data[MAXVERTS*3][6]; | ||||||
| @@ -144,7 +148,7 @@ static void read_surface( char *filename ) | |||||||
| static void print_flags( const char *msg, GLuint flags )  | static void print_flags( const char *msg, GLuint flags )  | ||||||
| { | { | ||||||
|    fprintf(stderr,  |    fprintf(stderr,  | ||||||
| 	   "%s (0x%x): %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n", | 	   "%s (0x%x): %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n", | ||||||
| 	   msg, flags, | 	   msg, flags, | ||||||
| 	   (flags & GLVERTEX) ? "glVertex, " : "", | 	   (flags & GLVERTEX) ? "glVertex, " : "", | ||||||
| 	   (flags & DRAW_ARRAYS) ? "glDrawArrays, " : "", | 	   (flags & DRAW_ARRAYS) ? "glDrawArrays, " : "", | ||||||
| @@ -162,7 +166,8 @@ static void print_flags( const char *msg, GLuint flags ) | |||||||
| 	   (flags & USER_CLIP) ? "user_clip, " : "", | 	   (flags & USER_CLIP) ? "user_clip, " : "", | ||||||
| 	   (flags & MATERIALS) ? "materials, " : "", | 	   (flags & MATERIALS) ? "materials, " : "", | ||||||
| 	   (flags & FOG) ? "fog, " : "", | 	   (flags & FOG) ? "fog, " : "", | ||||||
| 	   (flags & STIPPLE) ? "stipple, " : ""); | 	   (flags & STIPPLE) ? "stipple, " : "", | ||||||
|  | 	   (flags & POLYGON_LINE) ? "polygon mode line, " : ""); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -333,7 +338,7 @@ static void make_tri_indices( void ) | |||||||
| { | { | ||||||
|    unsigned int *v = tri_indices; |    unsigned int *v = tri_indices; | ||||||
|    unsigned int parity = 0; |    unsigned int parity = 0; | ||||||
|    unsigned int i, j; |    int i, j; | ||||||
|  |  | ||||||
|    for (j=2;j<numverts;j++,parity^=1) { |    for (j=2;j<numverts;j++,parity^=1) { | ||||||
|       if (parity) { |       if (parity) { | ||||||
| @@ -363,9 +368,9 @@ static void make_tri_indices( void ) | |||||||
|  |  | ||||||
| #define MIN(x,y) (x < y) ? x : y | #define MIN(x,y) (x < y) ? x : y | ||||||
|  |  | ||||||
| static void draw_surface( int with_state ) | static void draw_surface( unsigned int with_state ) | ||||||
| { | { | ||||||
|    GLuint i, j; |    GLint i, j; | ||||||
|     |     | ||||||
|    if (with_state & DISPLAYLIST) { |    if (with_state & DISPLAYLIST) { | ||||||
|       if ((with_state & (RENDER_STYLE_MASK|PRIMITIVE_MASK|MATERIAL_MASK)) !=  |       if ((with_state & (RENDER_STYLE_MASK|PRIMITIVE_MASK|MATERIAL_MASK)) !=  | ||||||
| @@ -684,28 +689,34 @@ static void ModeMenu(int m) | |||||||
|  |  | ||||||
|    if (CHANGED(state, m, FOG_MASK)) { |    if (CHANGED(state, m, FOG_MASK)) { | ||||||
|       UPDATE(state, m, FOG_MASK); |       UPDATE(state, m, FOG_MASK); | ||||||
|       if (m & FOG) |       if (m & FOG) { | ||||||
|       { |  | ||||||
| 	 glEnable(GL_FOG); | 	 glEnable(GL_FOG); | ||||||
|       } |       } | ||||||
|       else |       else { | ||||||
|       { |  | ||||||
| 	 glDisable(GL_FOG); | 	 glDisable(GL_FOG); | ||||||
|       } |       } | ||||||
|    } |    } | ||||||
|  |  | ||||||
|    if (CHANGED(state, m, STIPPLE_MASK)) { |    if (CHANGED(state, m, STIPPLE_MASK)) { | ||||||
|       UPDATE(state, m, STIPPLE_MASK); |       UPDATE(state, m, STIPPLE_MASK); | ||||||
|       if (m & STIPPLE) |       if (m & STIPPLE) { | ||||||
|       { |  | ||||||
| 	 glEnable(GL_POLYGON_STIPPLE); | 	 glEnable(GL_POLYGON_STIPPLE); | ||||||
|       } |       } | ||||||
|       else |       else { | ||||||
|       { |  | ||||||
| 	 glDisable(GL_POLYGON_STIPPLE); | 	 glDisable(GL_POLYGON_STIPPLE); | ||||||
|       } |       } | ||||||
|    } |    } | ||||||
|  |  | ||||||
|  |    if (CHANGED(state, m, POLYGON_MASK)) { | ||||||
|  |       UPDATE(state, m, POLYGON_MASK); | ||||||
|  |       if (m & POLYGON_FILL) { | ||||||
|  | 	 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); | ||||||
|  |       } | ||||||
|  |       else { | ||||||
|  | 	 glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); | ||||||
|  |       } | ||||||
|  |    } | ||||||
|  |  | ||||||
| #ifdef GL_EXT_vertex_array | #ifdef GL_EXT_vertex_array | ||||||
|    if (CHANGED(state, m, (LOCK_MASK|RENDER_STYLE_MASK|PRIMITIVE_MASK))) |    if (CHANGED(state, m, (LOCK_MASK|RENDER_STYLE_MASK|PRIMITIVE_MASK))) | ||||||
|    { |    { | ||||||
| @@ -1077,6 +1088,9 @@ int main(int argc, char **argv) | |||||||
|    glutAddMenuEntry("Stipple",               STIPPLE); |    glutAddMenuEntry("Stipple",               STIPPLE); | ||||||
|    glutAddMenuEntry("No Stipple",            NO_STIPPLE); |    glutAddMenuEntry("No Stipple",            NO_STIPPLE); | ||||||
|    glutAddMenuEntry("", 0); |    glutAddMenuEntry("", 0); | ||||||
|  |    glutAddMenuEntry("Polygon Mode Fill",     POLYGON_FILL); | ||||||
|  |    glutAddMenuEntry("Polygon Mode Line",     POLYGON_LINE); | ||||||
|  |    glutAddMenuEntry("", 0); | ||||||
|    glutAddMenuEntry("Point Filtered",        POINT_FILTER); |    glutAddMenuEntry("Point Filtered",        POINT_FILTER); | ||||||
|    glutAddMenuEntry("Linear Filtered",       LINEAR_FILTER); |    glutAddMenuEntry("Linear Filtered",       LINEAR_FILTER); | ||||||
|    glutAddMenuEntry("", 0); |    glutAddMenuEntry("", 0); | ||||||
|   | |||||||
| @@ -40,7 +40,7 @@ | |||||||
| static GLfloat Xrot = 0, Yrot = -30, Zrot = 0; | static GLfloat Xrot = 0, Yrot = -30, Zrot = 0; | ||||||
| static GLboolean Anim = GL_TRUE; | static GLboolean Anim = GL_TRUE; | ||||||
| static GLint Bias = 0, BiasStepSign = +1; /* ints avoid fp precision problem */ | static GLint Bias = 0, BiasStepSign = +1; /* ints avoid fp precision problem */ | ||||||
| static GLint BiasMin = -200, BiasMax = 500; | static GLint BiasMin = -400, BiasMax = 400; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -192,6 +192,8 @@ static void SpecialKey( int key, int x, int y ) | |||||||
| static void Init( void ) | static void Init( void ) | ||||||
| { | { | ||||||
|    const char *exten = (const char *) glGetString(GL_EXTENSIONS); |    const char *exten = (const char *) glGetString(GL_EXTENSIONS); | ||||||
|  |    GLfloat maxBias; | ||||||
|  |  | ||||||
|    if (!strstr(exten, "GL_EXT_texture_lod_bias")) { |    if (!strstr(exten, "GL_EXT_texture_lod_bias")) { | ||||||
|       printf("Sorry, GL_EXT_texture_lod_bias not supported by this renderer.\n"); |       printf("Sorry, GL_EXT_texture_lod_bias not supported by this renderer.\n"); | ||||||
|       exit(1); |       exit(1); | ||||||
| @@ -207,6 +209,11 @@ static void Init( void ) | |||||||
|    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); |    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); | ||||||
|    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); | ||||||
|    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); |    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | ||||||
|  |  | ||||||
|  |    glGetFloatv(GL_MAX_TEXTURE_LOD_BIAS_EXT, &maxBias); | ||||||
|  |    printf("LOD bias range: [%g, %g]\n", -maxBias, maxBias); | ||||||
|  |    BiasMin = -100 * maxBias; | ||||||
|  |    BiasMax =  100 * maxBias; | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: multiarb.c,v 1.10 2001/06/20 19:12:30 brianp Exp $ */ | /* $Id: multiarb.c,v 1.10.2.2 2002/09/13 18:15:09 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * GL_ARB_multitexture demo |  * GL_ARB_multitexture demo | ||||||
| @@ -10,77 +10,12 @@ | |||||||
|  * Brian Paul  November 1998  This program is in the public domain. |  * Brian Paul  November 1998  This program is in the public domain. | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| /* |  | ||||||
|  * $Log: multiarb.c,v $ |  | ||||||
|  * Revision 1.10  2001/06/20 19:12:30  brianp |  | ||||||
|  * also print GL_MAX_TEXTURE_SIZE |  | ||||||
|  * |  | ||||||
|  * Revision 1.9  2001/06/13 14:33:16  brianp |  | ||||||
|  * moved glTexEnvi calls to better logical locations |  | ||||||
|  * |  | ||||||
|  * Revision 1.8  2000/12/24 22:53:54  pesco |  | ||||||
|  * * demos/Makefile.am (INCLUDES): Added -I$(top_srcdir)/util. |  | ||||||
|  * * demos/Makefile.X11, demos/Makefile.BeOS-R4, demos/Makefile.cygnus: |  | ||||||
|  * Essentially the same. |  | ||||||
|  * Program files updated to include "readtex.c", not "../util/readtex.c". |  | ||||||
|  * * demos/reflect.c: Likewise for "showbuffer.c". |  | ||||||
|  * |  | ||||||
|  * |  | ||||||
|  * * Makefile.am (EXTRA_DIST): Added top-level regular files. |  | ||||||
|  * |  | ||||||
|  * * include/GL/Makefile.am (INC_X11): Added glxext.h. |  | ||||||
|  * |  | ||||||
|  * |  | ||||||
|  * * src/GGI/include/ggi/mesa/Makefile.am (EXTRA_HEADERS): Include |  | ||||||
|  * Mesa GGI headers in dist even if HAVE_GGI is not given. |  | ||||||
|  * |  | ||||||
|  * * configure.in: Look for GLUT and demo source dirs in $srcdir. |  | ||||||
|  * |  | ||||||
|  * * src/swrast/Makefile.am (libMesaSwrast_la_SOURCES): Set to *.[ch]. |  | ||||||
|  * More source list updates in various Makefile.am's. |  | ||||||
|  * |  | ||||||
|  * * Makefile.am (dist-hook): Remove CVS directory from distribution. |  | ||||||
|  * (DIST_SUBDIRS): List all possible subdirs here. |  | ||||||
|  * (SUBDIRS): Only list subdirs selected for build again. |  | ||||||
|  * The above two applied to all subdir Makefile.am's also. |  | ||||||
|  * |  | ||||||
|  * Revision 1.7  2000/11/01 16:02:01  brianp |  | ||||||
|  * print number of texture units |  | ||||||
|  * |  | ||||||
|  * Revision 1.6  2000/05/23 23:21:00  brianp |  | ||||||
|  * set default window pos |  | ||||||
|  * |  | ||||||
|  * Revision 1.5  2000/02/02 17:31:45  brianp |  | ||||||
|  * changed > to >= |  | ||||||
|  * |  | ||||||
|  * Revision 1.4  2000/02/02 01:07:21  brianp |  | ||||||
|  * limit Drift to [0, 1] |  | ||||||
|  * |  | ||||||
|  * Revision 1.3  1999/10/21 16:40:32  brianp |  | ||||||
|  * added -info command line option |  | ||||||
|  * |  | ||||||
|  * Revision 1.2  1999/10/13 12:02:13  brianp |  | ||||||
|  * use texture objects now |  | ||||||
|  * |  | ||||||
|  * Revision 1.1.1.1  1999/08/19 00:55:40  jtg |  | ||||||
|  * Imported sources |  | ||||||
|  * |  | ||||||
|  * Revision 1.3  1999/03/28 18:20:49  brianp |  | ||||||
|  * minor clean-up |  | ||||||
|  * |  | ||||||
|  * Revision 1.2  1998/11/05 04:34:04  brianp |  | ||||||
|  * moved image files to ../images/ directory |  | ||||||
|  * |  | ||||||
|  * Revision 1.1  1998/11/03 01:36:33  brianp |  | ||||||
|  * Initial revision |  | ||||||
|  * |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| #include <math.h> | #include <math.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #define GL_GLEXT_PROTOTYPES | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  |  | ||||||
| #include "readtex.c"   /* I know, this is a hack. */ | #include "readtex.c"   /* I know, this is a hack. */ | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: osdemo.c,v 1.7 2001/09/24 15:29:27 kschultz Exp $ */ | /* $Id: osdemo.c,v 1.7.2.1 2002/04/15 21:22:36 kschultz Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Demo of off-screen Mesa rendering |  * Demo of off-screen Mesa rendering | ||||||
| @@ -14,6 +14,11 @@ | |||||||
|  * |  * | ||||||
|  * PPM output provided by Joerg Schmalzl. |  * PPM output provided by Joerg Schmalzl. | ||||||
|  * ASCII PPM output added by Brian Paul. |  * ASCII PPM output added by Brian Paul. | ||||||
|  |  * | ||||||
|  |  * Usage: osdemo [-perf] [filename] | ||||||
|  |  * | ||||||
|  |  * -perf: Redraws the image 1000 times, displaying the FPS every 5 secs. | ||||||
|  |  * filename: file to store the TGA or PPM output | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -29,7 +34,9 @@ | |||||||
| #define WIDTH 400 | #define WIDTH 400 | ||||||
| #define HEIGHT 400 | #define HEIGHT 400 | ||||||
|  |  | ||||||
|  | static GLint T0 = 0; | ||||||
|  | static GLint Frames = 0; | ||||||
|  | static int perf = 0; | ||||||
|  |  | ||||||
| static void render_image( void ) | static void render_image( void ) | ||||||
| { | { | ||||||
| @@ -76,7 +83,7 @@ static void render_image( void ) | |||||||
|    glPopMatrix(); |    glPopMatrix(); | ||||||
|  |  | ||||||
| #ifdef GL_HP_occlusion_test | #ifdef GL_HP_occlusion_test | ||||||
|    { |    if (perf == 0) { | ||||||
|       GLboolean bRet; |       GLboolean bRet; | ||||||
|       glDepthMask(GL_FALSE); |       glDepthMask(GL_FALSE); | ||||||
|       glColorMask(GL_FALSE,GL_FALSE,GL_FALSE,GL_FALSE); |       glColorMask(GL_FALSE,GL_FALSE,GL_FALSE,GL_FALSE); | ||||||
| @@ -105,7 +112,7 @@ static void render_image( void ) | |||||||
|    glPopMatrix(); |    glPopMatrix(); | ||||||
|  |  | ||||||
| #ifdef GL_HP_occlusion_test | #ifdef GL_HP_occlusion_test | ||||||
|    { |    if (perf == 0){ | ||||||
|       GLboolean bRet; |       GLboolean bRet; | ||||||
|  |  | ||||||
|       glDepthMask(GL_FALSE); |       glDepthMask(GL_FALSE); | ||||||
| @@ -130,6 +137,18 @@ static void render_image( void ) | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
|    glPopMatrix(); |    glPopMatrix(); | ||||||
|  |  | ||||||
|  |    Frames++; | ||||||
|  |    if (perf) { | ||||||
|  |      GLint t = glutGet(GLUT_ELAPSED_TIME); | ||||||
|  |      if (t - T0 >= 5000) { | ||||||
|  |         GLfloat seconds = (t - T0) / 1000.0; | ||||||
|  |         GLfloat fps = Frames / seconds; | ||||||
|  |         printf("%d frames in %6.3f seconds = %6.3f FPS\n", Frames, seconds, fps); | ||||||
|  |         T0 = t; | ||||||
|  |         Frames = 0; | ||||||
|  |      } | ||||||
|  |    } | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -224,6 +243,8 @@ write_ppm(const char *filename, const GLubyte *buffer, int width, int height) | |||||||
| int main( int argc, char *argv[] ) | int main( int argc, char *argv[] ) | ||||||
| { | { | ||||||
|    void *buffer; |    void *buffer; | ||||||
|  |    int i; | ||||||
|  |    char *filename = NULL; | ||||||
|  |  | ||||||
|    /* Create an RGBA-mode context */ |    /* Create an RGBA-mode context */ | ||||||
| #if OSMESA_MAJOR_VERSION * 100 + OSMESA_MINOR_VERSION >= 305 | #if OSMESA_MAJOR_VERSION * 100 + OSMESA_MINOR_VERSION >= 305 | ||||||
| @@ -237,6 +258,11 @@ int main( int argc, char *argv[] ) | |||||||
|       return 0; |       return 0; | ||||||
|    } |    } | ||||||
|  |  | ||||||
|  |    for ( i=1; i<argc; i++ ) { | ||||||
|  |       if (argv[i][0] != '-') filename = argv[i]; | ||||||
|  |       if (strcmp(argv[i], "-perf")==0) perf = 1; | ||||||
|  |    } | ||||||
|  |  | ||||||
|    /* Allocate the image buffer */ |    /* Allocate the image buffer */ | ||||||
|    buffer = malloc( WIDTH * HEIGHT * 4 * sizeof(GLubyte) ); |    buffer = malloc( WIDTH * HEIGHT * 4 * sizeof(GLubyte) ); | ||||||
|    if (!buffer) { |    if (!buffer) { | ||||||
| @@ -256,16 +282,19 @@ int main( int argc, char *argv[] ) | |||||||
|       glGetIntegerv(GL_DEPTH_BITS, &z); |       glGetIntegerv(GL_DEPTH_BITS, &z); | ||||||
|       glGetIntegerv(GL_STENCIL_BITS, &s); |       glGetIntegerv(GL_STENCIL_BITS, &s); | ||||||
|       glGetIntegerv(GL_ACCUM_RED_BITS, &a); |       glGetIntegerv(GL_ACCUM_RED_BITS, &a); | ||||||
|       printf("%d %d %d\n", z, s, a); |       printf("Depth=%d Stencil=%d Accum=%d\n", z, s, a); | ||||||
|    } |    } | ||||||
|  |  | ||||||
|    render_image(); |    render_image(); | ||||||
|  |    if (perf) | ||||||
|  |       for(i=0; i< 1000; i++) | ||||||
|  |          render_image(); | ||||||
|  |  | ||||||
|    if (argc>1) { |    if (filename != NULL) { | ||||||
| #ifdef SAVE_TARGA | #ifdef SAVE_TARGA | ||||||
|       write_targa(argv[1], buffer, WIDTH, HEIGHT); |       write_targa(filename, buffer, WIDTH, HEIGHT); | ||||||
| #else | #else | ||||||
|       write_ppm(argv[1], buffer, WIDTH, HEIGHT); |       write_ppm(filename, buffer, WIDTH, HEIGHT); | ||||||
| #endif | #endif | ||||||
|    } |    } | ||||||
|    else { |    else { | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: paltex.c,v 1.6 2000/10/05 07:17:43 joukj Exp $ */ | /* $Id: paltex.c,v 1.6.2.3 2002/07/22 13:45:45 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Paletted texture demo.  Written by Brian Paul. |  * Paletted texture demo.  Written by Brian Paul. | ||||||
| @@ -9,6 +9,9 @@ | |||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <math.h> | #include <math.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #ifdef _WIN32 | ||||||
|  | #include <windows.h> | ||||||
|  | #endif | ||||||
| #define GL_GLEXT_LEGACY | #define GL_GLEXT_LEGACY | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  |  | ||||||
| @@ -91,15 +94,16 @@ static void Init( void ) | |||||||
| { | { | ||||||
| #define HEIGHT 8 | #define HEIGHT 8 | ||||||
| #define WIDTH 32 | #define WIDTH 32 | ||||||
|    static char texture[HEIGHT][WIDTH] = { |    /* 257 = HEIGHT * WIDTH + 1 (for trailing '\0') */ | ||||||
|          "                                ", |    static char texture[257] = {"\ | ||||||
|          "    MMM    EEEE   SSS    AAA    ", |                                 \ | ||||||
|          "   M M M  E      S   S  A   A   ", |     MMM    EEEE   SSS    AAA    \ | ||||||
|          "   M M M  EEEE    SS    A   A   ", |    M M M  E      S   S  A   A   \ | ||||||
|          "   M M M  E         SS  AAAAA   ", |    M M M  EEEE    SS    A   A   \ | ||||||
|          "   M   M  E      S   S  A   A   ", |    M M M  E         SS  AAAAA   \ | ||||||
|          "   M   M   EEEE   SSS   A   A   ", |    M   M  E      S   S  A   A   \ | ||||||
|          "                                " |    M   M   EEEE   SSS   A   A   \ | ||||||
|  |                                 " | ||||||
|       }; |       }; | ||||||
|    GLubyte table[256][4]; |    GLubyte table[256][4]; | ||||||
|  |  | ||||||
| @@ -158,7 +162,7 @@ static void Init( void ) | |||||||
|                 0,                   /* border */ |                 0,                   /* border */ | ||||||
|                 GL_COLOR_INDEX,      /* texture format */ |                 GL_COLOR_INDEX,      /* texture format */ | ||||||
|                 GL_UNSIGNED_BYTE,    /* texture type */ |                 GL_UNSIGNED_BYTE,    /* texture type */ | ||||||
|                 texture);            /* teh texture */ |                 texture);            /* the texture */ | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); |    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); | ||||||
|   | |||||||
| @@ -13,6 +13,13 @@ | |||||||
|  |  | ||||||
| /* | /* | ||||||
|  * $Log: pointblast.c,v $ |  * $Log: pointblast.c,v $ | ||||||
|  |  * Revision 1.2.6.1  2002/04/15 22:14:09  kschultz | ||||||
|  |  * Build demos/samples correctly on Windows (Robert Bergkvist) to sync up | ||||||
|  |  * with the main branch.  (I should have done this for 4.0.2) | ||||||
|  |  * | ||||||
|  |  * Revision 1.3  2002/01/16 00:48:43  kschultz | ||||||
|  |  * Demo updates for Windows (Robert Bergkvist) | ||||||
|  |  * | ||||||
|  * Revision 1.2  2000/06/27 17:04:43  brianp |  * Revision 1.2  2000/06/27 17:04:43  brianp | ||||||
|  * fixed compiler warnings |  * fixed compiler warnings | ||||||
|  * |  * | ||||||
| @@ -38,6 +45,9 @@ | |||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
| #include <math.h>       /* for cos(), sin(), and sqrt() */ | #include <math.h>       /* for cos(), sin(), and sqrt() */ | ||||||
|  | #ifdef _WIN32 | ||||||
|  | #include <windows.h> | ||||||
|  | #endif | ||||||
| #define GL_GLEXT_LEGACY | #define GL_GLEXT_LEGACY | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -11,15 +11,20 @@ | |||||||
| #include <math.h> | #include <math.h> | ||||||
| #include <time.h> | #include <time.h> | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  | #ifndef M_PI | ||||||
|  | #define M_PI 3.14159265 | ||||||
|  | #endif | ||||||
|  |  | ||||||
| #include "particles.h" | #include "particles.h" | ||||||
| extern "C" { | extern "C" { | ||||||
| #include "image.h" | #include "readtex.h" | ||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef WIN32 | #ifdef _WIN32 | ||||||
| #include <windows.h> | #include <windows.h> | ||||||
| #include <mmsystem.h> | #include <mmsystem.h> | ||||||
|  | #include "particles.cxx" | ||||||
|  | #include "readtex.c" | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef XMESA | #ifdef XMESA | ||||||
| @@ -297,20 +302,21 @@ static void key(unsigned char key, int x, int y) | |||||||
|  |  | ||||||
| static void inittextures(void) | static void inittextures(void) | ||||||
| { | { | ||||||
|   IMAGE *img; |   GLubyte *img; | ||||||
|  |   GLint width,height; | ||||||
|  |   GLenum format; | ||||||
|   GLenum gluerr; |   GLenum gluerr; | ||||||
|  |  | ||||||
|   glGenTextures(1,&groundid); |   glGenTextures(1,&groundid); | ||||||
|   glBindTexture(GL_TEXTURE_2D,groundid); |   glBindTexture(GL_TEXTURE_2D,groundid); | ||||||
|  |  | ||||||
|   if(!(img=ImageLoad("s128.rgb"))) { |   if(!(img=LoadRGBImage("../images/s128.rgb",&width,&height,&format))){ | ||||||
|     fprintf(stderr,"Error reading a texture.\n"); |   	fprintf(stderr,"Error reading a texture.\n"); | ||||||
|     exit(-1); |   	exit(-1); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   glPixelStorei(GL_UNPACK_ALIGNMENT,4); |   glPixelStorei(GL_UNPACK_ALIGNMENT,4); | ||||||
|   if((gluerr=(GLenum)gluBuild2DMipmaps(GL_TEXTURE_2D, 3, img->sizeX, img->sizeY, GL_RGB, |   if((gluerr=(GLenum)gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height,GL_RGB, | ||||||
| 			       GL_UNSIGNED_BYTE, (GLvoid *)(img->data)))) { | 			       GL_UNSIGNED_BYTE, (GLvoid *)(img)))) { | ||||||
|     fprintf(stderr,"GLULib%s\n",gluErrorString(gluerr)); |     fprintf(stderr,"GLULib%s\n",gluErrorString(gluerr)); | ||||||
|     exit(-1); |     exit(-1); | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -8,6 +8,7 @@ | |||||||
|  |  | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
| #include <math.h> | #include <math.h> | ||||||
|  |  | ||||||
| #ifdef WIN32 | #ifdef WIN32 | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: readpix.c,v 1.4 2000/10/16 21:24:39 brianp Exp $ */ | /* $Id: readpix.c,v 1.4.2.2 2002/07/12 15:50:46 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * glReadPixels and glCopyPixels test |  * glReadPixels and glCopyPixels test | ||||||
| @@ -8,6 +8,16 @@ | |||||||
|  |  | ||||||
| /* | /* | ||||||
|  * $Log: readpix.c,v $ |  * $Log: readpix.c,v $ | ||||||
|  |  * Revision 1.4.2.2  2002/07/12 15:50:46  brianp | ||||||
|  |  * Pedantic compiler fixes (Sven Panne) | ||||||
|  |  * | ||||||
|  |  * Revision 1.4.2.1  2002/05/01 14:53:52  alanh | ||||||
|  |  * glutSwapBuffers implicitly does a glFinish when swapping back to the front | ||||||
|  |  * buffer. We now issue a glFinish when not issuing SwapBuffers to ensure | ||||||
|  |  * the pipeline is complete. | ||||||
|  |  * | ||||||
|  |  * (Problem found with Chromium). | ||||||
|  |  * | ||||||
|  * Revision 1.4  2000/10/16 21:24:39  brianp |  * Revision 1.4  2000/10/16 21:24:39  brianp | ||||||
|  * use gray background, memset TempImage to white to help with debugging |  * use gray background, memset TempImage to white to help with debugging | ||||||
|  * |  * | ||||||
| @@ -173,6 +183,8 @@ Display( void ) | |||||||
|  |  | ||||||
|    if (!DrawFront) |    if (!DrawFront) | ||||||
|       glutSwapBuffers(); |       glutSwapBuffers(); | ||||||
|  |    else | ||||||
|  |       glFinish(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -234,7 +246,7 @@ Init( GLboolean ciMode ) | |||||||
|  |  | ||||||
|    if (ciMode) { |    if (ciMode) { | ||||||
|       /* Convert RGB image to grayscale */ |       /* Convert RGB image to grayscale */ | ||||||
|       GLubyte *indexImage = malloc( ImgWidth * ImgHeight ); |       GLubyte *indexImage = (GLubyte *) malloc( ImgWidth * ImgHeight ); | ||||||
|       GLint i; |       GLint i; | ||||||
|       for (i=0; i<ImgWidth*ImgHeight; i++) { |       for (i=0; i<ImgWidth*ImgHeight; i++) { | ||||||
|          int gray = Image[i*3] + Image[i*3+1] + Image[i*3+2]; |          int gray = Image[i*3] + Image[i*3+1] + Image[i*3+2]; | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: shadowtex.c,v 1.4 2001/02/28 18:41:50 brianp Exp $ */ | /* $Id: shadowtex.c,v 1.4.2.1 2002/07/12 15:50:46 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Shadow demo using the GL_SGIX_depth_texture, GL_SGIX_shadow and |  * Shadow demo using the GL_SGIX_depth_texture, GL_SGIX_shadow and | ||||||
| @@ -257,8 +257,8 @@ Display(void) | |||||||
|     */ |     */ | ||||||
|    if (DisplayMode == SHOW_DEPTH_MAPPING) { |    if (DisplayMode == SHOW_DEPTH_MAPPING) { | ||||||
|       /* load depth image as gray-scale luminance texture */ |       /* load depth image as gray-scale luminance texture */ | ||||||
|       GLfloat *depth = malloc(ShadowTexWidth * ShadowTexHeight |       GLfloat *depth = (GLfloat *) malloc(ShadowTexWidth * ShadowTexHeight | ||||||
|                               * sizeof(GLfloat)); |                                           * sizeof(GLfloat)); | ||||||
|       if (depth) { |       if (depth) { | ||||||
|          glReadPixels(0, 0, ShadowTexWidth, ShadowTexHeight, |          glReadPixels(0, 0, ShadowTexWidth, ShadowTexHeight, | ||||||
|                       GL_DEPTH_COMPONENT, GL_FLOAT, depth); |                       GL_DEPTH_COMPONENT, GL_FLOAT, depth); | ||||||
|   | |||||||
| @@ -11,6 +11,7 @@ | |||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <math.h> | #include <math.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
| #include <time.h> | #include <time.h> | ||||||
|  |  | ||||||
| #ifdef WIN32 | #ifdef WIN32 | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: tessdemo.c,v 1.11 2001/03/21 02:47:32 gareth Exp $ */ | /* $Id: tessdemo.c,v 1.11.2.2 2002/09/11 00:09:01 kschultz Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * A demo of the GLU polygon tesselation functions written by Bogdan Sikorski. |  * A demo of the GLU polygon tesselation functions written by Bogdan Sikorski. | ||||||
| @@ -90,7 +90,7 @@ static void GLCALLBACK edge_callback( GLenum flag ) | |||||||
|  |  | ||||||
| static void GLCALLBACK end_callback() | static void GLCALLBACK end_callback() | ||||||
| { | { | ||||||
|    GLint	i; |    GLuint	i; | ||||||
|  |  | ||||||
|    glBegin( GL_LINES ); |    glBegin( GL_LINES ); | ||||||
|  |  | ||||||
| @@ -165,6 +165,8 @@ static void set_screen_wh( GLsizei w, GLsizei h ) | |||||||
|    height = h; |    height = h; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | typedef void (GLAPIENTRY *callback_t)(); | ||||||
|  |  | ||||||
| static void tesse( void ) | static void tesse( void ) | ||||||
| { | { | ||||||
|    GLUtesselator	*tobj; |    GLUtesselator	*tobj; | ||||||
| @@ -177,11 +179,11 @@ static void tesse( void ) | |||||||
|  |  | ||||||
|    if ( tobj != NULL ) { |    if ( tobj != NULL ) { | ||||||
|       gluTessNormal( tobj, 0.0, 0.0, 1.0 ); |       gluTessNormal( tobj, 0.0, 0.0, 1.0 ); | ||||||
|       gluTessCallback( tobj, GLU_TESS_BEGIN, glBegin ); |       gluTessCallback( tobj, GLU_TESS_BEGIN, (callback_t) glBegin ); | ||||||
|       gluTessCallback( tobj, GLU_TESS_VERTEX, glVertex2fv ); |       gluTessCallback( tobj, GLU_TESS_VERTEX, (callback_t) glVertex2fv ); | ||||||
|       gluTessCallback( tobj, GLU_TESS_END, glEnd ); |       gluTessCallback( tobj, GLU_TESS_END, (callback_t) glEnd ); | ||||||
|       gluTessCallback( tobj, GLU_TESS_ERROR, error_callback ); |       gluTessCallback( tobj, GLU_TESS_ERROR, (callback_t) error_callback ); | ||||||
|       gluTessCallback( tobj, GLU_TESS_COMBINE, combine_callback ); |       gluTessCallback( tobj, GLU_TESS_COMBINE, (callback_t) combine_callback ); | ||||||
|  |  | ||||||
|       glNewList( list_start, GL_COMPILE ); |       glNewList( list_start, GL_COMPILE ); | ||||||
|       gluBeginPolygon( tobj ); |       gluBeginPolygon( tobj ); | ||||||
| @@ -201,10 +203,10 @@ static void tesse( void ) | |||||||
|       gluEndPolygon( tobj ); |       gluEndPolygon( tobj ); | ||||||
|       glEndList(); |       glEndList(); | ||||||
|  |  | ||||||
|       gluTessCallback( tobj, GLU_TESS_BEGIN, begin_callback ); |       gluTessCallback( tobj, GLU_TESS_BEGIN, (callback_t) begin_callback ); | ||||||
|       gluTessCallback( tobj, GLU_TESS_VERTEX, vertex_callback ); |       gluTessCallback( tobj, GLU_TESS_VERTEX, (callback_t) vertex_callback ); | ||||||
|       gluTessCallback( tobj, GLU_TESS_END, end_callback ); |       gluTessCallback( tobj, GLU_TESS_END, (callback_t) end_callback ); | ||||||
|       gluTessCallback( tobj, GLU_TESS_EDGE_FLAG, edge_callback ); |       gluTessCallback( tobj, GLU_TESS_EDGE_FLAG, (callback_t) edge_callback ); | ||||||
|  |  | ||||||
|       glNewList( list_start + 1, GL_COMPILE ); |       glNewList( list_start + 1, GL_COMPILE ); | ||||||
|       gluBeginPolygon( tobj ); |       gluBeginPolygon( tobj ); | ||||||
| @@ -308,6 +310,7 @@ static void mouse_clicked( int button, int state, int x, int y ) | |||||||
| static void display( void ) | static void display( void ) | ||||||
| { | { | ||||||
|    GLuint i,j; |    GLuint i,j; | ||||||
|  |    GLsizei ii, jj; | ||||||
|    GLuint point_cnt; |    GLuint point_cnt; | ||||||
|  |  | ||||||
|    glClear( GL_COLOR_BUFFER_BIT ); |    glClear( GL_COLOR_BUFFER_BIT ); | ||||||
| @@ -319,12 +322,12 @@ static void display( void ) | |||||||
|  |  | ||||||
|       glBegin( GL_LINES ); |       glBegin( GL_LINES ); | ||||||
|  |  | ||||||
|       for ( i = 0 ; i < width ; i += 10 ) { |       for ( ii = 0 ; ii < width ; ii += 10 ) { | ||||||
| 	 for ( j = 0 ; j < height ; j += 10 ) { | 	 for ( jj = 0 ; jj < height ; jj += 10 ) { | ||||||
| 	    glVertex2i( 0, j ); | 	    glVertex2i( 0, jj ); | ||||||
| 	    glVertex2i( width, j ); | 	    glVertex2i( width, jj ); | ||||||
| 	    glVertex2i( i, height ); | 	    glVertex2i( ii, height ); | ||||||
| 	    glVertex2i( i, 0 ); | 	    glVertex2i( ii, 0 ); | ||||||
| 	 } | 	 } | ||||||
|       } |       } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: trispd.c,v 1.2 2000/10/26 15:26:14 brianp Exp $ */ | /* $Id: trispd.c,v 1.2.2.1 2002/07/12 15:50:46 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Simple GLUT program to measure triangle strip rendering speed. |  * Simple GLUT program to measure triangle strip rendering speed. | ||||||
| @@ -7,6 +7,9 @@ | |||||||
|  |  | ||||||
| /* | /* | ||||||
|  * $Log: trispd.c,v $ |  * $Log: trispd.c,v $ | ||||||
|  |  * Revision 1.2.2.1  2002/07/12 15:50:46  brianp | ||||||
|  |  * Pedantic compiler fixes (Sven Panne) | ||||||
|  |  * | ||||||
|  * Revision 1.2  2000/10/26 15:26:14  brianp |  * Revision 1.2  2000/10/26 15:26:14  brianp | ||||||
|  * added a glFinish() call |  * added a glFinish() call | ||||||
|  * |  * | ||||||
| @@ -158,7 +161,7 @@ static void LoadTex(int comp, int filter) | |||||||
| { | { | ||||||
|    GLubyte *pixels; |    GLubyte *pixels; | ||||||
|    int x, y; |    int x, y; | ||||||
|    pixels = malloc(4*256*256); |    pixels = (GLubyte *) malloc(4*256*256); | ||||||
|    for (y = 0; y < 256; ++y) |    for (y = 0; y < 256; ++y) | ||||||
|       for (x = 0; x < 256; ++x) { |       for (x = 0; x < 256; ++x) { | ||||||
| 	 pixels[(y*256+x)*4+0] = (int)(128.5 + 127.0 * cos(0.024544 * x)); | 	 pixels[(y*256+x)*4+0] = (int)(128.5 + 127.0 * cos(0.024544 * x)); | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: winpos.c,v 1.3 2000/12/24 22:53:54 pesco Exp $ */ | /* $Id: winpos.c,v 1.3.2.1 2002/04/15 22:14:09 kschultz Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Example of how to use the GL_MESA_window_pos extension. |  * Example of how to use the GL_MESA_window_pos extension. | ||||||
| @@ -8,6 +8,13 @@ | |||||||
|  |  | ||||||
| /* | /* | ||||||
|  * $Log: winpos.c,v $ |  * $Log: winpos.c,v $ | ||||||
|  |  * Revision 1.3.2.1  2002/04/15 22:14:09  kschultz | ||||||
|  |  * Build demos/samples correctly on Windows (Robert Bergkvist) to sync up | ||||||
|  |  * with the main branch.  (I should have done this for 4.0.2) | ||||||
|  |  * | ||||||
|  |  * Revision 1.4  2002/01/16 00:48:43  kschultz | ||||||
|  |  * Demo updates for Windows (Robert Bergkvist) | ||||||
|  |  * | ||||||
|  * Revision 1.3  2000/12/24 22:53:54  pesco |  * Revision 1.3  2000/12/24 22:53:54  pesco | ||||||
|  * * demos/Makefile.am (INCLUDES): Added -I$(top_srcdir)/util. |  * * demos/Makefile.am (INCLUDES): Added -I$(top_srcdir)/util. | ||||||
|  * * demos/Makefile.X11, demos/Makefile.BeOS-R4, demos/Makefile.cygnus: |  * * demos/Makefile.X11, demos/Makefile.BeOS-R4, demos/Makefile.cygnus: | ||||||
| @@ -59,6 +66,9 @@ | |||||||
| #include <string.h> | #include <string.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #ifdef _WIN32 | ||||||
|  | #include <windows.h> | ||||||
|  | #endif | ||||||
| #define GL_GLEXT_LEGACY | #define GL_GLEXT_LEGACY | ||||||
| #include "GL/glut.h" | #include "GL/glut.h" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -19,6 +19,7 @@ | |||||||
|  |  | ||||||
| ggi_visual_t vis; | ggi_visual_t vis; | ||||||
| char text[100]; | char text[100]; | ||||||
|  | int db_flag,vis_x, vis_y, vir_x, vir_y, gt; | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Draw a gear wheel.  You'll probably want to call this function when |  * Draw a gear wheel.  You'll probably want to call this function when | ||||||
| @@ -157,6 +158,7 @@ static GLuint count = 1; | |||||||
|  |  | ||||||
| static void draw( void ) | static void draw( void ) | ||||||
| { | { | ||||||
|  |    static int n = 0; | ||||||
|    glClearColor(0,0,0,0); |    glClearColor(0,0,0,0); | ||||||
|    glClearIndex(0); |    glClearIndex(0); | ||||||
|    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); |    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); | ||||||
| @@ -197,12 +199,25 @@ static void draw( void ) | |||||||
|    ggiPuts(vis,0,ggiGetInfo(vis)->mode->visible.y+16,text); |    ggiPuts(vis,0,ggiGetInfo(vis)->mode->visible.y+16,text); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|    GGIMesaSwapBuffers(); |     if(db_flag) | ||||||
|  |    ggiMesaSwapBuffers(); | ||||||
|  			 |  			 | ||||||
|    count++; |    count++; | ||||||
|    if (count==limit) { |    if (count==limit) { | ||||||
|       exit(1); |       exit(1); | ||||||
|    } |    } | ||||||
|  |     ++n; | ||||||
|  |     /* | ||||||
|  |    if (!(n%10)){ | ||||||
|  | 	ggi_color rgb = { 10000, 10000, 10000 }; | ||||||
|  | 	ggiSetSimpleMode(vis,vis_x+(n/10),vis_y+(n/10),db_flag?2:1, gt);  | ||||||
|  | 	glViewport(0, 0,vis_x+(n/10),vis_y+(n/10)); | ||||||
|  | 	ggiSetGCForeground(vis, ggiMapColor(vis, &rgb)); | ||||||
|  | 	ggiDrawBox(vis, 20, 20, 100, 100); | ||||||
|  | 	if(db_flag) | ||||||
|  | 	  ggiSetWriteFrame(vis, 1); | ||||||
|  |     } | ||||||
|  |     */ | ||||||
| } | } | ||||||
|  |  | ||||||
| static void idle( void ) | static void idle( void ) | ||||||
| @@ -216,6 +231,10 @@ static void reshape( int width, int height ) | |||||||
| { | { | ||||||
|    GLfloat  h = (GLfloat) height / (GLfloat) width; |    GLfloat  h = (GLfloat) height / (GLfloat) width; | ||||||
|  |  | ||||||
|  |     if(db_flag) | ||||||
|  | 	glDrawBuffer(GL_BACK); | ||||||
|  |     else | ||||||
|  | 	glDrawBuffer(GL_FRONT); | ||||||
|    glViewport(0, 0, (GLint)width, (GLint)height); |    glViewport(0, 0, (GLint)width, (GLint)height); | ||||||
|    glMatrixMode(GL_PROJECTION); |    glMatrixMode(GL_PROJECTION); | ||||||
|    glLoadIdentity(); |    glLoadIdentity(); | ||||||
| @@ -231,8 +250,8 @@ static void reshape( int width, int height ) | |||||||
| static void init( void ) | static void init( void ) | ||||||
| { | { | ||||||
|    static GLfloat pos[4] = {5.0, 5.0, 10.0, 0.0 }; |    static GLfloat pos[4] = {5.0, 5.0, 10.0, 0.0 }; | ||||||
|    static GLfloat red[4] = {0.8, 0.1, 0.0, 1.0 }; |    static GLfloat red[4] = {0.9, 0.9, 0.9, 1.0 }; | ||||||
|    static GLfloat green[4] = {0.0, 0.8, 0.2, 1.0 }; |    static GLfloat green[4] = {0.0, 0.8, 0.9, 1.0 }; | ||||||
|    static GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0 }; |    static GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0 }; | ||||||
|  |  | ||||||
|    glLightfv( GL_LIGHT0, GL_POSITION, pos ); |    glLightfv( GL_LIGHT0, GL_POSITION, pos ); | ||||||
| @@ -276,9 +295,9 @@ static void usage(char *s) | |||||||
|  |  | ||||||
| int main( int argc, char *argv[] ) | int main( int argc, char *argv[] ) | ||||||
| { | { | ||||||
| 	GGIMesaContext ctx; | 	ggi_mesa_context_t ctx; | ||||||
| 	int vis_x,vis_y,vir_x,vir_y,bpp,db_flag,gt; |  | ||||||
| 	ggi_mode mode; | 	ggi_mode mode; | ||||||
|  | 	int bpp; | ||||||
|  |  | ||||||
| 	limit=0; | 	limit=0; | ||||||
|  |  | ||||||
| @@ -313,13 +332,12 @@ int main( int argc, char *argv[] ) | |||||||
| 		exit(1); | 		exit(1); | ||||||
| 	} | 	} | ||||||
|   |   | ||||||
| 	ctx=GGIMesaCreateContext();  | 	if (ggiMesaInit() < 0) | ||||||
| 	if (ctx==NULL) |  | ||||||
| 	{ | 	{ | ||||||
| 		printf("GGIMesaCreateContext() failed\n"); | 		printf("ggiMesaInit failed\n"); | ||||||
| 		exit(1); | 		exit(1); | ||||||
| 	} | 	} | ||||||
|  | 	 | ||||||
| 	vis=ggiOpen(NULL); | 	vis=ggiOpen(NULL); | ||||||
| 	if (vis==NULL) | 	if (vis==NULL) | ||||||
| 	{ | 	{ | ||||||
| @@ -327,29 +345,42 @@ int main( int argc, char *argv[] ) | |||||||
| 		exit(1); | 		exit(1); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if (ggiSetGraphMode(vis,vis_x,vis_y,vir_x,vir_y,gt)<0)  | 	if (ggiSetSimpleMode(vis,vis_x,vis_y,db_flag ? 2 : 1,gt)<0)  | ||||||
| 	{ | 	{ | ||||||
| 		printf("%s: can't set graphmode (%i %i %i %i)  %i BPP\n", | 		printf("%s: can't set graphmode (%i %i %i %i)  %i BPP\n", | ||||||
| 			argv[0],vis_x,vis_y,vir_x,vir_y,bpp); | 			argv[0],vis_x,vis_y,vir_x,vir_y,bpp); | ||||||
| 		exit(1); | 		exit(1); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if (GGIMesaSetVisual(ctx,vis,GL_TRUE,db_flag)<0) | 	if (ggiMesaAttach(vis) < 0) | ||||||
|  | 	{ | ||||||
|  | 		printf("ggiMesaAttach failed\n"); | ||||||
|  | 		exit(1); | ||||||
|  | 	} | ||||||
|  | 	if (ggiMesaExtendVisual(vis, GL_FALSE, GL_FALSE, 16, | ||||||
|  | 	                        0, 0, 0, 0, 0, 1)  < 0) | ||||||
| 	{ | 	{ | ||||||
| 		printf ("GGIMesaSetVisual() failed\n"); | 		printf ("GGIMesaSetVisual() failed\n"); | ||||||
| 		exit(1); | 		exit(1); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	GGIMesaMakeCurrent(ctx); | 	ctx = ggiMesaCreateContext(vis);  | ||||||
|  | 	if (ctx==NULL) | ||||||
|  | 	{ | ||||||
|  | 		printf("GGIMesaCreateContext() failed\n"); | ||||||
|  | 		exit(1); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	ggiMesaMakeCurrent(ctx, vis); | ||||||
| 	ggiGetMode(vis,&mode); | 	ggiGetMode(vis,&mode); | ||||||
|  |  | ||||||
| 	reshape(mode.visible.x,mode.visible.y); | 	reshape(mode.visible.x,mode.visible.y); | ||||||
|  |  | ||||||
| 	init(); | 	init(); | ||||||
|   |   | ||||||
| 	while (!ggiKbhit(vis)) idle(); | 	while (!ggiKbhit(vis)) { /*sleep(1);*/ idle(); } | ||||||
|  |  | ||||||
| 	GGIMesaDestroyContext(ctx); | 	ggiMesaDestroyContext(ctx); | ||||||
| 	ggiClose(vis); | 	ggiClose(vis); | ||||||
|  |  | ||||||
| 	printf("%s\n",text); | 	printf("%s\n",text); | ||||||
|   | |||||||
| @@ -1,62 +1,51 @@ | |||||||
| # Makefile for Win32 | # Makefile for Win32 | ||||||
|  |  | ||||||
| TOP = .. | TOP    = .. | ||||||
|  | INCDIR = ..\include | ||||||
| !include "$(TOP)/names.win" | LIBDIR = ..\lib | ||||||
|  |  | ||||||
| !include <win32.mak> | !include <win32.mak> | ||||||
|  |  | ||||||
| SRCS= \ | SRCS= \ | ||||||
|  |    aaindex.c \ | ||||||
|  |    aapoly.c \ | ||||||
|  |    aargb.c \ | ||||||
|    accanti.c \ |    accanti.c \ | ||||||
|    accnot.c   \ |    accpersp.c \ | ||||||
|    accum.c    \ |  | ||||||
|    aim.c      \ |  | ||||||
|    alpha.c    \ |    alpha.c    \ | ||||||
|    alpha3D.c  \ |    alpha3D.c  \ | ||||||
|    anti.c     \ |    anti.c     \ | ||||||
|    antiindex.c  \ |  | ||||||
|    antipindex.c \ |  | ||||||
|    antipoint.c  \ |  | ||||||
|    antipoly.c  \ |  | ||||||
|    bezcurve.c  \ |    bezcurve.c  \ | ||||||
|    bezmesh.c   \ |    bezmesh.c   \ | ||||||
|    bezsurf.c   \ |  | ||||||
|    checker.c   \ |    checker.c   \ | ||||||
|    checker2.c  \ |  | ||||||
|    chess.c     \ |  | ||||||
|    clip.c      \ |    clip.c      \ | ||||||
|    colormat.c  \ |    colormat.c  \ | ||||||
|    cone.c      \ |  | ||||||
|    cube.c      \ |    cube.c      \ | ||||||
|    curve.c     \ |  | ||||||
|    depthcue.c  \ |    depthcue.c  \ | ||||||
|    disk.c      \ |  | ||||||
|    dof.c       \ |    dof.c       \ | ||||||
|    dofnot.c    \ |  | ||||||
|    double.c    \ |    double.c    \ | ||||||
|    drawf.c     \ |    drawf.c     \ | ||||||
|    feedback.c  \ |    feedback.c  \ | ||||||
|    fog.c       \ |    fog.c       \ | ||||||
|    fogindex.c  \ |    fogindex.c  \ | ||||||
|    font.c      \ |    font.c      \ | ||||||
|  |    hello.c     \ | ||||||
|  |    image.c     \ | ||||||
|    light.c     \ |    light.c     \ | ||||||
|    linelist.c  \ |  | ||||||
|    lines.c     \ |    lines.c     \ | ||||||
|    list.c      \ |    list.c      \ | ||||||
|    list2.c     \ |  | ||||||
|    maplight.c  \ |  | ||||||
|    material.c  \ |    material.c  \ | ||||||
|    mipmap.c    \ |    mipmap.c    \ | ||||||
|    model.c     \ |    model.c     \ | ||||||
|    movelight.c \ |    movelight.c \ | ||||||
|    nurbs.c     \ |    nurbs.c     \ | ||||||
|    pickdepth.c \ |    pickdepth.c \ | ||||||
|    pickline.c  \ |  | ||||||
|    picksquare.c \ |    picksquare.c \ | ||||||
|    plane.c     \ |    plane.c     \ | ||||||
|    planet.c    \ |    planet.c    \ | ||||||
|    planetup.c  \ |    polyoff.c  \ | ||||||
|    polys.c     \ |    polys.c     \ | ||||||
|  |    quadric.c   \ | ||||||
|    robot.c     \ |    robot.c     \ | ||||||
|    sccolorlight.c \ |    sccolorlight.c \ | ||||||
|    scene.c     \ |    scene.c     \ | ||||||
| @@ -64,18 +53,26 @@ SRCS= \ | |||||||
|    sceneflat.c \ |    sceneflat.c \ | ||||||
|    select.c    \ |    select.c    \ | ||||||
|    smooth.c    \ |    smooth.c    \ | ||||||
|    sphere.c    \ |  | ||||||
|    stencil.c   \ |    stencil.c   \ | ||||||
|    stroke.c    \ |    stroke.c    \ | ||||||
|    surface.c   \ |    surface.c   \ | ||||||
|    tea.c       \ |  | ||||||
|    teaambient.c \ |    teaambient.c \ | ||||||
|    teapots.c   \ |    teapots.c   \ | ||||||
|  |    tess.c      \ | ||||||
|  |    tesswind.c  \ | ||||||
|  |    texbind.c   \ | ||||||
|    texgen.c    \ |    texgen.c    \ | ||||||
|  |    texprox.c   \ | ||||||
|  |    texsub.c    \ | ||||||
|    texturesurf.c \ |    texturesurf.c \ | ||||||
|    trim.c      |    torus.c     \ | ||||||
|  |    trim.c     \ | ||||||
| EXTRALIBS = $(MESAGL).lib $(MESAGLU).lib $(MESATK).lib $(MESAAUX).lib |    unproject.c \ | ||||||
|  |    varray.c   \ | ||||||
|  |    wrap.c | ||||||
|  |  | ||||||
| !include "$(TOP)/mesawin32.mak" | !include "$(TOP)/mesawin32.mak" | ||||||
|  |  | ||||||
|  | $(EXES) : $*.obj | ||||||
|  | 	@echo $@ | ||||||
|  | 	$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) | ||||||
| @@ -42,6 +42,7 @@ | |||||||
|  *  two rectangles.  This program clamps the texture, if |  *  two rectangles.  This program clamps the texture, if | ||||||
|  *  the texture coordinates fall outside 0.0 and 1.0. |  *  the texture coordinates fall outside 0.0 and 1.0. | ||||||
|  */ |  */ | ||||||
|  | #include <stdlib.h> | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  |  | ||||||
| /*	Create checkerboard texture	*/ | /*	Create checkerboard texture	*/ | ||||||
|   | |||||||
| @@ -62,7 +62,7 @@ selectFog(int mode) | |||||||
| 	/* falls through */ | 	/* falls through */ | ||||||
|     case GL_EXP2: |     case GL_EXP2: | ||||||
|     case GL_EXP: |     case GL_EXP: | ||||||
|         glFogi(GL_FOG_MODE, mode); | 	glFogiv(GL_FOG_MODE, (int *) &mode); | ||||||
| 	glutPostRedisplay(); | 	glutPostRedisplay(); | ||||||
| 	break; | 	break; | ||||||
|     case 0: |     case 0: | ||||||
| @@ -190,7 +190,7 @@ main(int argc, char **argv) | |||||||
|     glutDisplayFunc(display); |     glutDisplayFunc(display); | ||||||
|     glutCreateMenu(selectFog); |     glutCreateMenu(selectFog); | ||||||
|     glutAddMenuEntry("Fog EXP", GL_EXP); |     glutAddMenuEntry("Fog EXP", GL_EXP); | ||||||
|     glutAddMenuEntry("Fog EXP2", GL_EXP2); |     glutAddMenuEntry("Fog EXP2", /*GL_EXP2*/ 0xffff); | ||||||
|     glutAddMenuEntry("Fog LINEAR", GL_LINEAR); |     glutAddMenuEntry("Fog LINEAR", GL_LINEAR); | ||||||
|     glutAddMenuEntry("Quit", 0); |     glutAddMenuEntry("Quit", 0); | ||||||
|     glutAttachMenu(GLUT_RIGHT_BUTTON); |     glutAttachMenu(GLUT_RIGHT_BUTTON); | ||||||
|   | |||||||
| @@ -39,6 +39,7 @@ | |||||||
|  * hello.c |  * hello.c | ||||||
|  * This is a simple, introductory OpenGL program. |  * This is a simple, introductory OpenGL program. | ||||||
|  */ |  */ | ||||||
|  | #include <stdlib.h> | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  |  | ||||||
| void display(void) | void display(void) | ||||||
|   | |||||||
| @@ -103,8 +103,8 @@ drawRects(GLenum mode) | |||||||
| void | void | ||||||
| processHits(GLint hits, GLuint buffer[]) | processHits(GLint hits, GLuint buffer[]) | ||||||
| { | { | ||||||
|   unsigned int i, j; |   GLint i; | ||||||
|   GLuint names, *ptr; |   GLuint j, names, *ptr; | ||||||
|  |  | ||||||
|   printf("hits = %d\n", hits); |   printf("hits = %d\n", hits); | ||||||
|   ptr = (GLuint *) buffer; |   ptr = (GLuint *) buffer; | ||||||
|   | |||||||
| @@ -87,8 +87,8 @@ void drawSquares(GLenum mode) | |||||||
|  */ |  */ | ||||||
| void processHits (GLint hits, GLuint buffer[]) | void processHits (GLint hits, GLuint buffer[]) | ||||||
| { | { | ||||||
|    unsigned int i, j; |    GLint i; | ||||||
|    GLuint ii = 0, jj = 0, names, *ptr; |    GLuint j, ii = 0, jj = 0, names, *ptr; | ||||||
|  |  | ||||||
|    printf ("hits = %d\n", hits); |    printf ("hits = %d\n", hits); | ||||||
|    ptr = (GLuint *) buffer; |    ptr = (GLuint *) buffer; | ||||||
|   | |||||||
| @@ -44,6 +44,7 @@ | |||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
|  |  | ||||||
| #ifdef GL_VERSION_1_1 | #ifdef GL_VERSION_1_1 | ||||||
| GLuint list; | GLuint list; | ||||||
| @@ -149,7 +150,7 @@ static void Benchmark( float xdiff, float ydiff ) | |||||||
| { | { | ||||||
|    int startTime, endTime; |    int startTime, endTime; | ||||||
|    int draws; |    int draws; | ||||||
|    double seconds, fps, triPerSecond; |    double seconds, fps; | ||||||
|  |  | ||||||
|    printf("Benchmarking...\n"); |    printf("Benchmarking...\n"); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -124,8 +124,8 @@ void drawScene (void) | |||||||
|  */ |  */ | ||||||
| void processHits (GLint hits, GLuint buffer[]) | void processHits (GLint hits, GLuint buffer[]) | ||||||
| { | { | ||||||
|    unsigned int i, j; |    GLint i; | ||||||
|    GLuint names, *ptr; |    GLuint j, names, *ptr; | ||||||
|  |  | ||||||
|    printf ("hits = %d\n", hits); |    printf ("hits = %d\n", hits); | ||||||
|    ptr = (GLuint *) buffer; |    ptr = (GLuint *) buffer; | ||||||
|   | |||||||
| @@ -41,6 +41,7 @@ | |||||||
|  *  This program draws a NURBS surface in the shape of a |  *  This program draws a NURBS surface in the shape of a | ||||||
|  *  symmetrical hill. |  *  symmetrical hill. | ||||||
|  */ |  */ | ||||||
|  | #include <stdlib.h> | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  |  | ||||||
| GLfloat ctlpoints[4][4][3]; | GLfloat ctlpoints[4][4][3]; | ||||||
|   | |||||||
| @@ -94,7 +94,7 @@ void CALLBACK vertexCallback(GLvoid *vertex) | |||||||
|  |  | ||||||
|    pointer = (GLdouble *) vertex; |    pointer = (GLdouble *) vertex; | ||||||
|    glColor3dv(pointer+3); |    glColor3dv(pointer+3); | ||||||
|    glVertex3dv(vertex); |    glVertex3dv(pointer); | ||||||
| } | } | ||||||
|  |  | ||||||
| /*  combineCallback is used to create a new vertex when edges | /*  combineCallback is used to create a new vertex when edges | ||||||
|   | |||||||
							
								
								
									
										42
									
								
								progs/samples/Makefile.win
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								progs/samples/Makefile.win
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | |||||||
|  | # $Id: Makefile.win,v 1.1.2.1 2002/04/15 22:13:31 kschultz Exp $ | ||||||
|  |  | ||||||
|  | # Mesa 3-D graphics library | ||||||
|  | # Version:  3.5 | ||||||
|  | # Copyright (C) 1995-2001  Brian Paul | ||||||
|  |  | ||||||
|  | # Makefile for GLUT-based demo programs for Windows | ||||||
|  |  | ||||||
|  | !include <win32.mak> | ||||||
|  |  | ||||||
|  | ##### MACROS ##### | ||||||
|  |  | ||||||
|  | TOP    = .. | ||||||
|  | INCDIR = ..\include | ||||||
|  | LIBDIR = ..\lib | ||||||
|  |  | ||||||
|  | PROGS = accum bitmap1 bitmap2 blendeq blendxor copy cursor depth eval fog \ | ||||||
|  | 	font line logo nurb oglinfo olympic overlay point prim quad select \ | ||||||
|  | 	shape sphere star stencil stretch texture tri wave | ||||||
|  |  | ||||||
|  | SRCS = \ | ||||||
|  |     accum.c \ | ||||||
|  |     bitmap1.c \ | ||||||
|  |     bitmap2.c \ | ||||||
|  |     blendeq.c \ | ||||||
|  |     blendxor.c \ | ||||||
|  |     copy.c \ | ||||||
|  |     cursor.c depth.c eval.c fog.c \ | ||||||
|  | 	font.c line.c logo.c nurb.c olympic.c overlay.c point.c prim.c quad.c select.c \ | ||||||
|  | 	shape.c sphere.c star.c stencil.c stretch.c texture.c tri.c wave.c | ||||||
|  |  | ||||||
|  | !include "../mesawin32.mak" | ||||||
|  |  | ||||||
|  | ##### TARGETS ##### | ||||||
|  |  | ||||||
|  | clean:: | ||||||
|  |  | ||||||
|  | clobber:: | ||||||
|  |  | ||||||
|  | $(EXES) : $*.obj | ||||||
|  | 	@echo $@ | ||||||
|  | 	$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) | ||||||
| @@ -11,6 +11,10 @@ | |||||||
| #include <string.h> | #include <string.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | #ifdef _WIN32 | ||||||
|  | #include <windows.h> | ||||||
|  | #endif | ||||||
|  | #define GL_GLEXT_LEGACY | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,6 +10,10 @@ | |||||||
| #include <unistd.h> | #include <unistd.h> | ||||||
| #endif | #endif | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #ifdef _WIN32 | ||||||
|  | #include <windows.h> | ||||||
|  | #endif | ||||||
|  | #define GL_GLEXT_LEGACY | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
|  |  | ||||||
| typedef struct { | typedef struct { | ||||||
|     int sizeX, sizeY; |     size_t sizeX, sizeY; | ||||||
|     GLubyte *data; |     GLubyte *data; | ||||||
| } PPMImage; | } PPMImage; | ||||||
|  |  | ||||||
| @@ -30,7 +30,7 @@ static PPMImage *LoadPPM(const char *filename) | |||||||
| 	exit(1); | 	exit(1); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     result = malloc(sizeof(PPMImage)); |     result = (PPMImage *) malloc(sizeof(PPMImage)); | ||||||
|     if (!result) |     if (!result) | ||||||
|     { |     { | ||||||
| 	fprintf(stderr, "Unable to allocate memory\n"); | 	fprintf(stderr, "Unable to allocate memory\n"); | ||||||
| @@ -52,14 +52,15 @@ static PPMImage *LoadPPM(const char *filename) | |||||||
|     while (fgetc(fp) != '\n') |     while (fgetc(fp) != '\n') | ||||||
| 	; | 	; | ||||||
|  |  | ||||||
|     result->data = malloc(3 * result->sizeX * result->sizeY); |     result->data = (GLubyte *) malloc(3 * result->sizeX * result->sizeY); | ||||||
|     if (!result) |     if (!result) | ||||||
|     { |     { | ||||||
| 	fprintf(stderr, "Unable to allocate memory\n"); | 	fprintf(stderr, "Unable to allocate memory\n"); | ||||||
| 	exit(1); | 	exit(1); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if (fread(result->data, 3 * result->sizeX, result->sizeY, fp) != result->sizeY) |     if (fread(result->data, 3 * result->sizeX, result->sizeY, fp) !=  | ||||||
|  | 	result->sizeY) | ||||||
|     { |     { | ||||||
| 	fprintf(stderr, "Error loading image `%s'\n", filename); | 	fprintf(stderr, "Error loading image `%s'\n", filename); | ||||||
| 	exit(1); | 	exit(1); | ||||||
|   | |||||||
| @@ -216,11 +216,13 @@ static void CALLBACK ErrorCallback(GLenum which) | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | typedef void (GLAPIENTRY *callback_t)(); | ||||||
|  |  | ||||||
| static void Init(void) | static void Init(void) | ||||||
| { | { | ||||||
|  |  | ||||||
|     theNurbs = gluNewNurbsRenderer(); |     theNurbs = gluNewNurbsRenderer(); | ||||||
|     gluNurbsCallback(theNurbs, GLU_ERROR, ErrorCallback); |     gluNurbsCallback(theNurbs, GLU_ERROR, (callback_t) ErrorCallback); | ||||||
|  |  | ||||||
|     gluNurbsProperty(theNurbs, GLU_SAMPLING_TOLERANCE, 15.0); |     gluNurbsProperty(theNurbs, GLU_SAMPLING_TOLERANCE, 15.0); | ||||||
|     gluNurbsProperty(theNurbs, GLU_DISPLAY_MODE, GLU_OUTLINE_PATCH); |     gluNurbsProperty(theNurbs, GLU_DISPLAY_MODE, GLU_OUTLINE_PATCH); | ||||||
|   | |||||||
| @@ -102,6 +102,8 @@ static void CALLBACK ErrorHandler(GLenum which) | |||||||
|     fprintf(stderr, "Quad Error: %s\n", gluErrorString(which)); |     fprintf(stderr, "Quad Error: %s\n", gluErrorString(which)); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | typedef void (GLAPIENTRY *callback_t)(); | ||||||
|  |  | ||||||
| static void Init(void) | static void Init(void) | ||||||
| { | { | ||||||
|     static GLint colorIndexes[3] = {0, 200, 255}; |     static GLint colorIndexes[3] = {0, 200, 255}; | ||||||
| @@ -163,7 +165,7 @@ static void Init(void) | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     quadObj = gluNewQuadric(); |     quadObj = gluNewQuadric(); | ||||||
|     gluQuadricCallback(quadObj, GLU_ERROR, ErrorHandler); |     gluQuadricCallback(quadObj, GLU_ERROR, (callback_t) ErrorHandler); | ||||||
|  |  | ||||||
|     radius1 = 10; |     radius1 = 10; | ||||||
|     radius2 = 5; |     radius2 = 5; | ||||||
|   | |||||||
| @@ -174,7 +174,7 @@ static void DeleteTri(GLint h) | |||||||
| static void GrowTri(GLint h) | static void GrowTri(GLint h) | ||||||
| { | { | ||||||
|     float v[2]; |     float v[2]; | ||||||
|     float *oldV; |     float *oldV = NULL; | ||||||
|     GLint i; |     GLint i; | ||||||
|  |  | ||||||
|     v[0] = objects[h].v1[0] + objects[h].v2[0] + objects[h].v3[0]; |     v[0] = objects[h].v1[0] + objects[h].v2[0] + objects[h].v3[0]; | ||||||
|   | |||||||
| @@ -6,18 +6,17 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| CC = gcc | CC = gcc | ||||||
| CFLAGS = -g -I../include | CFLAGS = -g -I../include -I../util | ||||||
| LIBS = -L../lib -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXext -lm | LIBS = -L../lib -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXext -lm | ||||||
|  |  | ||||||
| PROGS = cva \ | PROGS = cva \ | ||||||
| 	dinoshade \ | 	dinoshade \ | ||||||
| 	fogcoord \ |  | ||||||
| 	manytex \ | 	manytex \ | ||||||
| 	multipal \ | 	multipal \ | ||||||
| 	projtex \ | 	projtex \ | ||||||
| 	seccolor \ |  | ||||||
| 	sharedtex \ | 	sharedtex \ | ||||||
| 	texline | 	seccolor \ | ||||||
|  | 	texline texwrap fogcoord multiwindow | ||||||
|  |  | ||||||
|  |  | ||||||
| ##### RULES ##### | ##### RULES ##### | ||||||
|   | |||||||
							
								
								
									
										39
									
								
								progs/tests/Makefile.win
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								progs/tests/Makefile.win
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | |||||||
|  | # $Id: Makefile.win,v 1.1.2.1 2002/04/15 22:13:00 kschultz Exp $ | ||||||
|  |  | ||||||
|  | # Mesa 3-D graphics library | ||||||
|  | # Version:  3.5 | ||||||
|  | # Copyright (C) 1995-2001  Brian Paul | ||||||
|  |  | ||||||
|  | # Makefile for GLUT-based demo programs for Windows | ||||||
|  |  | ||||||
|  | !include <win32.mak> | ||||||
|  |  | ||||||
|  | ##### MACROS ##### | ||||||
|  |  | ||||||
|  | TOP    = .. | ||||||
|  | INCDIR = ..\include | ||||||
|  | LIBDIR = ..\lib | ||||||
|  |  | ||||||
|  | SRCS = cva.c \ | ||||||
|  | 	dinoshade.c \ | ||||||
|  | 	fogcoord.c \ | ||||||
|  | 	manytex.c \ | ||||||
|  | 	multipal.c \ | ||||||
|  | 	projtex.c \ | ||||||
|  | 	seccolor.c \ | ||||||
|  | #	sharedtex.c \ | ||||||
|  | 	texline.c \ | ||||||
|  | 	texwrap.c | ||||||
|  | 	 | ||||||
|  | !include "../mesawin32.mak" | ||||||
|  |  | ||||||
|  | ##### TARGETS ##### | ||||||
|  |  | ||||||
|  | clean:: | ||||||
|  |  | ||||||
|  | clobber:: | ||||||
|  | 	@del readtex.c readtex.h | ||||||
|  |  | ||||||
|  | $(EXES) :$*.obj | ||||||
|  | 	@echo $@ | ||||||
|  | 	$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: cva.c,v 1.3 2000/11/30 03:06:56 gareth Exp $ */ | /* $Id: cva.c,v 1.3.2.1 2002/04/15 22:13:00 kschultz Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Trivial CVA test, good for testing driver fastpaths (especially |  * Trivial CVA test, good for testing driver fastpaths (especially | ||||||
| @@ -11,6 +11,9 @@ | |||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #ifdef _WIN32 | ||||||
|  | #include <windows.h> | ||||||
|  | #endif | ||||||
| #define GL_GLEXT_LEGACY | #define GL_GLEXT_LEGACY | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  |  | ||||||
| @@ -130,7 +133,7 @@ int main( int argc, char **argv ) | |||||||
|     */ |     */ | ||||||
|    string = (char *) glGetString( GL_VERSION ); |    string = (char *) glGetString( GL_VERSION ); | ||||||
|  |  | ||||||
|    if ( !strstr( string, "1.2" ) ) { |    if ( (!strstr( string, "1.2" ))&&(!strstr(string,"1.3"))) { | ||||||
|       fprintf( stderr, "This program requires OpenGL 1.2 vertex arrays.\n" ); |       fprintf( stderr, "This program requires OpenGL 1.2 vertex arrays.\n" ); | ||||||
|       exit( -1 ); |       exit( -1 ); | ||||||
|    } |    } | ||||||
|   | |||||||
| @@ -38,6 +38,10 @@ | |||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
| #include <math.h>       /* for cos(), sin(), and sqrt() */ | #include <math.h>       /* for cos(), sin(), and sqrt() */ | ||||||
|  | #ifdef _WIN32 | ||||||
|  | #include <windows.h> | ||||||
|  | #endif | ||||||
|  | #define GL_GLEXT_LEGACY | ||||||
| #include <GL/glut.h>    /* OpenGL Utility Toolkit header */ | #include <GL/glut.h>    /* OpenGL Utility Toolkit header */ | ||||||
|  |  | ||||||
| /* Some <math.h> files do not define M_PI... */ | /* Some <math.h> files do not define M_PI... */ | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: multipal.c,v 1.1 2000/11/18 17:12:33 brianp Exp $ */ | /* $Id: multipal.c,v 1.1.2.1 2002/04/15 22:13:00 kschultz Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * GL_ARB_multitexture demo |  * GL_ARB_multitexture demo | ||||||
| @@ -12,6 +12,13 @@ | |||||||
|  |  | ||||||
| /* | /* | ||||||
|  * $Log: multipal.c,v $ |  * $Log: multipal.c,v $ | ||||||
|  |  * Revision 1.1.2.1  2002/04/15 22:13:00  kschultz | ||||||
|  |  * Build demos/samples correctly on Windows (Robert Bergkvist) to sync up | ||||||
|  |  * with the main branch.  (I should have done this for 4.0.2) | ||||||
|  |  * | ||||||
|  |  * Revision 1.2  2002/01/16 01:03:25  kschultz | ||||||
|  |  * get tests working on windows (Robert Bergkvist) | ||||||
|  |  * | ||||||
|  * Revision 1.1  2000/11/18 17:12:33  brianp |  * Revision 1.1  2000/11/18 17:12:33  brianp | ||||||
|  * test texture palettes with multitexture |  * test texture palettes with multitexture | ||||||
|  * |  * | ||||||
| @@ -52,6 +59,10 @@ | |||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  | #ifdef _WIN32 | ||||||
|  | #include <windows.h> | ||||||
|  | #endif | ||||||
|  | #define GL_GLEXT_LEGACY | ||||||
| #include <GL/glut.h> | #include <GL/glut.h> | ||||||
|  |  | ||||||
| #include "../util/readtex.c"   /* I know, this is a hack. */ | #include "../util/readtex.c"   /* I know, this is a hack. */ | ||||||
|   | |||||||
							
								
								
									
										237
									
								
								progs/tests/yuv.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										237
									
								
								progs/tests/yuv.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,237 @@ | |||||||
|  | /* | ||||||
|  |  * Test the GL_NV_texture_rectangle and GL_MESA_ycrcb_texture extensions. | ||||||
|  |  * | ||||||
|  |  * Brian Paul   13 September 2002 | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #include <assert.h> | ||||||
|  | #include <math.h> | ||||||
|  | #include <stdio.h> | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
|  | #define GL_GLEXT_PROTOTYPES | ||||||
|  | #include <GL/glut.h> | ||||||
|  |  | ||||||
|  | #include "readtex.c"   /* I know, this is a hack. */ | ||||||
|  |  | ||||||
|  | #define TEXTURE_FILE "../images/girl.rgb" | ||||||
|  |  | ||||||
|  | static GLfloat Xrot = 0, Yrot = 0, Zrot = 0; | ||||||
|  | static GLint ImgWidth, ImgHeight; | ||||||
|  | static GLenum ImgFormat; | ||||||
|  | static GLubyte *Image = NULL; | ||||||
|  | static GLushort *ImageYUV = NULL; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | static void DrawObject(void) | ||||||
|  | { | ||||||
|  |    glBegin(GL_QUADS); | ||||||
|  |  | ||||||
|  |    glTexCoord2f(0, 0); | ||||||
|  |    glVertex2f(-1.0, -1.0); | ||||||
|  |  | ||||||
|  |    glTexCoord2f(ImgWidth, 0); | ||||||
|  |    glVertex2f(1.0, -1.0); | ||||||
|  |  | ||||||
|  |    glTexCoord2f(ImgWidth, ImgHeight); | ||||||
|  |    glVertex2f(1.0, 1.0); | ||||||
|  |  | ||||||
|  |    glTexCoord2f(0, ImgHeight); | ||||||
|  |    glVertex2f(-1.0, 1.0); | ||||||
|  |  | ||||||
|  |    glEnd(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | static void Display( void ) | ||||||
|  | { | ||||||
|  |    glClear( GL_COLOR_BUFFER_BIT ); | ||||||
|  |  | ||||||
|  |    glPushMatrix(); | ||||||
|  |       glRotatef(Xrot, 1.0, 0.0, 0.0); | ||||||
|  |       glRotatef(Yrot, 0.0, 1.0, 0.0); | ||||||
|  |       glRotatef(Zrot, 0.0, 0.0, 1.0); | ||||||
|  |       DrawObject(); | ||||||
|  |    glPopMatrix(); | ||||||
|  |  | ||||||
|  |    glutSwapBuffers(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | static void Reshape( int width, int height ) | ||||||
|  | { | ||||||
|  |    glViewport( 0, 0, width, height ); | ||||||
|  |    glMatrixMode( GL_PROJECTION ); | ||||||
|  |    glLoadIdentity(); | ||||||
|  |    glFrustum( -1.0, 1.0, -1.0, 1.0, 10.0, 100.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 27: | ||||||
|  |          exit(0); | ||||||
|  |          break; | ||||||
|  |    } | ||||||
|  |    glutPostRedisplay(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | static void SpecialKey( int key, int x, int y ) | ||||||
|  | { | ||||||
|  |    float step = 3.0; | ||||||
|  |    (void) x; | ||||||
|  |    (void) y; | ||||||
|  |  | ||||||
|  |    switch (key) { | ||||||
|  |       case GLUT_KEY_UP: | ||||||
|  |          Xrot += step; | ||||||
|  |          break; | ||||||
|  |       case GLUT_KEY_DOWN: | ||||||
|  |          Xrot -= step; | ||||||
|  |          break; | ||||||
|  |       case GLUT_KEY_LEFT: | ||||||
|  |          Yrot += step; | ||||||
|  |          break; | ||||||
|  |       case GLUT_KEY_RIGHT: | ||||||
|  |          Yrot -= step; | ||||||
|  |          break; | ||||||
|  |    } | ||||||
|  |    glutPostRedisplay(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #define CLAMP( X, MIN, MAX )  ( (X)<(MIN) ? (MIN) : ((X)>(MAX) ? (MAX) : (X)) ) | ||||||
|  |  | ||||||
|  | static void ConvertRGBtoYUV(GLint w, GLint h, const GLubyte *src, | ||||||
|  |                             GLushort *dest) | ||||||
|  | { | ||||||
|  |    GLint i, j; | ||||||
|  |  | ||||||
|  |    for (i = 0; i < h; i++) { | ||||||
|  |       for (j = 0; j < w; j++) { | ||||||
|  |          const GLfloat r = (*src++) / 255.0; | ||||||
|  |          const GLfloat g = (*src++) / 255.0; | ||||||
|  |          const GLfloat b = (*src++) / 255.0; | ||||||
|  |          GLfloat y, cr, cb; | ||||||
|  |          GLint iy, icr, icb; | ||||||
|  |  | ||||||
|  |          y  = r * 65.481 + g * 128.553 + b * 24.966 + 16; | ||||||
|  |          cb = r * -37.797 + g * -74.203 + b * 112.0 + 128; | ||||||
|  |          cr = r * 112.0 + g * -93.786 + b * -18.214 + 128; | ||||||
|  |          /*printf("%f %f %f -> %f %f %f\n", r, g, b, y, cb, cr);*/ | ||||||
|  |          iy  = (GLint) CLAMP(y,  0, 254); | ||||||
|  |          icb = (GLint) CLAMP(cb, 0, 254); | ||||||
|  |          icr = (GLint) CLAMP(cr, 0, 254); | ||||||
|  |  | ||||||
|  |          if (j & 1) { | ||||||
|  |             /* odd */ | ||||||
|  |             *dest = (iy << 8) | icr; | ||||||
|  |          } | ||||||
|  |          else { | ||||||
|  |             /* even */ | ||||||
|  |             *dest = (iy << 8) | icb; | ||||||
|  |          } | ||||||
|  |          dest++; | ||||||
|  |       } | ||||||
|  |    } | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | static void Init( int argc, char *argv[] ) | ||||||
|  | { | ||||||
|  |    GLuint texObj = 100; | ||||||
|  |    const char *file; | ||||||
|  |  | ||||||
|  |    if (!glutExtensionSupported("GL_NV_texture_rectangle")) { | ||||||
|  |       printf("Sorry, GL_NV_texture_rectangle is required\n"); | ||||||
|  |       exit(0); | ||||||
|  |    } | ||||||
|  |  | ||||||
|  |    if (!glutExtensionSupported("GL_MESA_ycbcr_texture")) { | ||||||
|  |       printf("Sorry, GL_MESA_ycbcr_texture is required\n"); | ||||||
|  |       exit(0); | ||||||
|  |    } | ||||||
|  |  | ||||||
|  |    glPixelStorei(GL_UNPACK_ALIGNMENT, 1); | ||||||
|  |  | ||||||
|  |    glBindTexture(GL_TEXTURE_RECTANGLE_NV, texObj); | ||||||
|  | #ifdef LINEAR_FILTER | ||||||
|  |    /* linear filtering looks much nicer but is much slower for Mesa */ | ||||||
|  |    glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | ||||||
|  |    glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_LINEAR); | ||||||
|  | #else | ||||||
|  |    glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MIN_FILTER, GL_NEAREST); | ||||||
|  |    glTexParameteri(GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_MAG_FILTER, GL_NEAREST); | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  |    if (argc > 1) | ||||||
|  |       file = argv[1]; | ||||||
|  |    else | ||||||
|  |       file = TEXTURE_FILE; | ||||||
|  |  | ||||||
|  |    Image = LoadRGBImage(file, &ImgWidth, &ImgHeight, &ImgFormat); | ||||||
|  |    if (!Image) { | ||||||
|  |       printf("Couldn't read %s\n", TEXTURE_FILE); | ||||||
|  |       exit(0); | ||||||
|  |    } | ||||||
|  |  | ||||||
|  | #if 0 | ||||||
|  |    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, | ||||||
|  |                 GL_RGB, ImgWidth, ImgHeight, 0, | ||||||
|  |                 ImgFormat, GL_UNSIGNED_BYTE, Image); | ||||||
|  | #else | ||||||
|  |    ImageYUV = (GLushort *) malloc(ImgWidth * ImgHeight * sizeof(GLushort)); | ||||||
|  |    ConvertRGBtoYUV(ImgWidth, ImgHeight, Image, ImageYUV); | ||||||
|  |    glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, | ||||||
|  |                 GL_YCBCR_MESA, ImgWidth, ImgHeight, 0, | ||||||
|  |                 GL_YCBCR_MESA, GL_UNSIGNED_SHORT_8_8_MESA, ImageYUV); | ||||||
|  |  | ||||||
|  |    assert(glGetError() == GL_NO_ERROR); | ||||||
|  |    glTexSubImage2D(GL_TEXTURE_RECTANGLE_NV, 0, | ||||||
|  |                    0, 0, ImgWidth, ImgHeight, | ||||||
|  |                    GL_YCBCR_MESA, GL_UNSIGNED_SHORT_8_8_MESA, ImageYUV); | ||||||
|  |  | ||||||
|  |    assert(glGetError() == GL_NO_ERROR); | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  |    glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); | ||||||
|  |  | ||||||
|  |    glEnable(GL_TEXTURE_RECTANGLE_NV); | ||||||
|  |  | ||||||
|  |    glShadeModel(GL_FLAT); | ||||||
|  |    glClearColor(0.3, 0.3, 0.4, 1.0); | ||||||
|  |  | ||||||
|  |    if (argc > 1 && strcmp(argv[1], "-info")==0) { | ||||||
|  |       printf("GL_RENDERER   = %s\n", (char *) glGetString(GL_RENDERER)); | ||||||
|  |       printf("GL_VERSION    = %s\n", (char *) glGetString(GL_VERSION)); | ||||||
|  |       printf("GL_VENDOR     = %s\n", (char *) glGetString(GL_VENDOR)); | ||||||
|  |       printf("GL_EXTENSIONS = %s\n", (char *) glGetString(GL_EXTENSIONS)); | ||||||
|  |    } | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | int main( int argc, char *argv[] ) | ||||||
|  | { | ||||||
|  |    glutInit( &argc, argv ); | ||||||
|  |    glutInitWindowSize( 300, 300 ); | ||||||
|  |    glutInitWindowPosition( 0, 0 ); | ||||||
|  |    glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE ); | ||||||
|  |    glutCreateWindow(argv[0] ); | ||||||
|  |  | ||||||
|  |    Init( argc, argv ); | ||||||
|  |  | ||||||
|  |    glutReshapeFunc( Reshape ); | ||||||
|  |    glutKeyboardFunc( Key ); | ||||||
|  |    glutSpecialFunc( SpecialKey ); | ||||||
|  |    glutDisplayFunc( Display ); | ||||||
|  |  | ||||||
|  |    glutMainLoop(); | ||||||
|  |    return 0; | ||||||
|  | } | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| # $Id: Makefile.X11,v 1.11 2001/03/23 22:48:35 brianp Exp $ | # $Id: Makefile.X11,v 1.11.2.1 2002/01/30 21:54:47 brianp Exp $ | ||||||
|  |  | ||||||
| # Mesa 3-D graphics library | # Mesa 3-D graphics library | ||||||
| # Version:  3.5 | # Version:  4.0.2 | ||||||
| # Copyright (C) 1995-2001  Brian Paul | # Copyright (C) 1995-2001  Brian Paul | ||||||
|  |  | ||||||
| # Makefile for non-GLUT (X11, SVGA, etc) demo programs | # Makefile for non-GLUT (X11, SVGA, etc) demo programs | ||||||
| @@ -12,9 +12,9 @@ | |||||||
| INCDIR = ../include | INCDIR = ../include | ||||||
| LIBDIR = ../lib | LIBDIR = ../lib | ||||||
|  |  | ||||||
| GL_LIBS = -L$(LIBDIR) -lglut -lGLU -lGL $(APP_LIB_DEPS) | GL_LIBS = -L$(LIBDIR) -lGLU -lGL $(APP_LIB_DEPS) | ||||||
|  |  | ||||||
| LIB_DEP = $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(GLU_LIB) $(LIBDIR)/$(GLUT_LIB) | LIB_DEP = $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(GLU_LIB) | ||||||
|  |  | ||||||
| PROGS = glthreads \ | PROGS = glthreads \ | ||||||
| 	glxdemo \ | 	glxdemo \ | ||||||
| @@ -43,7 +43,7 @@ PROGS = glthreads \ | |||||||
| ##### TARGETS ##### | ##### TARGETS ##### | ||||||
|  |  | ||||||
| default: | default: | ||||||
| 	@echo "Specify a target configuration" | 	@echo "Specify a target configuration (i.e. make -f Makefile.X11 linux)" | ||||||
|  |  | ||||||
| clean: | clean: | ||||||
| 	-rm *.o *~ | 	-rm *.o *~ | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: glthreads.c,v 1.1 2000/07/20 20:12:17 brianp Exp $ */ | /* $Id: glthreads.c,v 1.1.4.1 2002/03/08 19:43:36 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (C) 2000  Brian Paul   All Rights Reserved. |  * Copyright (C) 2000  Brian Paul   All Rights Reserved. | ||||||
| @@ -38,6 +38,7 @@ | |||||||
| #include <GL/glx.h> | #include <GL/glx.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
| #include <unistd.h> | #include <unistd.h> | ||||||
| #include <pthread.h> | #include <pthread.h> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: glxheads.c,v 1.2 2000/11/10 17:23:07 brianp Exp $ */ | /* $Id: glxheads.c,v 1.2.2.1 2002/03/08 19:43:36 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Exercise multiple GLX connections on multiple X displays. |  * Exercise multiple GLX connections on multiple X displays. | ||||||
| @@ -30,6 +30,7 @@ | |||||||
| #include <GL/glx.h> | #include <GL/glx.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
| #include <unistd.h> | #include <unistd.h> | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -247,9 +248,9 @@ static void | |||||||
| PrintInfo(const struct head *h) | PrintInfo(const struct head *h) | ||||||
| { | { | ||||||
|    printf("Name: %s\n", h->DisplayName); |    printf("Name: %s\n", h->DisplayName); | ||||||
|    printf("  Display:     0x%x\n", h->Dpy); |    printf("  Display:     0x%x\n", (int) h->Dpy); | ||||||
|    printf("  Window:      0x%x\n", h->Win); |    printf("  Window:      0x%x\n", (int) h->Win); | ||||||
|    printf("  Context:     0x%x\n", h->Context); |    printf("  Context:     0x%x\n", (int) h->Context); | ||||||
|    printf("  GL_VERSION:  %s\n", h->Version); |    printf("  GL_VERSION:  %s\n", h->Version); | ||||||
|    printf("  GL_VENDOR:   %s\n", h->Vendor); |    printf("  GL_VENDOR:   %s\n", h->Vendor); | ||||||
|    printf("  GL_RENDERER: %s\n", h->Renderer); |    printf("  GL_RENDERER: %s\n", h->Renderer); | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| /* $Id: glxinfo.c,v 1.14 2001/04/24 20:57:36 brianp Exp $ */ | /* $Id: glxinfo.c,v 1.14.2.5 2002/09/06 12:59:14 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. |  * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved. | ||||||
|  *  |  *  | ||||||
|  * Permission is hereby granted, free of charge, to any person obtaining a |  * Permission is hereby granted, free of charge, to any person obtaining a | ||||||
|  * copy of this software and associated documentation files (the "Software"), |  * copy of this software and associated documentation files (the "Software"), | ||||||
| @@ -29,6 +29,8 @@ | |||||||
|  *  -v                     print verbose information |  *  -v                     print verbose information | ||||||
|  *  -display DisplayName   specify the X display to interogate |  *  -display DisplayName   specify the X display to interogate | ||||||
|  *  -b                     only print ID of "best" visual on screen 0 |  *  -b                     only print ID of "best" visual on screen 0 | ||||||
|  |  *  -i                     use indirect rendering connection only | ||||||
|  |  *  -l                     print interesting OpenGL limits (added 5 Sep 2002) | ||||||
|  * |  * | ||||||
|  * Brian Paul  26 January 2000 |  * Brian Paul  26 January 2000 | ||||||
|  */ |  */ | ||||||
| @@ -148,7 +150,59 @@ print_display_info(Display *dpy) | |||||||
|  |  | ||||||
|  |  | ||||||
| static void | static void | ||||||
| print_screen_info(Display *dpy, int scrnum, Bool allowDirect) | print_limits(void) | ||||||
|  | { | ||||||
|  |    struct token_name { | ||||||
|  |       GLuint count; | ||||||
|  |       GLenum token; | ||||||
|  |       const char *name; | ||||||
|  |    }; | ||||||
|  |    static const struct token_name limits[] = { | ||||||
|  |       { 1, GL_MAX_ATTRIB_STACK_DEPTH, "GL_MAX_ATTRIB_STACK_DEPTH" }, | ||||||
|  |       { 1, GL_MAX_CLIENT_ATTRIB_STACK_DEPTH, "GL_MAX_CLIENT_ATTRIB_STACK_DEPTH" }, | ||||||
|  |       { 1, GL_MAX_CLIP_PLANES, "GL_MAX_CLIP_PLANES" }, | ||||||
|  |       { 1, GL_MAX_COLOR_MATRIX_STACK_DEPTH, "GL_MAX_COLOR_MATRIX_STACK_DEPTH" }, | ||||||
|  |       { 1, GL_MAX_ELEMENTS_VERTICES, "GL_MAX_ELEMENTS_VERTICES" }, | ||||||
|  |       { 1, GL_MAX_ELEMENTS_INDICES, "GL_MAX_ELEMENTS_INDICES" }, | ||||||
|  |       { 1, GL_MAX_EVAL_ORDER, "GL_MAX_EVAL_ORDER" }, | ||||||
|  |       { 1, GL_MAX_LIGHTS, "GL_MAX_LIGHTS" }, | ||||||
|  |       { 1, GL_MAX_LIST_NESTING, "GL_MAX_LIST_NESTING" }, | ||||||
|  |       { 1, GL_MAX_MODELVIEW_STACK_DEPTH, "GL_MAX_MODELVIEW_STACK_DEPTH" }, | ||||||
|  |       { 1, GL_MAX_NAME_STACK_DEPTH, "GL_MAX_NAME_STACK_DEPTH" }, | ||||||
|  |       { 1, GL_MAX_PIXEL_MAP_TABLE, "GL_MAX_PIXEL_MAP_TABLE" }, | ||||||
|  |       { 1, GL_MAX_PROJECTION_STACK_DEPTH, "GL_MAX_PROJECTION_STACK_DEPTH" }, | ||||||
|  |       { 1, GL_MAX_TEXTURE_STACK_DEPTH, "GL_MAX_TEXTURE_STACK_DEPTH" }, | ||||||
|  |       { 1, GL_MAX_TEXTURE_SIZE, "GL_MAX_TEXTURE_SIZE" }, | ||||||
|  |       { 1, GL_MAX_3D_TEXTURE_SIZE, "GL_MAX_3D_TEXTURE_SIZE" }, | ||||||
|  |       { 1, GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB, "GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB" }, | ||||||
|  |       { 1, GL_MAX_RECTANGLE_TEXTURE_SIZE_NV, "GL_MAX_RECTANGLE_TEXTURE_SIZE_NV" }, | ||||||
|  |       { 1, GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB, "GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB" }, | ||||||
|  |       { 1, GL_MAX_TEXTURE_UNITS_ARB, "GL_MAX_TEXTURE_UNITS_ARB" }, | ||||||
|  |       { 1, GL_MAX_TEXTURE_LOD_BIAS_EXT, "GL_MAX_TEXTURE_LOD_BIAS_EXT" }, | ||||||
|  |       { 1, GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT" }, | ||||||
|  |       { 2, GL_MAX_VIEWPORT_DIMS, "GL_MAX_VIEWPORT_DIMS" }, | ||||||
|  |       { 2, GL_ALIASED_LINE_WIDTH_RANGE, "GL_ALIASED_LINE_WIDTH_RANGE" }, | ||||||
|  |       { 2, GL_SMOOTH_LINE_WIDTH_RANGE, "GL_SMOOTH_LINE_WIDTH_RANGE" }, | ||||||
|  |       { 2, GL_ALIASED_POINT_SIZE_RANGE, "GL_ALIASED_POINT_SIZE_RANGE" }, | ||||||
|  |       { 2, GL_SMOOTH_POINT_SIZE_RANGE, "GL_SMOOTH_POINT_SIZE_RANGE" }, | ||||||
|  |       { 0, (GLenum) 0, NULL } | ||||||
|  |    }; | ||||||
|  |    GLint i, max[2]; | ||||||
|  |    printf("OpenGL limits:\n"); | ||||||
|  |    for (i = 0; limits[i].count; i++) { | ||||||
|  |       glGetIntegerv(limits[i].token, max); | ||||||
|  |       if (glGetError() == GL_NONE) { | ||||||
|  |          if (limits[i].count == 1) | ||||||
|  |             printf("    %s = %d\n", limits[i].name, max[0]); | ||||||
|  |          else /* XXX fix if we ever query something with more than 2 values */ | ||||||
|  |             printf("    %s = %d, %d\n", limits[i].name, max[0], max[1]); | ||||||
|  |       } | ||||||
|  |    } | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | static void | ||||||
|  | print_screen_info(Display *dpy, int scrnum, Bool allowDirect, GLboolean limits) | ||||||
| { | { | ||||||
|    Window win; |    Window win; | ||||||
|    int attribSingle[] = { |    int attribSingle[] = { | ||||||
| @@ -218,7 +272,7 @@ print_screen_info(Display *dpy, int scrnum, Bool allowDirect) | |||||||
|       const char *gluExtensions = (const char *) gluGetString(GLU_EXTENSIONS); |       const char *gluExtensions = (const char *) gluGetString(GLU_EXTENSIONS); | ||||||
| #endif | #endif | ||||||
|       /* Strip the screen number from the display name, if present. */ |       /* Strip the screen number from the display name, if present. */ | ||||||
|       if (!(displayName = malloc(strlen(DisplayString(dpy)) + 1))) { |       if (!(displayName = (char *) malloc(strlen(DisplayString(dpy)) + 1))) { | ||||||
|          fprintf(stderr, "Error: malloc() failed\n"); |          fprintf(stderr, "Error: malloc() failed\n"); | ||||||
|          exit(1); |          exit(1); | ||||||
|       } |       } | ||||||
| @@ -247,6 +301,8 @@ print_screen_info(Display *dpy, int scrnum, Bool allowDirect) | |||||||
|       printf("OpenGL version string: %s\n", glVersion); |       printf("OpenGL version string: %s\n", glVersion); | ||||||
|       printf("OpenGL extensions:\n"); |       printf("OpenGL extensions:\n"); | ||||||
|       print_extension_list(glExtensions); |       print_extension_list(glExtensions); | ||||||
|  |       if (limits) | ||||||
|  |          print_limits(); | ||||||
| #ifdef DO_GLU | #ifdef DO_GLU | ||||||
|       printf("glu version: %s\n", gluVersion); |       printf("glu version: %s\n", gluVersion); | ||||||
|       printf("glu extensions:\n"); |       printf("glu extensions:\n"); | ||||||
| @@ -408,7 +464,7 @@ print_visual_attribs_short_header(void) | |||||||
| static void | static void | ||||||
| print_visual_attribs_short(const struct visual_attribs *attribs) | print_visual_attribs_short(const struct visual_attribs *attribs) | ||||||
| { | { | ||||||
|    char *caveat; |    char *caveat = NULL; | ||||||
| #ifdef GLX_EXT_visual_rating | #ifdef GLX_EXT_visual_rating | ||||||
|    if (attribs->visualCaveat == GLX_NONE_EXT || attribs->visualCaveat == 0) |    if (attribs->visualCaveat == GLX_NONE_EXT || attribs->visualCaveat == 0) | ||||||
|       caveat = "None"; |       caveat = "None"; | ||||||
| @@ -416,6 +472,8 @@ print_visual_attribs_short(const struct visual_attribs *attribs) | |||||||
|       caveat = "Slow"; |       caveat = "Slow"; | ||||||
|    else if (attribs->visualCaveat == GLX_NON_CONFORMANT_VISUAL_EXT) |    else if (attribs->visualCaveat == GLX_NON_CONFORMANT_VISUAL_EXT) | ||||||
|       caveat = "Ncon"; |       caveat = "Ncon"; | ||||||
|  |    else | ||||||
|  |       caveat = "None"; | ||||||
| #else | #else | ||||||
|    caveat = "None"; |    caveat = "None"; | ||||||
| #endif  | #endif  | ||||||
| @@ -486,16 +544,16 @@ print_visual_attribs_long(const struct visual_attribs *attribs) | |||||||
| static void | static void | ||||||
| print_visual_info(Display *dpy, int scrnum, InfoMode mode) | print_visual_info(Display *dpy, int scrnum, InfoMode mode) | ||||||
| { | { | ||||||
|    XVisualInfo template; |    XVisualInfo theTemplate; | ||||||
|    XVisualInfo *visuals; |    XVisualInfo *visuals; | ||||||
|    int numVisuals; |    int numVisuals; | ||||||
|    long mask; |    long mask; | ||||||
|    int i; |    int i; | ||||||
|  |  | ||||||
|    /* get list of all visuals on this screen */ |    /* get list of all visuals on this screen */ | ||||||
|    template.screen = scrnum; |    theTemplate.screen = scrnum; | ||||||
|    mask = VisualScreenMask; |    mask = VisualScreenMask; | ||||||
|    visuals = XGetVisualInfo(dpy, mask, &template, &numVisuals); |    visuals = XGetVisualInfo(dpy, mask, &theTemplate, &numVisuals); | ||||||
|  |  | ||||||
|    if (mode == Verbose) { |    if (mode == Verbose) { | ||||||
|       for (i = 0; i < numVisuals; i++) { |       for (i = 0; i < numVisuals; i++) { | ||||||
| @@ -569,7 +627,7 @@ mesa_hack(Display *dpy, int scrnum) | |||||||
| static int | static int | ||||||
| find_best_visual(Display *dpy, int scrnum) | find_best_visual(Display *dpy, int scrnum) | ||||||
| { | { | ||||||
|    XVisualInfo template; |    XVisualInfo theTemplate; | ||||||
|    XVisualInfo *visuals; |    XVisualInfo *visuals; | ||||||
|    int numVisuals; |    int numVisuals; | ||||||
|    long mask; |    long mask; | ||||||
| @@ -577,9 +635,9 @@ find_best_visual(Display *dpy, int scrnum) | |||||||
|    struct visual_attribs bestVis; |    struct visual_attribs bestVis; | ||||||
|  |  | ||||||
|    /* get list of all visuals on this screen */ |    /* get list of all visuals on this screen */ | ||||||
|    template.screen = scrnum; |    theTemplate.screen = scrnum; | ||||||
|    mask = VisualScreenMask; |    mask = VisualScreenMask; | ||||||
|    visuals = XGetVisualInfo(dpy, mask, &template, &numVisuals); |    visuals = XGetVisualInfo(dpy, mask, &theTemplate, &numVisuals); | ||||||
|  |  | ||||||
|    /* init bestVis with first visual info */ |    /* init bestVis with first visual info */ | ||||||
|    get_visual_attribs(dpy, &visuals[0], &bestVis); |    get_visual_attribs(dpy, &visuals[0], &bestVis); | ||||||
| @@ -627,6 +685,7 @@ usage(void) | |||||||
|    printf("\t-h: This information.\n"); |    printf("\t-h: This information.\n"); | ||||||
|    printf("\t-i: Force an indirect rendering context.\n"); |    printf("\t-i: Force an indirect rendering context.\n"); | ||||||
|    printf("\t-b: Find the 'best' visual and print it's number.\n"); |    printf("\t-b: Find the 'best' visual and print it's number.\n"); | ||||||
|  |    printf("\t-l: Print interesting OpenGLl imits.\n"); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -638,6 +697,7 @@ main(int argc, char *argv[]) | |||||||
|    int numScreens, scrnum; |    int numScreens, scrnum; | ||||||
|    InfoMode mode = Normal; |    InfoMode mode = Normal; | ||||||
|    GLboolean findBest = GL_FALSE; |    GLboolean findBest = GL_FALSE; | ||||||
|  |    GLboolean limits = GL_FALSE; | ||||||
|    Bool allowDirect = True; |    Bool allowDirect = True; | ||||||
|    int i; |    int i; | ||||||
|  |  | ||||||
| @@ -658,6 +718,9 @@ main(int argc, char *argv[]) | |||||||
|       else if (strcmp(argv[i], "-i") == 0) { |       else if (strcmp(argv[i], "-i") == 0) { | ||||||
|          allowDirect = False; |          allowDirect = False; | ||||||
|       } |       } | ||||||
|  |       else if (strcmp(argv[i], "-l") == 0) { | ||||||
|  |          limits = GL_TRUE; | ||||||
|  |       } | ||||||
|       else if (strcmp(argv[i], "-h") == 0) { |       else if (strcmp(argv[i], "-h") == 0) { | ||||||
|          usage(); |          usage(); | ||||||
|          return 0; |          return 0; | ||||||
| @@ -686,7 +749,7 @@ main(int argc, char *argv[]) | |||||||
|       print_display_info(dpy); |       print_display_info(dpy); | ||||||
|       for (scrnum = 0; scrnum < numScreens; scrnum++) { |       for (scrnum = 0; scrnum < numScreens; scrnum++) { | ||||||
|          mesa_hack(dpy, scrnum); |          mesa_hack(dpy, scrnum); | ||||||
|          print_screen_info(dpy, scrnum, allowDirect); |          print_screen_info(dpy, scrnum, allowDirect, limits); | ||||||
|          printf("\n"); |          printf("\n"); | ||||||
|          print_visual_info(dpy, scrnum, mode); |          print_visual_info(dpy, scrnum, mode); | ||||||
|          if (scrnum + 1 < numScreens) |          if (scrnum + 1 < numScreens) | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: glxpixmap.c,v 1.2 2000/07/11 16:05:29 brianp Exp $ */ | /* $Id: glxpixmap.c,v 1.2.6.1 2002/07/12 15:50:46 brianp Exp $ */ | ||||||
|  |  | ||||||
|  |  | ||||||
| /* | /* | ||||||
| @@ -10,6 +10,7 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
| #include <GL/gl.h> | #include <GL/gl.h> | ||||||
|  | #define GLX_GLXEXT_PROTOTYPES | ||||||
| #include <GL/glx.h> | #include <GL/glx.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| /* $Id: manywin.c,v 1.4 2001/04/27 21:19:13 brianp Exp $ */ | /* $Id: manywin.c,v 1.4.2.1 2001/11/26 17:21:24 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Create N GLX windows/contexts and render to them in round-robin |  * Create N GLX windows/contexts and render to them in round-robin | ||||||
| @@ -29,6 +29,7 @@ | |||||||
| #include <GL/glx.h> | #include <GL/glx.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
| #include <unistd.h> | #include <unistd.h> | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -281,7 +282,7 @@ static void | |||||||
| PrintInfo(const struct head *h) | PrintInfo(const struct head *h) | ||||||
| { | { | ||||||
|    printf("Name: %s\n", h->DisplayName); |    printf("Name: %s\n", h->DisplayName); | ||||||
|    printf("  Display:     %p\n", h->Dpy); |    printf("  Display:     %p\n", (void *) h->Dpy); | ||||||
|    printf("  Window:      0x%x\n", (int) h->Win); |    printf("  Window:      0x%x\n", (int) h->Win); | ||||||
|    printf("  Context:     0x%x\n", (int) h->Context); |    printf("  Context:     0x%x\n", (int) h->Context); | ||||||
|    printf("  GL_VERSION:  %s\n", h->Version); |    printf("  GL_VERSION:  %s\n", h->Version); | ||||||
|   | |||||||
							
								
								
									
										99
									
								
								src/glu/mesa/Makefile.DJ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								src/glu/mesa/Makefile.DJ
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,99 @@ | |||||||
|  | # 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 glu makefile v1.1 for Mesa 4.0 | ||||||
|  | # | ||||||
|  | #  Copyright (C) 2002 - Borca Daniel | ||||||
|  | #  Email : dborca@yahoo.com | ||||||
|  | #  Web   : http://www.geocities.com/dborca | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # | ||||||
|  | #  Available options: | ||||||
|  | # | ||||||
|  | #    Environment variables: | ||||||
|  | #	CFLAGS | ||||||
|  | # | ||||||
|  | #    Targets: | ||||||
|  | #	all:		build GLU | ||||||
|  | #	clean:		remove object files | ||||||
|  | # | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .PHONY: all clean | ||||||
|  |  | ||||||
|  | TOP = .. | ||||||
|  | LIBDIR = $(TOP)/lib | ||||||
|  | GLU_LIB = libglu.a | ||||||
|  | GLU_DXE = glu.dxe | ||||||
|  | GLU_IMP = libiglu.a | ||||||
|  |  | ||||||
|  | CC = gcc | ||||||
|  | CFLAGS += -I$(TOP)/include | ||||||
|  |  | ||||||
|  | AR = ar | ||||||
|  | ARFLAGS = ru | ||||||
|  |  | ||||||
|  | ifneq ($(wildcard $(DJDIR)/lib/dxe2.ld),) | ||||||
|  | DXE2GEN = $(wildcard $(addsuffix /dxe2gen.exe,$(subst ;, ,$(PATH)))) | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | RM = del | ||||||
|  |  | ||||||
|  | CORE_SOURCES = \ | ||||||
|  | 	glu.c \ | ||||||
|  | 	mipmap.c \ | ||||||
|  | 	nurbs.c \ | ||||||
|  | 	nurbscrv.c \ | ||||||
|  | 	nurbssrf.c \ | ||||||
|  | 	nurbsutl.c \ | ||||||
|  | 	polytest.c \ | ||||||
|  | 	project.c \ | ||||||
|  | 	quadric.c \ | ||||||
|  | 	tess.c \ | ||||||
|  | 	tesselat.c | ||||||
|  |  | ||||||
|  | SOURCES = $(CORE_SOURCES) | ||||||
|  |  | ||||||
|  | OBJECTS = $(SOURCES:.c=.o) | ||||||
|  |  | ||||||
|  | .c.o: | ||||||
|  | 	$(CC) -o $@ -c $(CFLAGS) $< | ||||||
|  |  | ||||||
|  | all: $(LIBDIR)/$(GLU_LIB) $(LIBDIR)/$(GLU_DXE) $(LIBDIR)/$(GLU_IMP) | ||||||
|  |  | ||||||
|  | $(LIBDIR)/$(GLU_LIB): $(OBJECTS) | ||||||
|  | 	$(AR) $(ARFLAGS) $(LIBDIR)/$(GLU_LIB) $(OBJECTS) | ||||||
|  |  | ||||||
|  | $(LIBDIR)/$(GLU_DXE) $(LIBDIR)/$(GLU_IMP): $(OBJECTS) | ||||||
|  | ifeq ($(DXE2GEN),) | ||||||
|  | 	$(warning Missing DXE2GEN and/or DXE2.LD! You must have DXE2GEN) | ||||||
|  | 	$(warning somewhere in PATH, and DXE2.LD in DJGPP/LIB directory.) | ||||||
|  | else | ||||||
|  | 	-dxe2gen -o $(LIBDIR)/$(GLU_DXE) -I $(LIBDIR)/$(GLU_IMP) $(OBJECTS) -E djgpp_ -E glu -D "Mesa DJGPP GLU" -U | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | clean: | ||||||
|  | 	-$(RM) $(subst /,\,*.o) | ||||||
|  |  | ||||||
|  | -include depend | ||||||
| @@ -1,9 +1,9 @@ | |||||||
| /* $Id: glu.c,v 1.24 2001/03/20 17:56:10 brianp Exp $ */ | /* $Id: glu.c,v 1.24.2.1 2002/02/12 03:13:42 brianp Exp $ */ | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Mesa 3-D graphics library |  * Mesa 3-D graphics library | ||||||
|  * Version:  3.5 |  * Version:  4.0.2 | ||||||
|  * Copyright (C) 1995-2001  Brian Paul |  * Copyright (C) 1995-2002  Brian Paul | ||||||
|  * |  * | ||||||
|  * This library is free software; you can redistribute it and/or |  * This library is free software; you can redistribute it and/or | ||||||
|  * modify it under the terms of the GNU Library General Public |  * modify it under the terms of the GNU Library General Public | ||||||
| @@ -330,7 +330,7 @@ const GLubyte *GLAPIENTRY | |||||||
| gluGetString(GLenum name) | gluGetString(GLenum name) | ||||||
| { | { | ||||||
|    static char *extensions = "GL_EXT_abgr"; |    static char *extensions = "GL_EXT_abgr"; | ||||||
|    static char *version = "1.1 Mesa 3.5"; |    static char *version = "1.1 Mesa 4.0.2"; | ||||||
|  |  | ||||||
|    switch (name) { |    switch (name) { | ||||||
|    case GLU_EXTENSIONS: |    case GLU_EXTENSIONS: | ||||||
|   | |||||||
| @@ -1,11 +1,12 @@ | |||||||
| # $Id: Makefile.X11,v 1.5 2001/08/13 16:51:08 brianp Exp $ | # $Id: Makefile.X11,v 1.5.2.2 2002/01/08 15:58:11 brianp Exp $ | ||||||
|  |  | ||||||
| # Mesa 3-D graphics library | # Mesa 3-D graphics library | ||||||
| # Version:  3.5 | # Version:  4.0.1 | ||||||
| # Copyright (C) 1995-2001  Brian Paul | # Copyright (C) 1995-2001  Brian Paul | ||||||
|  |  | ||||||
| # Makefile for SGI SI GLU library | # Makefile for SGI SI GLU library | ||||||
|  |  | ||||||
|  | .SUFFIXES : .cc | ||||||
|  |  | ||||||
| ##### MACROS ##### | ##### MACROS ##### | ||||||
|  |  | ||||||
| @@ -121,11 +122,10 @@ OBJECTS = $(C_OBJECTS) $(CC_OBJECTS) | |||||||
| ##### RULES ##### | ##### RULES ##### | ||||||
|  |  | ||||||
| .c.o: | .c.o: | ||||||
| 	$(CC) -c $(INCDIRS) $(CFLAGS) -DLIBRARYBUILD $< -o $@ | 	$(CC) -c $(INCDIRS) $(CFLAGS) -DNDEBUG -DLIBRARYBUILD $< -o $@ | ||||||
|  |  | ||||||
| .cc.o: | .cc.o: | ||||||
| 	$(CPLUSPLUS) -c $(INCDIRS) $(CCFLAGS) -DLIBRARYBUILD $< -o $@ | 	$(CPLUSPLUS) -c $(INCDIRS) $(CCFLAGS) -DNDEBUG -DLIBRARYBUILD $< -o $@ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ##### TARGETS ##### | ##### TARGETS ##### | ||||||
|   | |||||||
| @@ -1,14 +1,5 @@ | |||||||
| # Makefile for Win32 | # Makefile for Win32 | ||||||
|  |  | ||||||
| # |  | ||||||
| # Sept 12, 2001 |  | ||||||
| # Note: The nurbs code is not being built at this time. |  | ||||||
| # If you want to work on it, uncomment the definitions |  | ||||||
| # noted below to try to compile the sources. |  | ||||||
| # There are numerous problems, some of which may be solved |  | ||||||
| # by setting some #defines. |  | ||||||
| # |  | ||||||
|  |  | ||||||
| !include <win32.mak> | !include <win32.mak> | ||||||
|  |  | ||||||
| .SUFFIXES : .cc | .SUFFIXES : .cc | ||||||
| @@ -116,16 +107,14 @@ all	: gludll | |||||||
|  |  | ||||||
| gludll	: $(GLUDLL) | gludll	: $(GLUDLL) | ||||||
|  |  | ||||||
| CFLAGS	= $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -Iinclude -DBUILD_GL32 | CFLAGS	= $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -Iinclude -DBUILD_GL32 -DLIBRARYBUILD | ||||||
| LFLAGS	= $(dlllflags) $(lcommon) $(LFLAGS) | LFLAGS	= $(dlllflags) $(lcommon) $(LFLAGS) | ||||||
|  |  | ||||||
| OBJS	= $(GLU_SRCS:.c=.obj) |  | ||||||
| LIBS	= ../lib/$(MESALIB) winmm.lib $(guilibsdll) | LIBS	= ../lib/$(MESALIB) winmm.lib $(guilibsdll) | ||||||
|  |  | ||||||
| # Uncomment these definitions to try to compile the NURBS code. | OBJS	= $(GLU_SRCS_CC:.cc=.obj) $(GLU_SRCS:.c=.obj) | ||||||
| #OBJS	= $(GLU_SRCS_CC:.cc=.obj) $(GLU_SRCS:.c=.obj) | NURBSINC = -Ilibnurbs\interface -Ilibnurbs\internals -Ilibnurbs\nurbtess  | ||||||
| #NURBSINC = -Ilibnurbs\interface -Ilibnurbs\internals -Ilibnurbs\nurbtess  | CFLAGS  = $(CFLAGS) $(NURBSINC) | ||||||
| #CFLAGS  = $(CFLAGS) $(NURBSINC) |  | ||||||
|  |  | ||||||
| $(GLUDLL): $(OBJS) glu.def | $(GLUDLL): $(OBJS) glu.def | ||||||
| 	$(link) $(LFLAGS) -out:$(GLUDLL) -def:glu.def $(OBJS) $(LIBS) | 	$(link) $(LFLAGS) -out:$(GLUDLL) -def:glu.def $(OBJS) $(LIBS) | ||||||
|   | |||||||
| @@ -1,8 +1,11 @@ | |||||||
| DESCRIPTION 'Mesa GLU (OpenGL work-alike) for Win32' | DESCRIPTION 'Mesa GLU (OpenGL work-alike) for Win32' | ||||||
| VERSION 3.5 | VERSION 4.0 | ||||||
|  |  | ||||||
| EXPORTS | EXPORTS | ||||||
|  | 	gluBeginCurve | ||||||
| 	gluBeginPolygon | 	gluBeginPolygon | ||||||
|  | 	gluBeginSurface | ||||||
|  | 	gluBeginTrim | ||||||
| 	gluBuild1DMipmapLevels | 	gluBuild1DMipmapLevels | ||||||
| 	gluBuild1DMipmaps | 	gluBuild1DMipmaps | ||||||
| 	gluBuild2DMipmapLevels | 	gluBuild2DMipmapLevels | ||||||
| @@ -11,22 +14,36 @@ EXPORTS | |||||||
| 	gluBuild3DMipmaps | 	gluBuild3DMipmaps | ||||||
| 	gluCheckExtension | 	gluCheckExtension | ||||||
| 	gluCylinder | 	gluCylinder | ||||||
|  | 	gluDeleteNurbsRenderer | ||||||
| 	gluDeleteQuadric | 	gluDeleteQuadric | ||||||
| 	gluDeleteTess | 	gluDeleteTess | ||||||
| 	gluDisk | 	gluDisk | ||||||
|  | 	gluEndCurve | ||||||
| 	gluEndPolygon | 	gluEndPolygon | ||||||
|  | 	gluEndSurface | ||||||
|  | 	gluEndTrim | ||||||
| 	gluErrorString | 	gluErrorString | ||||||
|  | 	gluGetNurbsProperty | ||||||
| 	gluGetString | 	gluGetString | ||||||
| 	gluGetTessProperty | 	gluGetTessProperty | ||||||
|  | 	gluLoadSamplingMatrices | ||||||
| 	gluLookAt | 	gluLookAt | ||||||
|  | 	gluNewNurbsRenderer | ||||||
| 	gluNewQuadric | 	gluNewQuadric | ||||||
| 	gluNewTess | 	gluNewTess | ||||||
| 	gluNextContour | 	gluNextContour | ||||||
|  | 	gluNurbsCallback | ||||||
|  | 	gluNurbsCallbackData | ||||||
|  | 	gluNurbsCallbackDataEXT | ||||||
|  | 	gluNurbsCurve | ||||||
|  | 	gluNurbsProperty | ||||||
|  | 	gluNurbsSurface | ||||||
| 	gluOrtho2D | 	gluOrtho2D | ||||||
| 	gluPartialDisk | 	gluPartialDisk | ||||||
| 	gluPerspective | 	gluPerspective | ||||||
| 	gluPickMatrix | 	gluPickMatrix | ||||||
| 	gluProject | 	gluProject | ||||||
|  | 	gluPwlCurve | ||||||
| 	gluQuadricCallback | 	gluQuadricCallback | ||||||
| 	gluQuadricDrawStyle | 	gluQuadricDrawStyle | ||||||
| 	gluQuadricNormals | 	gluQuadricNormals | ||||||
|   | |||||||
| @@ -31,10 +31,10 @@ | |||||||
| ** published by SGI, but has not been independently verified as being | ** published by SGI, but has not been independently verified as being | ||||||
| ** compliant with the OpenGL(R) version 1.2.1 Specification. | ** compliant with the OpenGL(R) version 1.2.1 Specification. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/03/17 00:25:40 $ $Revision: 1.1 $ | ** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $ | ||||||
| */ | */ | ||||||
| /* | /* | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/interface/bezierEval.cc,v 1.1 2001/03/17 00:25:40 brianp Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/interface/bezierEval.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| @@ -72,8 +72,8 @@ void bezierCurveEval(float u0, float u1, int order, float *ctlpoints, int stride | |||||||
| { | { | ||||||
|   float uprime = (u-u0)/(u1-u0); |   float uprime = (u-u0)/(u1-u0); | ||||||
|   float *ctlptr = ctlpoints; |   float *ctlptr = ctlpoints; | ||||||
|   float oneMinusX = 1.0-uprime; |   float oneMinusX = 1.0f-uprime; | ||||||
|   float XPower = 1.0; |   float XPower = 1.0f; | ||||||
|  |  | ||||||
|   int i,k; |   int i,k; | ||||||
|   for(k=0; k<dimension; k++) |   for(k=0; k<dimension; k++) | ||||||
| @@ -171,7 +171,7 @@ void bezierCurveEvalDerGen(int der, float u0, float u1, int order, float *ctlpoi | |||||||
|  */ |  */ | ||||||
| void bezierSurfEvalDerGen(int uder, int vder, float u0, float u1, int uorder, float v0, float v1, int vorder, int dimension, float *ctlpoints, int ustride, int vstride, float u, float v, float ret[]) | void bezierSurfEvalDerGen(int uder, int vder, float u0, float u1, int uorder, float v0, float v1, int vorder, int dimension, float *ctlpoints, int ustride, int vstride, float u, float v, float ret[]) | ||||||
| { | { | ||||||
|   int i,j,k; |   int i; | ||||||
|   float newPoints[MAX_ORDER][MAX_DIMENSION]; |   float newPoints[MAX_ORDER][MAX_DIMENSION]; | ||||||
|  |  | ||||||
|   for(i=0; i<uorder; i++){ |   for(i=0; i<uorder; i++){ | ||||||
| @@ -229,7 +229,7 @@ void bezierSurfEvalNormal(float u0, float u1, int uorder, float v0, float v1, in | |||||||
| /*if size is 0, then nothing is done*/ | /*if size is 0, then nothing is done*/ | ||||||
| static void normalize(float vec[3]) | static void normalize(float vec[3]) | ||||||
| { | { | ||||||
|   float size = sqrt(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2]); |   float size = (float)sqrt(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2]); | ||||||
|  |  | ||||||
|   if(size < TOLERANCE)  |   if(size < TOLERANCE)  | ||||||
|     { |     { | ||||||
|   | |||||||
| @@ -31,10 +31,10 @@ | |||||||
| ** published by SGI, but has not been independently verified as being | ** published by SGI, but has not been independently verified as being | ||||||
| ** compliant with the OpenGL(R) version 1.2.1 Specification. | ** compliant with the OpenGL(R) version 1.2.1 Specification. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/03/17 00:25:40 $ $Revision: 1.1 $ | ** $Date: 2002/02/12 03:14:58 $ $Revision: 1.1.2.1 $ | ||||||
| */ | */ | ||||||
| /* | /* | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/interface/insurfeval.cc,v 1.1 2001/03/17 00:25:40 brianp Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/interface/insurfeval.cc,v 1.1.2.1 2002/02/12 03:14:58 brianp Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #include "gluos.h" | #include "gluos.h" | ||||||
| @@ -528,11 +528,11 @@ void OpenGLSurfaceEvaluator::inComputeNormal2(REAL *pu, REAL *pv, REAL *n) | |||||||
|  |  | ||||||
|   mag = sqrt(n[0]*n[0] + n[1]*n[1] + n[2]*n[2]); |   mag = sqrt(n[0]*n[0] + n[1]*n[1] + n[2]*n[2]); | ||||||
|  |  | ||||||
|   assert(mag > 0.0); /*better be some threshold*/ |   if (mag > 0.0) { | ||||||
|   n[0] /= mag;  |      n[0] /= mag;  | ||||||
|   n[1] /= mag; |      n[1] /= mag; | ||||||
|   n[2] /= mag; |      n[2] /= mag; | ||||||
|  |   } | ||||||
| } | } | ||||||
|   |   | ||||||
|  |  | ||||||
|   | |||||||
| @@ -35,8 +35,8 @@ | |||||||
| /* | /* | ||||||
|  * mapdesc.c++ |  * mapdesc.c++ | ||||||
|  * |  * | ||||||
|  * $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ |  * $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $ | ||||||
|  * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mapdesc.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $ |  * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mapdesc.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| @@ -372,13 +372,13 @@ Mapdesc::xformAndCullCheck( | |||||||
| 	    unsigned int bits = clipbits( cpts ); | 	    unsigned int bits = clipbits( cpts ); | ||||||
| 	    outbits |= bits; | 	    outbits |= bits; | ||||||
| 	    inbits &= bits; | 	    inbits &= bits; | ||||||
| 	    if( ( outbits == mask ) && ( inbits != mask ) ) return CULL_ACCEPT; | 	    if( ( outbits == (unsigned int)mask ) && ( inbits != (unsigned int)mask ) ) return CULL_ACCEPT; | ||||||
| 	}  | 	}  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if( outbits != mask ) { |     if( outbits != (unsigned int)mask ) { | ||||||
| 	return CULL_TRIVIAL_REJECT; | 	return CULL_TRIVIAL_REJECT; | ||||||
|     } else if( inbits == mask ) { |     } else if( inbits == (unsigned int)mask ) { | ||||||
| 	return CULL_TRIVIAL_ACCEPT; | 	return CULL_TRIVIAL_ACCEPT; | ||||||
|     } else { |     } else { | ||||||
| 	return CULL_ACCEPT; | 	return CULL_ACCEPT; | ||||||
| @@ -404,13 +404,13 @@ Mapdesc::cullCheck( REAL *pts, int uorder, int ustride, int vorder, int vstride | |||||||
| 	    unsigned int bits = clipbits( q ); | 	    unsigned int bits = clipbits( q ); | ||||||
| 	    outbits |= bits; | 	    outbits |= bits; | ||||||
| 	    inbits &= bits; | 	    inbits &= bits; | ||||||
| 	    if( ( outbits == mask ) && ( inbits != mask ) ) return CULL_ACCEPT; | 	    if( ( outbits == (unsigned int)mask ) && ( inbits != (unsigned int)mask ) ) return CULL_ACCEPT; | ||||||
| 	}  | 	}  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if( outbits != mask ) { |     if( outbits != (unsigned int)mask ) { | ||||||
| 	return CULL_TRIVIAL_REJECT; | 	return CULL_TRIVIAL_REJECT; | ||||||
|     } else if( inbits == mask ) { |     } else if( inbits == (unsigned int)mask ) { | ||||||
| 	return CULL_TRIVIAL_ACCEPT; | 	return CULL_TRIVIAL_ACCEPT; | ||||||
|     } else { |     } else { | ||||||
| 	return CULL_ACCEPT; | 	return CULL_ACCEPT; | ||||||
| @@ -434,12 +434,12 @@ Mapdesc::cullCheck( REAL *pts, int order, int stride ) | |||||||
| 	unsigned int bits = clipbits( p ); | 	unsigned int bits = clipbits( p ); | ||||||
| 	outbits |= bits; | 	outbits |= bits; | ||||||
| 	inbits &= bits; | 	inbits &= bits; | ||||||
| 	if( ( outbits == mask ) && ( inbits != mask ) ) return CULL_ACCEPT; | 	if( ( outbits == (unsigned int)mask ) && ( inbits != (unsigned int)mask ) ) return CULL_ACCEPT; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     if( outbits != mask ) { |     if( outbits != (unsigned int)mask ) { | ||||||
| 	return CULL_TRIVIAL_REJECT; | 	return CULL_TRIVIAL_REJECT; | ||||||
|     } else if( inbits == mask ) { |     } else if( inbits == (unsigned int)mask ) { | ||||||
| 	return CULL_TRIVIAL_ACCEPT; | 	return CULL_TRIVIAL_ACCEPT; | ||||||
|     } else { |     } else { | ||||||
| 	return CULL_ACCEPT; | 	return CULL_ACCEPT; | ||||||
|   | |||||||
| @@ -35,8 +35,8 @@ | |||||||
| /* | /* | ||||||
|  * mesher.c++ |  * mesher.c++ | ||||||
|  * |  * | ||||||
|  * $Date: 2001/08/07 17:34:11 $ $Revision: 1.2 $ |  * $Date: 2001/11/29 16:38:27 $ $Revision: 1.2.2.1 $ | ||||||
|  * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mesher.cc,v 1.2 2001/08/07 17:34:11 brianp Exp $ |  * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/mesher.cc,v 1.2.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "glimports.h" | #include "glimports.h" | ||||||
| @@ -82,7 +82,7 @@ Mesher::init( unsigned int npts ) | |||||||
| inline void | inline void | ||||||
| Mesher::push( GridTrimVertex *gt ) | Mesher::push( GridTrimVertex *gt ) | ||||||
| { | { | ||||||
|     assert( itop+1 != stacksize ); |     assert( itop+1 != (int)stacksize ); | ||||||
|     vdata[++itop] = gt; |     vdata[++itop] = gt; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -35,8 +35,8 @@ | |||||||
| /* | /* | ||||||
|  * slicer.c++ |  * slicer.c++ | ||||||
|  * |  * | ||||||
|  * $Date: 2001/05/01 14:56:00 $ $Revision: 1.2 $ |  * $Date: 2002/06/30 16:58:50 $ $Revision: 1.2.2.1 $ | ||||||
|  * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/slicer.cc,v 1.2 2001/05/01 14:56:00 brianp Exp $ |  * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/slicer.cc,v 1.2.2.1 2002/06/30 16:58:50 brianp Exp $ | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| @@ -309,7 +309,6 @@ static void triangulateRectAux(PwlArc* top, PwlArc* bot, PwlArc* left, PwlArc* r | |||||||
|  |  | ||||||
| static void triangulateRect(Arc_ptr loop, Backend& backend, int TB_or_LR, int ulinear, int vlinear) | static void triangulateRect(Arc_ptr loop, Backend& backend, int TB_or_LR, int ulinear, int vlinear) | ||||||
| { | { | ||||||
|   int i; |  | ||||||
|   //we know the loop is a rectangle, but not sure which is top |   //we know the loop is a rectangle, but not sure which is top | ||||||
|   Arc_ptr top, bot, left, right; |   Arc_ptr top, bot, left, right; | ||||||
|   if(loop->tail()[1] == loop->head()[1]) |   if(loop->tail()[1] == loop->head()[1]) | ||||||
| @@ -572,8 +571,6 @@ static void triangulateRectCenter(int n_ulines, REAL* u_val, | |||||||
| 				  int n_vlines, REAL* v_val, | 				  int n_vlines, REAL* v_val, | ||||||
| 				  Backend& backend) | 				  Backend& backend) | ||||||
| { | { | ||||||
|   TrimVertex trimVert; |  | ||||||
|   trimVert.nuid = 0;//???? |  | ||||||
|  |  | ||||||
|   // XXX this code was patched by Diego Santa Cruz <Diego.SantaCruz@epfl.ch> |   // XXX this code was patched by Diego Santa Cruz <Diego.SantaCruz@epfl.ch> | ||||||
|   // to fix a problem in which glMapGrid2f() was called with bad parameters. |   // to fix a problem in which glMapGrid2f() was called with bad parameters. | ||||||
| @@ -1075,18 +1072,21 @@ void Slicer::slice_new(Arc_ptr loop) | |||||||
|   mydu = (du>0)? du: -du; |   mydu = (du>0)? du: -du; | ||||||
|   mydv = (dv>0)? dv: -dv; |   mydv = (dv>0)? dv: -dv; | ||||||
|  |  | ||||||
|  for(Arc_ptr jarc=loop->next; jarc != loop; jarc = jarc->next) |   for(Arc_ptr jarc=loop->next; jarc != loop; jarc = jarc->next) | ||||||
|   { |    { | ||||||
|  |  | ||||||
|     if(jarc->tail()[0] < uMin) |      if(jarc->tail()[0] < uMin) | ||||||
|       uMin = jarc->tail()[0]; |        uMin = jarc->tail()[0]; | ||||||
|     if(jarc->tail()[0] > uMax) |      if(jarc->tail()[0] > uMax) | ||||||
|       uMax = jarc->tail()[0]; |        uMax = jarc->tail()[0]; | ||||||
|     if(jarc->tail()[1] < vMin) |      if(jarc->tail()[1] < vMin) | ||||||
|       vMin = jarc->tail()[1]; |        vMin = jarc->tail()[1]; | ||||||
|     if(jarc->tail()[1] > vMax) |      if(jarc->tail()[1] > vMax) | ||||||
|       vMax = jarc->tail()[1]; |        vMax = jarc->tail()[1]; | ||||||
|   } |    } | ||||||
|  |  | ||||||
|  |   if (uMax == uMin) | ||||||
|  |     return; // prevent divide-by-zero.  Jon Perry.  17 June 2002 | ||||||
|  |  | ||||||
|   if(mydu > uMax - uMin) |   if(mydu > uMax - uMin) | ||||||
|     num_ulines = 2; |     num_ulines = 2; | ||||||
|   | |||||||
| @@ -35,8 +35,8 @@ | |||||||
| /* | /* | ||||||
|  * sorter.c++ |  * sorter.c++ | ||||||
|  * |  * | ||||||
|  * $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ |  * $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $ | ||||||
|  * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/sorter.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $ |  * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/internals/sorter.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "glimports.h" | #include "glimports.h" | ||||||
| @@ -84,7 +84,7 @@ Sorter::qs1( char *a,  char *l ) | |||||||
|     unsigned int n; |     unsigned int n; | ||||||
|  |  | ||||||
| start: | start: | ||||||
|     if((n=l-a) <= es) |     if((n=l-a) <= (unsigned int)es) | ||||||
| 	    return; | 	    return; | ||||||
|     n = es * (n / (2*es)); |     n = es * (n / (2*es)); | ||||||
|     hp = lp = a+n; |     hp = lp = a+n; | ||||||
|   | |||||||
| @@ -31,10 +31,10 @@ | |||||||
| ** published by SGI, but has not been independently verified as being | ** published by SGI, but has not been independently verified as being | ||||||
| ** compliant with the OpenGL(R) version 1.2.1 Specification. | ** compliant with the OpenGL(R) version 1.2.1 Specification. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ | ** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $ | ||||||
| */ | */ | ||||||
| /* | /* | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/directedLine.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| @@ -596,7 +596,7 @@ Real directedLine::polyArea() | |||||||
|       y2 = temp->next->head()[1]; |       y2 = temp->next->head()[1]; | ||||||
|       ret += -( x2*y1-x1*y2); |       ret += -( x2*y1-x1*y2); | ||||||
|     } |     } | ||||||
|   return 0.5*ret; |   return Real(0.5)*ret; | ||||||
| } | } | ||||||
|  |  | ||||||
| /*******************split or combine polygons begin********************/ | /*******************split or combine polygons begin********************/ | ||||||
|   | |||||||
| @@ -31,10 +31,10 @@ | |||||||
| ** published by SGI, but has not been independently verified as being | ** published by SGI, but has not been independently verified as being | ||||||
| ** compliant with the OpenGL(R) version 1.2.1 Specification. | ** compliant with the OpenGL(R) version 1.2.1 Specification. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ | ** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $ | ||||||
| */ | */ | ||||||
| /* | /* | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/partitionY.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| @@ -231,7 +231,7 @@ Int sweepRangeEqual(sweepRange* src1, sweepRange* src2) | |||||||
|  */ |  */ | ||||||
| inline/*static*/ Real intersectHoriz(Real x1, Real y1, Real x2, Real y2, Real y) | inline/*static*/ Real intersectHoriz(Real x1, Real y1, Real x2, Real y2, Real y) | ||||||
| { | { | ||||||
|   return ((y2==y1)? (x1+x2)*0.5 : x1 + ((y-y1)/(y2-y1)) * (x2-x1)); |   return ((y2==y1)? (x1+x2)*Real(0.5) : x1 + ((y-y1)/(y2-y1)) * (x2-x1)); | ||||||
| /* | /* | ||||||
|   if(y2 == y1) return (x1+x2)*0.5; |   if(y2 == y1) return (x1+x2)*0.5; | ||||||
|   else return x1 + ((y-y1)/(y2-y1)) * (x2-x1); |   else return x1 + ((y-y1)/(y2-y1)) * (x2-x1); | ||||||
| @@ -309,7 +309,7 @@ static Int compEdges(directedLine *e1, directedLine *e2) | |||||||
|   Real Ymax = min(e1_Ymax, e2_Ymax); |   Real Ymax = min(e1_Ymax, e2_Ymax); | ||||||
|   Real Ymin = max(e1_Ymin, e2_Ymin); |   Real Ymin = max(e1_Ymin, e2_Ymin); | ||||||
|      |      | ||||||
|   Real y = 0.5*(Ymax + Ymin); |   Real y = Real(0.5)*(Ymax + Ymin); | ||||||
|  |  | ||||||
| /*  Real x1 = intersectHoriz(e1->head()[0], e1->head()[1], e1->tail()[0], e1->tail()[1], y); | /*  Real x1 = intersectHoriz(e1->head()[0], e1->head()[1], e1->tail()[0], e1->tail()[1], y); | ||||||
|   Real x2 = intersectHoriz(e2->head()[0], e2->head()[1], e2->tail()[0], e2->tail()[1], y); |   Real x2 = intersectHoriz(e2->head()[0], e2->head()[1], e2->tail()[0], e2->tail()[1], y); | ||||||
|   | |||||||
| @@ -31,10 +31,10 @@ | |||||||
| ** published by SGI, but has not been independently verified as being | ** published by SGI, but has not been independently verified as being | ||||||
| ** compliant with the OpenGL(R) version 1.2.1 Specification. | ** compliant with the OpenGL(R) version 1.2.1 Specification. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ | ** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $ | ||||||
| */ | */ | ||||||
| /* | /* | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyDBG.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| @@ -395,7 +395,7 @@ poly->printList(); | |||||||
| */ | */ | ||||||
|   /*for debug purpose*/ |   /*for debug purpose*/ | ||||||
|   assert( (DBG_rayIntersectPoly(v,1,0,poly) % 2 ) |   assert( (DBG_rayIntersectPoly(v,1,0,poly) % 2 ) | ||||||
| 	 == (DBG_rayIntersectPoly(v,1,0.1234, poly) % 2 ) | 	 == (DBG_rayIntersectPoly(v,1,Real(0.1234), poly) % 2 ) | ||||||
| 	 ); | 	 ); | ||||||
|   if(DBG_rayIntersectPoly(v, 1, 0, poly) % 2 == 1) |   if(DBG_rayIntersectPoly(v, 1, 0, poly) % 2 == 1) | ||||||
|     return 1;  |     return 1;  | ||||||
|   | |||||||
| @@ -31,20 +31,24 @@ | |||||||
| ** published by SGI, but has not been independently verified as being | ** published by SGI, but has not been independently verified as being | ||||||
| ** compliant with the OpenGL(R) version 1.2.1 Specification. | ** compliant with the OpenGL(R) version 1.2.1 Specification. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ | ** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $ | ||||||
| */ | */ | ||||||
| /* | /* | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.h,v 1.1 2001/03/17 00:25:41 brianp Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/polyUtil.h,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #ifndef _POLYUTIL_H | #ifndef _POLYUTIL_H | ||||||
| #define _POLYUTIL_H | #define _POLYUTIL_H | ||||||
|  |  | ||||||
| #include "definitions.h" | #include "definitions.h" | ||||||
|  | #ifdef __cplusplus | ||||||
|  | extern "C" { | ||||||
|  | #endif | ||||||
| Real area(Real A[2], Real B[2], Real C[2]); | Real area(Real A[2], Real B[2], Real C[2]); | ||||||
|  |  | ||||||
| Int pointLeftLine(Real A[2], Real B[2],  Real P[2]); | Int pointLeftLine(Real A[2], Real B[2],  Real P[2]); | ||||||
| Int pointLeft2Lines(Real A[2], Real B[2], Real C[2], Real P[2]); | Int pointLeft2Lines(Real A[2], Real B[2], Real C[2], Real P[2]); | ||||||
|  | #ifdef __cplusplus | ||||||
|  | } | ||||||
|  | #endif | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -31,16 +31,23 @@ | |||||||
| ** published by SGI, but has not been independently verified as being | ** published by SGI, but has not been independently verified as being | ||||||
| ** compliant with the OpenGL(R) version 1.2.1 Specification. | ** compliant with the OpenGL(R) version 1.2.1 Specification. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ | ** $Date: 2002/04/17 19:30:19 $ $Revision: 1.1.2.1 $ | ||||||
| */ | */ | ||||||
| /* | /* | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/quicksort.cc,v 1.1.2.1 2002/04/17 19:30:19 brianp Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  |  | ||||||
| static void swap(void *v[], int i, int j); |  | ||||||
|  | static void swap(void *v[], int i, int j) | ||||||
|  | { | ||||||
|  |   void *temp; | ||||||
|  |   temp = v[i]; | ||||||
|  |   v[i] = v[j]; | ||||||
|  |   v[j] = temp; | ||||||
|  | } | ||||||
|  |  | ||||||
| /*as an example to use this function to | /*as an example to use this function to | ||||||
|  *sort integers, you need to supply the function |  *sort integers, you need to supply the function | ||||||
| @@ -58,7 +65,6 @@ void quicksort(void *v[], int left, int right, | |||||||
| 	       int (*comp) (void *, void *)) | 	       int (*comp) (void *, void *)) | ||||||
| { | { | ||||||
|   int i, last; |   int i, last; | ||||||
|   void swap(void *v[], int , int); |  | ||||||
|   if(left >= right) /*do nothing if array contains */ |   if(left >= right) /*do nothing if array contains */ | ||||||
|     return;         /*fewer than two elements*/ |     return;         /*fewer than two elements*/ | ||||||
|    |    | ||||||
| @@ -71,12 +77,3 @@ void quicksort(void *v[], int left, int right, | |||||||
|   quicksort(v, left, last-1, comp); |   quicksort(v, left, last-1, comp); | ||||||
|   quicksort(v, last+1, right, comp); |   quicksort(v, last+1, right, comp); | ||||||
| } | } | ||||||
|  |  | ||||||
| void swap(void *v[], int i, int j) |  | ||||||
| { |  | ||||||
|   void *temp; |  | ||||||
|   temp = v[i]; |  | ||||||
|   v[i] = v[j]; |  | ||||||
|   v[j] = temp; |  | ||||||
| } |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -31,10 +31,10 @@ | |||||||
| ** published by SGI, but has not been independently verified as being | ** published by SGI, but has not been independently verified as being | ||||||
| ** compliant with the OpenGL(R) version 1.2.1 Specification. | ** compliant with the OpenGL(R) version 1.2.1 Specification. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ | ** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $ | ||||||
| */ | */ | ||||||
| /* | /* | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompBot.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| @@ -327,7 +327,7 @@ Int findBotSeparator(vertexArray* leftChain, | |||||||
|     { |     { | ||||||
|       oldLeftI = leftCorner-1; |       oldLeftI = leftCorner-1; | ||||||
|       oldRightI = rightCorner; |       oldRightI = rightCorner; | ||||||
|       leftMax = leftChain->getVertex(leftCorner)[0] - 1.0 ; //initilize to be left of leftCorner |       leftMax = leftChain->getVertex(leftCorner)[0] - Real(1.0) ; //initilize to be left of leftCorner | ||||||
|       rightMin = rightChain->getVertex(rightCorner)[0];  |       rightMin = rightChain->getVertex(rightCorner)[0];  | ||||||
|     } |     } | ||||||
|   else //rightlower |   else //rightlower | ||||||
| @@ -335,7 +335,7 @@ Int findBotSeparator(vertexArray* leftChain, | |||||||
|       oldLeftI = leftCorner; |       oldLeftI = leftCorner; | ||||||
|       oldRightI = rightCorner-1; |       oldRightI = rightCorner-1; | ||||||
|       leftMax = leftChain->getVertex(leftCorner)[0]; |       leftMax = leftChain->getVertex(leftCorner)[0]; | ||||||
|       rightMin = rightChain->getVertex(rightCorner)[0] + 1.0; |       rightMin = rightChain->getVertex(rightCorner)[0] + Real(1.0); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   //i: the current working leftChain Index |   //i: the current working leftChain Index | ||||||
|   | |||||||
| @@ -31,10 +31,10 @@ | |||||||
| ** published by SGI, but has not been independently verified as being | ** published by SGI, but has not been independently verified as being | ||||||
| ** compliant with the OpenGL(R) version 1.2.1 Specification. | ** compliant with the OpenGL(R) version 1.2.1 Specification. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ | ** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $ | ||||||
| */ | */ | ||||||
| /* | /* | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampleCompTop.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| @@ -343,7 +343,7 @@ Int findTopSeparator(vertexArray* leftChain, | |||||||
|     { |     { | ||||||
|       oldLeftI = leftEndIndex+1; |       oldLeftI = leftEndIndex+1; | ||||||
|       oldRightI = rightEndIndex; |       oldRightI = rightEndIndex; | ||||||
|       leftMax =  leftChain->getVertex(leftEndIndex)[0] - 1.0; //initilza to left of leftU |       leftMax =  leftChain->getVertex(leftEndIndex)[0] - Real(1.0); //initilza to left of leftU | ||||||
|       rightMin = rightChain->getVertex(rightEndIndex)[0]; |       rightMin = rightChain->getVertex(rightEndIndex)[0]; | ||||||
|     } |     } | ||||||
|   else |   else | ||||||
| @@ -351,7 +351,7 @@ Int findTopSeparator(vertexArray* leftChain, | |||||||
|       oldLeftI = leftEndIndex; |       oldLeftI = leftEndIndex; | ||||||
|       oldRightI = rightEndIndex+1; |       oldRightI = rightEndIndex+1; | ||||||
|       leftMax =  leftChain->getVertex(leftEndIndex)[0];  |       leftMax =  leftChain->getVertex(leftEndIndex)[0];  | ||||||
|       rightMin = rightChain->getVertex(rightEndIndex)[0] + 1.0;       |       rightMin = rightChain->getVertex(rightEndIndex)[0] + Real(1.0);       | ||||||
|     } |     } | ||||||
|    |    | ||||||
|   //i: the current working leftChain index,  |   //i: the current working leftChain index,  | ||||||
| @@ -826,19 +826,19 @@ static void sampleCompTopSimpleOpt(gridWrap* grid, | |||||||
|          //find l in [j, k-1] so that dec_chain[l][0] 0 is closest to |          //find l in [j, k-1] so that dec_chain[l][0] 0 is closest to | ||||||
|          // inc_chain[i] |          // inc_chain[i] | ||||||
|          int l; |          int l; | ||||||
|          Real tempI = j; |          Real tempI = Real(j); | ||||||
|          Real tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]); |          Real tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]); | ||||||
|          for(l=j+1; l<= k-1; l++) |          for(l=j+1; l<= k-1; l++) | ||||||
| 	   { | 	   { | ||||||
| 	     if(fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]) | 	     if(fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]) | ||||||
| 		<= tempMin) | 		<= tempMin) | ||||||
| 	       { | 	       { | ||||||
| 		 tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]); | 		 tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]); | ||||||
| 		 tempI = l; | 		 tempI = (Real)l; | ||||||
| 	       } | 	       } | ||||||
| 	   } | 	   } | ||||||
| 	 //inc_chain[i] and dec_chain[tempI] are connected. | 	 //inc_chain[i] and dec_chain[tempI] are connected. | ||||||
| 	 monoTriangulationRecGenOpt(dec_chain->getVertex(tempI), | 	 monoTriangulationRecGenOpt(dec_chain->getVertex((int)tempI), | ||||||
| 				    botVertex, | 				    botVertex, | ||||||
| 				    inc_chain, i, inc_end, | 				    inc_chain, i, inc_end, | ||||||
| 				    dec_chain, (int)(tempI+1), dec_end, | 				    dec_chain, (int)(tempI+1), dec_end, | ||||||
| @@ -866,12 +866,12 @@ static void sampleCompTopSimpleOpt(gridWrap* grid, | |||||||
| 	  //inc_chain[l][0] is the closet to dec_chain[j][0] | 	  //inc_chain[l][0] is the closet to dec_chain[j][0] | ||||||
| 	  int tempI = i; | 	  int tempI = i; | ||||||
| 	  int l; | 	  int l; | ||||||
| 	  Real tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]); | 	  Real tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]); | ||||||
| 	  for(l=i+1; l<=k-1; l++) | 	  for(l=i+1; l<=k-1; l++) | ||||||
| 	    { | 	    { | ||||||
| 	      if(fabs(inc_chain->getVertex(l)[0] - dec_chain->getVertex(j)[0]) <= tempMin) | 	      if(fabs(inc_chain->getVertex(l)[0] - dec_chain->getVertex(j)[0]) <= tempMin) | ||||||
| 		{ | 		{ | ||||||
| 		  tempMin = fabs(inc_chain->getVertex(l)[0] - dec_chain->getVertex(j)[0]); | 		  tempMin = (Real)fabs(inc_chain->getVertex(l)[0] - dec_chain->getVertex(j)[0]); | ||||||
| 		  tempI = l; | 		  tempI = l; | ||||||
| 		} | 		} | ||||||
| 	    }				 	       | 	    }				 	       | ||||||
|   | |||||||
| @@ -31,10 +31,10 @@ | |||||||
| ** published by SGI, but has not been independently verified as being | ** published by SGI, but has not been independently verified as being | ||||||
| ** compliant with the OpenGL(R) version 1.2.1 Specification. | ** compliant with the OpenGL(R) version 1.2.1 Specification. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/03/17 00:25:41 $ $Revision: 1.1 $ | ** $Date: 2001/11/29 16:38:27 $ $Revision: 1.1.2.1 $ | ||||||
| */ | */ | ||||||
| /* | /* | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.cc,v 1.1 2001/03/17 00:25:41 brianp Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libnurbs/nurbtess/sampledLine.cc,v 1.1.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| @@ -96,7 +96,6 @@ sampledLine::sampledLine(Int n_points, Real2 pts[]) | |||||||
|  |  | ||||||
| sampledLine::sampledLine(Real pt1[2], Real pt2[2]) | sampledLine::sampledLine(Real pt1[2], Real pt2[2]) | ||||||
| { | { | ||||||
|   int i; |  | ||||||
|   npoints = 2; |   npoints = 2; | ||||||
|   points = (Real2*) malloc(sizeof(Real2) * 2); |   points = (Real2*) malloc(sizeof(Real2) * 2); | ||||||
|   assert(points); |   assert(points); | ||||||
|   | |||||||
| @@ -35,14 +35,14 @@ | |||||||
| /* | /* | ||||||
| ** Author: Eric Veach, July 1994. | ** Author: Eric Veach, July 1994. | ||||||
| ** | ** | ||||||
| ** $Date: 2001/07/20 11:20:32 $ $Revision: 1.2 $ | ** $Date: 2001/11/30 20:12:38 $ $Revision: 1.2.2.1 $ | ||||||
| ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libtess/memalloc.h,v 1.2 2001/07/20 11:20:32 joukj Exp $ | ** $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/src/glu/sgi/libtess/memalloc.h,v 1.2.2.1 2001/11/30 20:12:38 kschultz Exp $ | ||||||
| */ | */ | ||||||
|  |  | ||||||
| #ifndef __memalloc_simple_h_ | #ifndef __memalloc_simple_h_ | ||||||
| #define __memalloc_simple_h_ | #define __memalloc_simple_h_ | ||||||
|  |  | ||||||
| #ifdef __VMS | #if defined(__VMS) || defined(darwin) | ||||||
| # include <stdlib.h> | # include <stdlib.h> | ||||||
| #else | #else | ||||||
| # include <malloc.h> | # include <malloc.h> | ||||||
|   | |||||||
							
								
								
									
										136
									
								
								src/glut/dos/Makefile.DJ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								src/glut/dos/Makefile.DJ
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,136 @@ | |||||||
|  | # 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 glut makefile v1.1 for Mesa 4.0 | ||||||
|  | # | ||||||
|  | #  Copyright (C) 2002 - Borca Daniel | ||||||
|  | #  Email : dborca@yahoo.com | ||||||
|  | #  Web   : http://www.geocities.com/dborca | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # | ||||||
|  | #  Available options: | ||||||
|  | # | ||||||
|  | #    Environment variables: | ||||||
|  | #	CFLAGS | ||||||
|  | # | ||||||
|  | #	GLIDE		absolute path to Glide SDK; used with FX. | ||||||
|  | #			default = $(TOP)/include/glide3 | ||||||
|  | #	FX=1		build for 3dfx Glide3; use it if you have the glide | ||||||
|  | #			SDK (designed for your platform), and, of course, a | ||||||
|  | #			3dfx card... Note that this disables compilation of | ||||||
|  | #			actual DMesa code, as Glide does all the stuff! | ||||||
|  | #			default = no | ||||||
|  | #	MARK		absolute path to original GLUT. | ||||||
|  | #			default = $(TOP)/src-glut | ||||||
|  | # | ||||||
|  | #    Targets: | ||||||
|  | #	all:		build GLUT | ||||||
|  | #	clean:		remove object files | ||||||
|  | # | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .PHONY: all clean | ||||||
|  |  | ||||||
|  | TOP = .. | ||||||
|  | GLIDE ?= $(TOP)/include/glide3 | ||||||
|  | MARK ?= $(TOP)/src-glut | ||||||
|  | LIBDIR = $(TOP)/lib | ||||||
|  | GLUT_LIB = libglut.a | ||||||
|  | GLUT_DXE = glut.dxe | ||||||
|  | GLUT_IMP = libiglut.a | ||||||
|  |  | ||||||
|  | CC = gcc | ||||||
|  | CFLAGS += -I$(TOP)/include -I$(MARK) | ||||||
|  | ifdef FX | ||||||
|  | CFLAGS += -D__DOS__ -I$(GLIDE) -DFX -DFX_GLIDE3 -DFXMESA_USE_ARGB | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | AR = ar | ||||||
|  | ARFLAGS = ru | ||||||
|  |  | ||||||
|  | ifneq ($(wildcard $(DJDIR)/lib/dxe2.ld),) | ||||||
|  | DXE2GEN = $(wildcard $(addsuffix /dxe2gen.exe,$(subst ;, ,$(PATH)))) | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | RM = del | ||||||
|  |  | ||||||
|  | CORE_SOURCES = \ | ||||||
|  | 	bitmap.c \ | ||||||
|  | 	callback.c \ | ||||||
|  | 	color.c \ | ||||||
|  | 	globals.c \ | ||||||
|  | 	init.c \ | ||||||
|  | 	menu.c \ | ||||||
|  | 	models.c \ | ||||||
|  | 	overlay.c \ | ||||||
|  | 	state.c \ | ||||||
|  | 	teapot.c \ | ||||||
|  | 	window.c | ||||||
|  |  | ||||||
|  | PC_HW_SOURCES = \ | ||||||
|  | 	PC_HW/pc_hw.c \ | ||||||
|  | 	PC_HW/pc_keyb.c \ | ||||||
|  | 	PC_HW/pc_mouse.c \ | ||||||
|  | 	PC_HW/pc_timer.c \ | ||||||
|  | 	PC_HW/pc_irq.S | ||||||
|  |  | ||||||
|  | MARK_SOURCES = \ | ||||||
|  | 	$(MARK)/glut_8x13.c \ | ||||||
|  | 	$(MARK)/glut_9x15.c \ | ||||||
|  | 	$(MARK)/glut_hel10.c \ | ||||||
|  | 	$(MARK)/glut_hel12.c \ | ||||||
|  | 	$(MARK)/glut_hel18.c \ | ||||||
|  | 	$(MARK)/glut_tr10.c \ | ||||||
|  | 	$(MARK)/glut_tr24.c | ||||||
|  |  | ||||||
|  | SOURCES = $(CORE_SOURCES) $(PC_HW_SOURCES) $(MARK_SOURCES) | ||||||
|  |  | ||||||
|  | OBJECTS = $(addsuffix .o,$(basename $(SOURCES))) | ||||||
|  |  | ||||||
|  | .c.o: | ||||||
|  | 	$(CC) -o $@ -c $(CFLAGS) $< | ||||||
|  | .S.o: | ||||||
|  | 	$(CC) -o $@ -c $(CFLAGS) $< | ||||||
|  | .s.o: | ||||||
|  | 	$(CC) -o $@ -c $(CFLAGS) -x assembler-with-cpp $< | ||||||
|  |  | ||||||
|  | all: $(LIBDIR)/$(GLUT_LIB) $(LIBDIR)/$(GLUT_DXE) $(LIBDIR)/$(GLUT_IMP) | ||||||
|  |  | ||||||
|  | $(LIBDIR)/$(GLUT_LIB): $(OBJECTS) | ||||||
|  | 	$(AR) $(ARFLAGS) $(LIBDIR)/$(GLUT_LIB) $(OBJECTS) | ||||||
|  |  | ||||||
|  | $(LIBDIR)/$(GLUT_DXE) $(LIBDIR)/$(GLUT_IMP): $(OBJECTS) | ||||||
|  | ifeq ($(DXE2GEN),) | ||||||
|  | 	$(warning Missing DXE2GEN and/or DXE2.LD! You must have DXE2GEN) | ||||||
|  | 	$(warning somewhere in PATH, and DXE2.LD in DJGPP/LIB directory.) | ||||||
|  | else | ||||||
|  | 	-dxe2gen -o $(LIBDIR)/$(GLUT_DXE) -I $(LIBDIR)/$(GLUT_IMP) $(OBJECTS) -E djgpp_ -E glut -D "Mesa DJGPP GLUT" -U | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | clean: | ||||||
|  | 	-$(RM) $(subst /,\,*.o) | ||||||
|  | 	-$(RM) $(subst /,\,PC_HW/*.o) | ||||||
|  | 	-$(RM) $(subst /,\,$(MARK)/*.o) | ||||||
|  |  | ||||||
|  | -include depend | ||||||
							
								
								
									
										141
									
								
								src/glut/dos/PC_HW/pc_hw.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								src/glut/dos/PC_HW/pc_hw.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,141 @@ | |||||||
|  | /* | ||||||
|  |  * PC/HW routine collection v1.0 for DOS/DJGPP | ||||||
|  |  * | ||||||
|  |  *  Copyright (C) 2002 - Borca Daniel | ||||||
|  |  *  Email : dborca@yahoo.com | ||||||
|  |  *  Web   : http://www.geocities.com/dborca | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #include <dpmi.h> | ||||||
|  | #include <fcntl.h> | ||||||
|  | #include <sys/stat.h> /* for mode definitions */ | ||||||
|  | #include <stdio.h> | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
|  | #include <unistd.h> | ||||||
|  |  | ||||||
|  | #include "pc_hw.h" | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * atexit | ||||||
|  |  */ | ||||||
|  | #define MAX_ATEXIT 32 | ||||||
|  |  | ||||||
|  | static volatile int atexitcnt; | ||||||
|  | static VFUNC atexittbl[MAX_ATEXIT]; | ||||||
|  |  | ||||||
|  | static void __attribute__((destructor)) doexit (void) | ||||||
|  | { | ||||||
|  |  while (atexitcnt) atexittbl[--atexitcnt](); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int pc_clexit (VFUNC f) | ||||||
|  | { | ||||||
|  |  int i; | ||||||
|  |  | ||||||
|  |  for (i=0;i<atexitcnt;i++) { | ||||||
|  |      if (atexittbl[i]==f) { | ||||||
|  |         for (atexitcnt--;i<atexitcnt;i++) atexittbl[i] = atexittbl[i+1]; | ||||||
|  |         atexittbl[i] = 0; | ||||||
|  |         return 0; | ||||||
|  |      } | ||||||
|  |  } | ||||||
|  |  return -1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | int pc_atexit (VFUNC f) | ||||||
|  | { | ||||||
|  |  pc_clexit(f); | ||||||
|  |  if (atexitcnt<MAX_ATEXIT) { | ||||||
|  |     atexittbl[atexitcnt++] = f; | ||||||
|  |     return 0; | ||||||
|  |  } | ||||||
|  |  return -1; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * locked memory allocation | ||||||
|  |  */ | ||||||
|  | void *pc_malloc (size_t size) | ||||||
|  | { | ||||||
|  |  void *p = malloc(size); | ||||||
|  |  | ||||||
|  |  if (p) { | ||||||
|  |     if (_go32_dpmi_lock_data(p, size)) { | ||||||
|  |        free(p); | ||||||
|  |        return NULL; | ||||||
|  |     } | ||||||
|  |  } | ||||||
|  |  | ||||||
|  |  return p; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * standard redirection | ||||||
|  |  */ | ||||||
|  | static char errname[L_tmpnam]; | ||||||
|  | static char outname[L_tmpnam]; | ||||||
|  |  | ||||||
|  | static int h_out, h_outbak; | ||||||
|  | static int h_err, h_errbak; | ||||||
|  |  | ||||||
|  | void pc_open_stderr (void) | ||||||
|  | { | ||||||
|  |  if (tmpnam(errname)) { | ||||||
|  |     h_err = open(errname, O_WRONLY |/* O_BINARY |*/ O_CREAT | O_TRUNC, | ||||||
|  |                           S_IREAD | S_IWRITE); | ||||||
|  |     h_errbak = dup(2); | ||||||
|  |     fflush(stderr); | ||||||
|  |     dup2(h_err, 2); | ||||||
|  |  } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void pc_close_stderr (void) | ||||||
|  | { | ||||||
|  |  FILE *f; | ||||||
|  |  char *line = alloca(512); | ||||||
|  |   | ||||||
|  |  dup2(h_errbak, 2); | ||||||
|  |  close(h_err); | ||||||
|  |  close(h_errbak); | ||||||
|  |   | ||||||
|  |  if ((f=fopen(errname, "r"))!=NULL) { | ||||||
|  |     while (fgets(line, 512, f)) { | ||||||
|  |           fputs(line, stderr); | ||||||
|  |     } | ||||||
|  |     fclose(f); | ||||||
|  |  } | ||||||
|  |  | ||||||
|  |  remove(errname); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void pc_open_stdout (void) | ||||||
|  | { | ||||||
|  |  if (tmpnam(outname)) { | ||||||
|  |     h_out = open(outname, O_WRONLY |/* O_BINARY |*/ O_CREAT | O_TRUNC, | ||||||
|  |                           S_IREAD | S_IWRITE); | ||||||
|  |     h_outbak = dup(1); | ||||||
|  |     fflush(stdout); | ||||||
|  |     dup2(h_out, 1); | ||||||
|  |  } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void pc_close_stdout (void) | ||||||
|  | { | ||||||
|  |  FILE *f; | ||||||
|  |  char *line = alloca(512); | ||||||
|  |   | ||||||
|  |  dup2(h_outbak, 1); | ||||||
|  |  close(h_out); | ||||||
|  |  close(h_outbak); | ||||||
|  |   | ||||||
|  |  if ((f=fopen(outname, "r"))!=NULL) { | ||||||
|  |     while (fgets(line, 512, f)) { | ||||||
|  |           fputs(line, stdout); | ||||||
|  |     } | ||||||
|  |     fclose(f); | ||||||
|  |  } | ||||||
|  |  | ||||||
|  |  remove(outname); | ||||||
|  | } | ||||||
							
								
								
									
										225
									
								
								src/glut/dos/PC_HW/pc_hw.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										225
									
								
								src/glut/dos/PC_HW/pc_hw.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,225 @@ | |||||||
|  | /* | ||||||
|  |  * PC/HW routine collection v1.1 for DOS/DJGPP | ||||||
|  |  * | ||||||
|  |  *  Copyright (C) 2002 - Borca Daniel | ||||||
|  |  *  Email : dborca@yahoo.com | ||||||
|  |  *  Web   : http://www.geocities.com/dborca | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #ifndef PC_HW_H_included | ||||||
|  | #define PC_HW_H_included | ||||||
|  |  | ||||||
|  | #include <dpmi.h> | ||||||
|  | #include <stdlib.h> | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * misc C definitions | ||||||
|  |  */ | ||||||
|  | #define FALSE 0 | ||||||
|  | #define TRUE !FALSE | ||||||
|  |  | ||||||
|  | #define MIN(x,y)     (((x) < (y)) ? (x) : (y)) | ||||||
|  | #define MAX(x,y)     (((x) > (y)) ? (x) : (y)) | ||||||
|  | #define MID(x,y,z)   MAX((x), MIN((y), (z))) | ||||||
|  |  | ||||||
|  | typedef void (*VFUNC) (void); | ||||||
|  | typedef void (*PFUNC) (void *); | ||||||
|  | typedef void (*MFUNC) (int x, int y, int b); | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * atexit | ||||||
|  |  */ | ||||||
|  | int pc_atexit (VFUNC f); | ||||||
|  | int pc_clexit (VFUNC f); | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * locked memory | ||||||
|  |  */ | ||||||
|  | #define ENDOFUNC(x)    static void x##_end() { } | ||||||
|  | #define LOCKFUNC(x)    _go32_dpmi_lock_code((void *)x, (long)x##_end - (long)x) | ||||||
|  | #define LOCKDATA(x)    _go32_dpmi_lock_data((void *)&x, sizeof(x)) | ||||||
|  |  | ||||||
|  | void *pc_malloc (size_t size); | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * IRQ | ||||||
|  |  */ | ||||||
|  | #define ENABLE()  __asm __volatile ("sti") | ||||||
|  | #define DISABLE() __asm __volatile ("cli") | ||||||
|  |  | ||||||
|  | extern int pc_install_irq (int i, int (*handler) ()); | ||||||
|  | extern int pc_remove_irq (int i); | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * keyboard | ||||||
|  |  */ | ||||||
|  | #define KB_SHIFT_FLAG         0x0001 | ||||||
|  | #define KB_CTRL_FLAG          0x0002 | ||||||
|  | #define KB_ALT_FLAG           0x0004 | ||||||
|  | #define KB_LWIN_FLAG          0x0008 | ||||||
|  | #define KB_RWIN_FLAG          0x0010 | ||||||
|  | #define KB_MENU_FLAG          0x0020 | ||||||
|  | #define KB_SCROLOCK_FLAG      0x0100 | ||||||
|  | #define KB_NUMLOCK_FLAG       0x0200 | ||||||
|  | #define KB_CAPSLOCK_FLAG      0x0400 | ||||||
|  | #define KB_INALTSEQ_FLAG      0x0800 | ||||||
|  | #define KB_ACCENT1_FLAG       0x1000 | ||||||
|  | #define KB_ACCENT2_FLAG       0x2000 | ||||||
|  | #define KB_ACCENT3_FLAG       0x4000 | ||||||
|  | #define KB_ACCENT4_FLAG       0x8000 | ||||||
|  |  | ||||||
|  | #define KEY_A                 1 | ||||||
|  | #define KEY_B                 2 | ||||||
|  | #define KEY_C                 3 | ||||||
|  | #define KEY_D                 4 | ||||||
|  | #define KEY_E                 5 | ||||||
|  | #define KEY_F                 6 | ||||||
|  | #define KEY_G                 7 | ||||||
|  | #define KEY_H                 8 | ||||||
|  | #define KEY_I                 9 | ||||||
|  | #define KEY_J                 10 | ||||||
|  | #define KEY_K                 11 | ||||||
|  | #define KEY_L                 12 | ||||||
|  | #define KEY_M                 13 | ||||||
|  | #define KEY_N                 14 | ||||||
|  | #define KEY_O                 15 | ||||||
|  | #define KEY_P                 16 | ||||||
|  | #define KEY_Q                 17 | ||||||
|  | #define KEY_R                 18 | ||||||
|  | #define KEY_S                 19 | ||||||
|  | #define KEY_T                 20 | ||||||
|  | #define KEY_U                 21 | ||||||
|  | #define KEY_V                 22 | ||||||
|  | #define KEY_W                 23 | ||||||
|  | #define KEY_X                 24 | ||||||
|  | #define KEY_Y                 25 | ||||||
|  | #define KEY_Z                 26 | ||||||
|  | #define KEY_0                 27 | ||||||
|  | #define KEY_1                 28 | ||||||
|  | #define KEY_2                 29 | ||||||
|  | #define KEY_3                 30 | ||||||
|  | #define KEY_4                 31 | ||||||
|  | #define KEY_5                 32 | ||||||
|  | #define KEY_6                 33 | ||||||
|  | #define KEY_7                 34 | ||||||
|  | #define KEY_8                 35 | ||||||
|  | #define KEY_9                 36 | ||||||
|  | #define KEY_0_PAD             37 | ||||||
|  | #define KEY_1_PAD             38 | ||||||
|  | #define KEY_2_PAD             39 | ||||||
|  | #define KEY_3_PAD             40 | ||||||
|  | #define KEY_4_PAD             41 | ||||||
|  | #define KEY_5_PAD             42 | ||||||
|  | #define KEY_6_PAD             43 | ||||||
|  | #define KEY_7_PAD             44 | ||||||
|  | #define KEY_8_PAD             45 | ||||||
|  | #define KEY_9_PAD             46 | ||||||
|  | #define KEY_F1                47 | ||||||
|  | #define KEY_F2                48 | ||||||
|  | #define KEY_F3                49 | ||||||
|  | #define KEY_F4                50 | ||||||
|  | #define KEY_F5                51 | ||||||
|  | #define KEY_F6                52 | ||||||
|  | #define KEY_F7                53 | ||||||
|  | #define KEY_F8                54 | ||||||
|  | #define KEY_F9                55 | ||||||
|  | #define KEY_F10               56 | ||||||
|  | #define KEY_F11               57 | ||||||
|  | #define KEY_F12               58 | ||||||
|  | #define KEY_ESC               59 | ||||||
|  | #define KEY_TILDE             60 | ||||||
|  | #define KEY_MINUS             61 | ||||||
|  | #define KEY_EQUALS            62 | ||||||
|  | #define KEY_BACKSPACE         63 | ||||||
|  | #define KEY_TAB               64 | ||||||
|  | #define KEY_OPENBRACE         65 | ||||||
|  | #define KEY_CLOSEBRACE        66 | ||||||
|  | #define KEY_ENTER             67 | ||||||
|  | #define KEY_COLON             68 | ||||||
|  | #define KEY_QUOTE             69 | ||||||
|  | #define KEY_BACKSLASH         70 | ||||||
|  | #define KEY_BACKSLASH2        71 | ||||||
|  | #define KEY_COMMA             72 | ||||||
|  | #define KEY_STOP              73 | ||||||
|  | #define KEY_SLASH             74 | ||||||
|  | #define KEY_SPACE             75 | ||||||
|  | #define KEY_INSERT            76 | ||||||
|  | #define KEY_DEL               77 | ||||||
|  | #define KEY_HOME              78 | ||||||
|  | #define KEY_END               79 | ||||||
|  | #define KEY_PGUP              80 | ||||||
|  | #define KEY_PGDN              81 | ||||||
|  | #define KEY_LEFT              82 | ||||||
|  | #define KEY_RIGHT             83 | ||||||
|  | #define KEY_UP                84 | ||||||
|  | #define KEY_DOWN              85 | ||||||
|  | #define KEY_SLASH_PAD         86 | ||||||
|  | #define KEY_ASTERISK          87 | ||||||
|  | #define KEY_MINUS_PAD         88 | ||||||
|  | #define KEY_PLUS_PAD          89 | ||||||
|  | #define KEY_DEL_PAD           90 | ||||||
|  | #define KEY_ENTER_PAD         91 | ||||||
|  | #define KEY_PRTSCR            92 | ||||||
|  | #define KEY_PAUSE             93 | ||||||
|  | #define KEY_ABNT_C1           94 | ||||||
|  | #define KEY_YEN               95 | ||||||
|  | #define KEY_KANA              96 | ||||||
|  | #define KEY_CONVERT           97 | ||||||
|  | #define KEY_NOCONVERT         98 | ||||||
|  | #define KEY_AT                99 | ||||||
|  | #define KEY_CIRCUMFLEX        100 | ||||||
|  | #define KEY_COLON2            101 | ||||||
|  | #define KEY_KANJI             102 | ||||||
|  |  | ||||||
|  | #define KEY_MODIFIERS         103 | ||||||
|  |  | ||||||
|  | #define KEY_LSHIFT            103 | ||||||
|  | #define KEY_RSHIFT            104 | ||||||
|  | #define KEY_LCONTROL          105 | ||||||
|  | #define KEY_RCONTROL          106 | ||||||
|  | #define KEY_ALT               107 | ||||||
|  | #define KEY_ALTGR             108 | ||||||
|  | #define KEY_LWIN              109 | ||||||
|  | #define KEY_RWIN              110 | ||||||
|  | #define KEY_MENU              111 | ||||||
|  | #define KEY_SCRLOCK           112 | ||||||
|  | #define KEY_NUMLOCK           113 | ||||||
|  | #define KEY_CAPSLOCK          114 | ||||||
|  |  | ||||||
|  | #define KEY_MAX               115 | ||||||
|  |  | ||||||
|  | int pc_install_keyb (void); | ||||||
|  | void pc_remove_keyb (void); | ||||||
|  | int pc_keypressed (void); | ||||||
|  | int pc_readkey (void); | ||||||
|  | int pc_keydown (int code); | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * timer | ||||||
|  |  */ | ||||||
|  | int pc_install_int (PFUNC func, void *parm, unsigned int freq); | ||||||
|  | void pc_remove_timer (void); | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * mouse | ||||||
|  |  */ | ||||||
|  | int pc_install_mouse (void); | ||||||
|  | void pc_remove_mouse (void); | ||||||
|  | MFUNC pc_install_mouse_handler (MFUNC handler); | ||||||
|  | void pc_mouse_area (int x1, int y1, int x2, int y2); | ||||||
|  | void pc_mouse_speed (int xspeed, int yspeed); | ||||||
|  | int pc_query_mouse (int *x, int *y); | ||||||
|  | void pc_show_mouse (void); | ||||||
|  | void pc_scare_mouse (void); | ||||||
|  | void pc_unscare_mouse (void); | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * standard redirection | ||||||
|  |  */ | ||||||
|  | void pc_open_stdout (void); | ||||||
|  | void pc_open_stderr (void); | ||||||
|  | void pc_close_stdout (void); | ||||||
|  | void pc_close_stderr (void); | ||||||
|  |  | ||||||
|  | #endif | ||||||
							
								
								
									
										180
									
								
								src/glut/dos/PC_HW/pc_irq.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										180
									
								
								src/glut/dos/PC_HW/pc_irq.S
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,180 @@ | |||||||
|  | /* | ||||||
|  |  * PC/HW routine collection v1.0 for DOS/DJGPP | ||||||
|  |  * | ||||||
|  |  *  Copyright (C) 2002 - Borca Daniel | ||||||
|  |  *  Email : dborca@yahoo.com | ||||||
|  |  *  Web   : http://www.geocities.com/dborca | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 		.file	"pc_irq.S" | ||||||
|  |  | ||||||
|  | 		.text | ||||||
|  |  | ||||||
|  | #define	IRQ_STACK_SIZE	16384 | ||||||
|  |  | ||||||
|  | #define	IRQ_WRAPPER_LEN	(__irq_wrapper_1-__irq_wrapper_0) | ||||||
|  | #define	IRQ_OLD		(__irq_old_0-__irq_wrapper_0) | ||||||
|  | #define	IRQ_HOOK	(__irq_hook_0-__irq_wrapper_0) | ||||||
|  | #define	IRQ_STACK	(__irq_stack_0-__irq_wrapper_0) | ||||||
|  |  | ||||||
|  | 		.balign	4 | ||||||
|  | common: | ||||||
|  | 		movw	$0x0400, %ax | ||||||
|  | 		int	$0x31 | ||||||
|  |  | ||||||
|  | 		movl	%ss:8(%ebp), %ebx | ||||||
|  | 		cmpl	$15, %ebx | ||||||
|  | 		jbe	0f | ||||||
|  | 	fail: | ||||||
|  | 		orl	$-1, %eax | ||||||
|  | 		popl	%edi | ||||||
|  | 		popl	%ebx | ||||||
|  | 		leave | ||||||
|  | 		ret | ||||||
|  |  | ||||||
|  | 	0: | ||||||
|  | 		movl	%ebx, %edi | ||||||
|  | 		imull	$IRQ_WRAPPER_LEN, %edi | ||||||
|  | 		addl	$__irq_wrapper_0, %edi | ||||||
|  |  | ||||||
|  | 		cmpb	$7, %bl | ||||||
|  | 		jbe	1f | ||||||
|  | 		movb	%dl, %dh | ||||||
|  | 		subb	$8, %dh | ||||||
|  | 	1: | ||||||
|  | 		addb	%dh, %bl | ||||||
|  | 		ret | ||||||
|  |  | ||||||
|  | 		.balign	4 | ||||||
|  | 		.global	_pc_install_irq | ||||||
|  | _pc_install_irq: | ||||||
|  | 		pushl	%ebp | ||||||
|  | 		movl	%esp, %ebp | ||||||
|  | 		pushl	%ebx | ||||||
|  | 		pushl	%edi | ||||||
|  |  | ||||||
|  | 		call	common | ||||||
|  |  | ||||||
|  | 		cmpl	$0, IRQ_HOOK(%edi) | ||||||
|  | 		jne	fail | ||||||
|  |  | ||||||
|  | 		pushl	$IRQ_WRAPPER_LEN | ||||||
|  | 		pushl	%edi | ||||||
|  | 		call	__go32_dpmi_lock_code | ||||||
|  | 		addl	$8, %esp | ||||||
|  | 		testl	%eax, %eax | ||||||
|  | 		jnz	fail | ||||||
|  |  | ||||||
|  | 		pushl	$IRQ_STACK_SIZE | ||||||
|  | 		call	_pc_malloc | ||||||
|  | 		popl	%edx | ||||||
|  | 		testl	%eax, %eax | ||||||
|  | 		jz	fail | ||||||
|  | 		addl	%edx, %eax | ||||||
|  | 		movl	%eax, IRQ_STACK(%edi) | ||||||
|  |  | ||||||
|  | 		movl	%ss:12(%ebp), %eax | ||||||
|  | 		movl	%eax, IRQ_HOOK(%edi) | ||||||
|  |  | ||||||
|  | 		movw	$0x0204, %ax | ||||||
|  | 		int	$0x31 | ||||||
|  | 		movl	%edx, IRQ_OLD(%edi) | ||||||
|  | 		movw	%cx, IRQ_OLD+4(%edi) | ||||||
|  | 		movw	$0x0205, %ax | ||||||
|  | 		movl	%edi, %edx | ||||||
|  | 		movl	%cs, %ecx | ||||||
|  | 		int	$0x31 | ||||||
|  |  | ||||||
|  | 	done: | ||||||
|  | 		xorl	%eax, %eax | ||||||
|  | 		popl	%edi | ||||||
|  | 		popl	%ebx | ||||||
|  | 		leave | ||||||
|  | 		ret | ||||||
|  |  | ||||||
|  | 		.balign	4 | ||||||
|  | 		.global	_pc_remove_irq | ||||||
|  | _pc_remove_irq: | ||||||
|  | 		pushl	%ebp | ||||||
|  | 		movl	%esp, %ebp | ||||||
|  | 		pushl	%ebx | ||||||
|  | 		pushl	%edi | ||||||
|  |  | ||||||
|  | 		call	common | ||||||
|  |  | ||||||
|  | 		cmpl	$0, IRQ_HOOK(%edi) | ||||||
|  | 		je	fail | ||||||
|  |  | ||||||
|  | 		movl	$0, IRQ_HOOK(%edi) | ||||||
|  |  | ||||||
|  | 		movw	$0x0205, %ax | ||||||
|  | 		movl	IRQ_OLD(%edi), %edx | ||||||
|  | 		movl	IRQ_OLD+4(%edi), %ecx | ||||||
|  | 		int	$0x31 | ||||||
|  |  | ||||||
|  | 		movl	IRQ_STACK(%edi), %eax | ||||||
|  | 		subl	$IRQ_STACK_SIZE, %eax | ||||||
|  | 		pushl	%eax | ||||||
|  | 		call	_free | ||||||
|  | 		popl	%eax | ||||||
|  |  | ||||||
|  | 		jmp	done | ||||||
|  |  | ||||||
|  | #define	WRAPPER(x)							   ; \ | ||||||
|  | 		.balign	4						   ; \ | ||||||
|  | __irq_wrapper_##x:							   ; \ | ||||||
|  | 		pushal							   ; \ | ||||||
|  | 		pushl	%ds						   ; \ | ||||||
|  | 		pushl	%es						   ; \ | ||||||
|  | 		pushl	%fs						   ; \ | ||||||
|  | 		pushl	%gs						   ; \ | ||||||
|  | 		movl	%ss, %ebx					   ; \ | ||||||
|  | 		movl	%esp, %esi					   ; \ | ||||||
|  | 		movl	%cs:___djgpp_ds_alias, %ss			   ; \ | ||||||
|  | 		movl	%cs:__irq_stack_##x, %esp			   ; \ | ||||||
|  | 		pushl	%ss						   ; \ | ||||||
|  | 		pushl	%ss						   ; \ | ||||||
|  | 		popl	%es						   ; \ | ||||||
|  | 		popl	%ds						   ; \ | ||||||
|  | 		movl	___djgpp_dos_sel, %fs				   ; \ | ||||||
|  | 		pushl	%fs						   ; \ | ||||||
|  | 		popl	%gs						   ; \ | ||||||
|  | 		call	*__irq_hook_##x					   ; \ | ||||||
|  | 		movl	%ebx, %ss					   ; \ | ||||||
|  | 		movl	%esi, %esp					   ; \ | ||||||
|  | 		testl	%eax, %eax					   ; \ | ||||||
|  | 		popl	%gs						   ; \ | ||||||
|  | 		popl	%fs						   ; \ | ||||||
|  | 		popl	%es						   ; \ | ||||||
|  | 		popl	%ds						   ; \ | ||||||
|  | 		popal							   ; \ | ||||||
|  | 		jz	__irq_ignore_##x				   ; \ | ||||||
|  | __irq_bypass_##x:							   ; \ | ||||||
|  | 		ljmp	*%cs:__irq_old_##x				   ; \ | ||||||
|  | __irq_ignore_##x:							   ; \ | ||||||
|  | 		iret							   ; \ | ||||||
|  | 		.balign	4						   ; \ | ||||||
|  | __irq_old_##x:								   ; \ | ||||||
|  | 		.long	0, 0						   ; \ | ||||||
|  | __irq_hook_##x:								   ; \ | ||||||
|  | 		.long	0						   ; \ | ||||||
|  | __irq_stack_##x:							   ; \ | ||||||
|  | 		.long	0 | ||||||
|  |  | ||||||
|  | 		WRAPPER(0); | ||||||
|  | 		WRAPPER(1); | ||||||
|  | 		WRAPPER(2); | ||||||
|  | 		WRAPPER(3); | ||||||
|  | 		WRAPPER(4); | ||||||
|  | 		WRAPPER(5); | ||||||
|  | 		WRAPPER(6); | ||||||
|  | 		WRAPPER(7); | ||||||
|  | 		WRAPPER(8); | ||||||
|  | 		WRAPPER(9); | ||||||
|  | 		WRAPPER(10); | ||||||
|  | 		WRAPPER(11); | ||||||
|  | 		WRAPPER(12); | ||||||
|  | 		WRAPPER(13); | ||||||
|  | 		WRAPPER(14); | ||||||
|  | 		WRAPPER(15); | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user