Compare commits
	
		
			85 Commits
		
	
	
		
			mesa-17.2.
			...
			mesa_4_0_1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 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 | 
							
								
								
									
										97
									
								
								Make-config
									
									
									
									
									
								
							
							
						
						
									
										97
									
								
								Make-config
									
									
									
									
									
								
							| @@ -1,7 +1,7 @@ | ||||
| # $Id: Make-config,v 1.51 2001/10/22 22:45:18 brianp Exp $ | ||||
| # $Id: Make-config,v 1.50.2.4 2001/12/14 17:46:20 kschultz Exp $ | ||||
|  | ||||
| MESA_MAJOR=4 | ||||
| MESA_MINOR=1 | ||||
| MESA_MINOR=0 | ||||
| MESA_TINY=0 | ||||
| VERSION=$(MESA_MAJOR).$(MESA_MINOR) | ||||
|  | ||||
| @@ -178,6 +178,25 @@ cygnus-linux: | ||||
| 	"MAKELIB = ../bin/mklib.cygnus-linux" \ | ||||
| 	"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: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| @@ -344,7 +363,7 @@ hpux10-gcc-sl: | ||||
|  | ||||
| # For IRIX 4: don't use -fullwarn because it causes too much garbage | ||||
| irix4: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.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 | ||||
| irix5: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| @@ -385,7 +404,7 @@ irix5-gcc: | ||||
|  | ||||
| # IRIX 5 using Dynamic Shared Objects (DSO) | ||||
| irix5-dso: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| @@ -396,34 +415,46 @@ irix5-dso: | ||||
| 	"MAKELIB = ../bin/mklib.irix5" \ | ||||
| 	"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: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"OSMESA_LIB = libOSMesa.a" \ | ||||
| 	"LIBDIR = ../lib32" \ | ||||
| 	"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" \ | ||||
| 	"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| irix6-o32-dso: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(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" \ | ||||
| 	"LIBDIR = ../lib32" \ | ||||
| 	"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" \ | ||||
| 	"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: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| @@ -431,20 +462,24 @@ irix6-n32: | ||||
| 	"OSMESA_LIB = libOSMesa.a" \ | ||||
| 	"LIBDIR = ../lib32" \ | ||||
| 	"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" \ | ||||
| 	"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| irix6-n32-dso: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"OSMESA_LIB = libOSMesa.a" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"OSMESA_LIB = libOSMesa.so" \ | ||||
| 	"LIBDIR = ../lib32" \ | ||||
| 	"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" \ | ||||
| 	"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 | ||||
| #   1552 - variable was set but never used | ||||
| irix6-64: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| @@ -485,7 +520,7 @@ irix6-64: | ||||
| 	"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| irix6-64-dso: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| @@ -1418,7 +1453,7 @@ vistra: | ||||
| # -woff 1521 = "nonstandard preprocessing directive is used" | ||||
| # -woff 3496 = "bitwise operator precedence" | ||||
| irix-debug: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| @@ -1431,7 +1466,7 @@ irix-debug: | ||||
| 	"APP_LIB_DEPS = -rpath ../lib32 -lX11 -lXext -lXmu -lXi -lfpe -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| DEBUG: | ||||
| 	pmake $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| @@ -1460,6 +1495,24 @@ linux-debug: | ||||
| 	"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" | ||||
|  | ||||
| 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: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
|   | ||||
							
								
								
									
										19
									
								
								Makefile.X11
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								Makefile.X11
									
									
									
									
									
								
							| @@ -1,7 +1,7 @@ | ||||
| # $Id: Makefile.X11,v 1.57 2001/10/22 22:45:18 brianp Exp $ | ||||
| # $Id: Makefile.X11,v 1.56.2.3 2001/12/14 17:11:46 kschultz Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  4.1 | ||||
| # Version:  4.0 | ||||
| #  | ||||
| # Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
| #  | ||||
| @@ -42,6 +42,7 @@ default: | ||||
| 	@echo "  make bsdos4               for BSD/OS 4.x, dynamic libraries" | ||||
| 	@echo "  make cygnus               for Win95/NT using Cygnus-Win32" | ||||
| 	@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 freebsd              for FreeBSD systems with GCC" | ||||
| 	@echo "  make freebsd-386          for FreeBSD systems with GCC, w/ Intel assembly" | ||||
| @@ -137,11 +138,11 @@ default: | ||||
| # 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. | ||||
|  | ||||
| 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 \ | ||||
| hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \ | ||||
| irix4 irix5 irix5-gcc irix5-dso irix6-o32 irix6-o32-dso \ | ||||
| linux linux-static linux-debug linux-static-debug linux-prof \ | ||||
| irix4 irix5 irix5-gcc irix5-dso \ | ||||
| linux linux-static linux-debug linux-x11-debug linux-static-debug linux-prof \ | ||||
| linux-x86 linux-x86-static linux-x86-debug \ | ||||
| linux-glide linux-386-glide linux-386-opt-glide \ | ||||
| linux-x86-glide linux-glide-debug linux-glide-prof \ | ||||
| @@ -171,12 +172,11 @@ sunos5-x11r6-gcc-sl ultrix-gcc unicos unixware uwin vistra: | ||||
| 	if [ -d book     ] ; then cd book     ; $(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 | ||||
| 	if [ -d src      ] ; then touch src/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 widgets-sgi ] ; then touch widgets-sgi/depend ; 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 | ||||
| @@ -299,7 +299,6 @@ linux-osmesa16 linux-osmesa32: | ||||
| 	-mkdir lib | ||||
| 	if [ -d src ] ; then touch src/depend ; fi | ||||
| 	if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.OSMesa16 $@ ; fi | ||||
| 	 | ||||
|  | ||||
| # Remove .o files, emacs backup files, etc. | ||||
| clean: | ||||
| @@ -322,13 +321,11 @@ clean: | ||||
|  | ||||
| # Remove everything that can be remade | ||||
| realclean: clean | ||||
| 	-rm -f lib/* | ||||
| 	-rm -fr lib lib32 lib64 | ||||
| 	cd demos       && $(MAKE) -f Makefile.X11 realclean || true | ||||
| 	cd xdemos      && $(MAKE) -f Makefile.X11 realclean || true | ||||
| 	cd book        && $(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 | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| File: docs/README.WIN32 | ||||
|  | ||||
| Last updated: Oct 15, 2001 - Karl Schultz - kschultz@users.sourceforge.net | ||||
| Last updated: Nov 29, 2001 - Karl Schultz - kschultz@users.sourceforge.net | ||||
|  | ||||
| Quick Start | ||||
|  | ||||
| @@ -52,10 +52,7 @@ Details and Notes | ||||
|   difficult to modify the makefiles to generate them. | ||||
|  | ||||
| - 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 | ||||
|   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. | ||||
|   mainly to get the better tessellator code. | ||||
|  | ||||
| - The osmesa driver builds and should work on Windows as well as | ||||
|   any other platform. | ||||
| @@ -68,11 +65,11 @@ Details and Notes | ||||
|   paths for the rasterizers.  See src/osmesa/osmesa.c for some good | ||||
|   examples. | ||||
|  | ||||
| - There is DirectDraw support in the Windows driver, but I do not | ||||
|   know if it compiles or works.  If you have an application that | ||||
|   does not draw much in a frame, but needs a higher framerate, then | ||||
|   it may pay to turn on the DirectDraw code, since DD often performs | ||||
|   the off-screen to on-screen blit faster than GDI. | ||||
| - There is DirectDraw support in the Windows driver, updated by | ||||
|   Daniel Slater.  You'll need to uncomment the #define DDRAW line | ||||
|   in src/Windows/wmesadef.h and add ddraw.lib to the list of libraries | ||||
|   in src/Makefile.win.  On some systems, you will acheive significantly | ||||
|   higher framerates with DirectDraw. | ||||
|  | ||||
| - Some of the more specialized code like FX drivers, stereo, and | ||||
|   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.1 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- | ||||
| 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.1/lib/ | ||||
| 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 | ||||
| @@ -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.1 2001/11/23 20:47:25 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 $ | ||||
| @@ -1,4 +1,4 @@ | ||||
| $Id: VERSIONS,v 1.74 2001/10/22 22:45:18 brianp Exp $ | ||||
| $Id: VERSIONS,v 1.73.2.14 2001/12/15 00:50:55 brianp Exp $ | ||||
|  | ||||
|  | ||||
| Mesa Version History | ||||
| @@ -898,9 +898,29 @@ Mesa Version History | ||||
| 	- lighting didn't always produce the correct alpha value | ||||
| 	- fixed 3DNow! code to not read past end of arrays (Andrew Lewycky) | ||||
|  | ||||
|  | ||||
| 4.1  Month, ??, 2002 | ||||
| 4.0.1 December 17, 2001 | ||||
|     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: | ||||
| 	-  | ||||
| 	- 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) | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: gl.h,v 1.59 2001/09/23 16:06:13 brianp Exp $ */ | ||||
| /* $Id: gl.h,v 1.59.2.1 2001/11/09 21:54:05 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -84,7 +84,7 @@ extern "C" { | ||||
|  | ||||
| #define GL_VERSION_1_1   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 | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: gl_mangle.h,v 1.7 2001/09/21 17:23:30 brianp Exp $ */ | ||||
| /* $Id: gl_mangle.h,v 1.7.2.2 2001/12/13 19:07:28 kschultz Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.5 | ||||
|  * Version:  4.0.1 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -557,6 +557,7 @@ | ||||
| #define glFogCoordPointerEXT mglFogCoordPointerEXT  | ||||
| #define glFogCoorddEXT mglFogCoorddEXT  | ||||
| #define glFogCoordfvEXT mglFogCoordfvEXT  | ||||
| #define glFogCoorddvEXT mglFogCoorddvEXT  | ||||
| #define glFogCoordfEXT mglFogCoordfEXT  | ||||
| #define glLightEnviSGIX mglLightEnviSGIX  | ||||
| #define glGetFragmentMaterialivSGIX mglGetFragmentMaterialivSGIX  | ||||
| @@ -616,6 +617,9 @@ | ||||
| #define glGetPixelTexGenParameterfvSGIS mglGetPixelTexGenParameterfvSGIS  | ||||
| #define glPixelTexGenParameteriSGIS mglPixelTexGenParameteriSGIS  | ||||
| #define glPixelTexGenParameterfSGIS mglPixelTexGenParameterfSGIS  | ||||
| #define glPixelTexGenParameterivSGIS mglPixelTexGenParameterivSGIS  | ||||
| #define glPixelTexGenParameterfvSGIS mglPixelTexGenParameterfvSGIS  | ||||
| #define glPixelTexGenSGIX mglPixelTexGenSGIX | ||||
| #define glGetColorTableParameterivSGI mglGetColorTableParameterivSGI  | ||||
| #define glGetColorTableParameterfvSGI mglGetColorTableParameterfvSGI  | ||||
| #define glGetColorTableSGI mglGetColorTableSGI  | ||||
| @@ -676,6 +680,62 @@ | ||||
| #define glSecondaryColor3usEXT mglSecondaryColor3usEXT | ||||
| #define glSecondaryColor3sEXT mglSecondaryColor3sEXT | ||||
|  | ||||
| /* 1.3 */ | ||||
| #define glActiveTexture mglActiveTexture | ||||
| #define glClientActiveTexture mglClientActiveTexture | ||||
| #define glSampleCoverage mglSampleCoverage  | ||||
| #define glSamplePass mglSamplePass | ||||
| #define glMultTransposeMatrixf mglMultTransposeMatrixf  | ||||
| #define glMultTransposeMatrixd mglMultTransposeMatrixd  | ||||
| #define glLoadTransposeMatrixf mglLoadTransposeMatrixf  | ||||
| #define glLoadTransposeMatrixd mglLoadTransposeMatrixd  | ||||
| #define glGetCompressedTexImage mglGetCompressedTexImage | ||||
| #define glGetCompressedTexImageARB mglGetCompressedTexImageARB | ||||
| #define glCompressedTexSubImage3D mglCompressedTexSubImage3D | ||||
| #define glCompressedTexSubImage2D mglCompressedTexSubImage2D | ||||
| #define glCompressedTexSubImage1D mglCompressedTexSubImage1D | ||||
| #define glCompressedTexImage3D mglCompressedTexImage3D | ||||
| #define glCompressedTexImage2D mglCompressedTexImage2D | ||||
| #define glCompressedTexImage1D mglCompressedTexImage1D | ||||
| #define glCompressedTexSubImage3DARB mglCompressedTexSubImage3DARB | ||||
| #define glCompressedTexSubImage2DARB mglCompressedTexSubImage2DARB | ||||
| #define glCompressedTexSubImage1DARB mglCompressedTexSubImage1DARB | ||||
| #define glCompressedTexImage3DARB mglCompressedTexImage3DARB | ||||
| #define glCompressedTexImage2DARB mglCompressedTexImage2DARB | ||||
| #define glCompressedTexImage1DARB mglCompressedTexImage1DARB | ||||
| #define glMultiTexCoord1d mglMultiTexCoord1d | ||||
| #define glMultiTexCoord1dv mglMultiTexCoord1dv | ||||
| #define glMultiTexCoord1f mglMultiTexCoord1f | ||||
| #define glMultiTexCoord1fv mglMultiTexCoord1fv | ||||
| #define glMultiTexCoord1i mglMultiTexCoord1i | ||||
| #define glMultiTexCoord1iv mglMultiTexCoord1iv | ||||
| #define glMultiTexCoord1s mglMultiTexCoord1s | ||||
| #define glMultiTexCoord1sv mglMultiTexCoord1sv | ||||
| #define glMultiTexCoord2d mglMultiTexCoord2d | ||||
| #define glMultiTexCoord2dv mglMultiTexCoord2dv | ||||
| #define glMultiTexCoord2f mglMultiTexCoord2f | ||||
| #define glMultiTexCoord2fv mglMultiTexCoord2fv | ||||
| #define glMultiTexCoord2i mglMultiTexCoord2i | ||||
| #define glMultiTexCoord2iv mglMultiTexCoord2iv | ||||
| #define glMultiTexCoord2s mglMultiTexCoord2s | ||||
| #define glMultiTexCoord2sv mglMultiTexCoord2sv | ||||
| #define glMultiTexCoord3d mglMultiTexCoord3d | ||||
| #define glMultiTexCoord3dv mglMultiTexCoord3dv | ||||
| #define glMultiTexCoord3f mglMultiTexCoord3f | ||||
| #define glMultiTexCoord3fv mglMultiTexCoord3fv | ||||
| #define glMultiTexCoord3i mglMultiTexCoord3i | ||||
| #define glMultiTexCoord3iv mglMultiTexCoord3iv | ||||
| #define glMultiTexCoord3s mglMultiTexCoord3s | ||||
| #define glMultiTexCoord3sv mglMultiTexCoord3sv | ||||
| #define glMultiTexCoord4d mglMultiTexCoord4d | ||||
| #define glMultiTexCoord4dv mglMultiTexCoord4dv | ||||
| #define glMultiTexCoord4f mglMultiTexCoord4f | ||||
| #define glMultiTexCoord4fv mglMultiTexCoord4fv | ||||
| #define glMultiTexCoord4i mglMultiTexCoord4i | ||||
| #define glMultiTexCoord4iv mglMultiTexCoord4iv | ||||
| #define glMultiTexCoord4s mglMultiTexCoord4s | ||||
| #define glMultiTexCoord4sv mglMultiTexCoord4sv | ||||
|  | ||||
|  | ||||
| /* Internal symbols which may collide with other OpenGL implementations. */ | ||||
| #define __glCoreCreateContext __mglCoreCreateContext | ||||
|   | ||||
| @@ -250,10 +250,10 @@ typedef struct GLUquadric GLUquadric; | ||||
| typedef struct GLUtesselator GLUtesselator; | ||||
| #endif | ||||
|  | ||||
| typedef struct GLUnurbs GLUnurbsObj; | ||||
| typedef struct GLUquadric GLUquadricObj; | ||||
| typedef struct GLUtesselator GLUtesselatorObj; | ||||
| typedef struct GLUtesselator GLUtriangulatorObj; | ||||
| typedef GLUnurbs GLUnurbsObj; | ||||
| typedef GLUquadric GLUquadricObj; | ||||
| typedef GLUtesselator GLUtesselatorObj; | ||||
| typedef GLUtesselator GLUtriangulatorObj; | ||||
|  | ||||
| #define GLU_TESS_MAX_COORD 1.0e150 | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: glx.h,v 1.33 2001/09/24 14:15:58 brianp Exp $ */ | ||||
| /* $Id: glx.h,v 1.33.2.1 2001/12/14 03:20:57 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -172,8 +172,8 @@ extern "C" { | ||||
| /* | ||||
|  * GLX 1.4 and later: | ||||
|  */ | ||||
| #define GLX_SAMPLE_BUFFERS_SGIS            100000 | ||||
| #define GLX_SAMPLES_SGIS                   100001 | ||||
| #define GLX_SAMPLE_BUFFERS              0x186a0 /*100000*/ | ||||
| #define GLX_SAMPLES                     0x186a1 /*100001*/ | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -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.1 2001/11/09 22:00:26 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.0 | ||||
|  * Version:  4.1 | ||||
|  * Copyright (C) 1995-1998  Brian Paul | ||||
|  * | ||||
|  * 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 | ||||
| #define GLX_MANGLE_H | ||||
|  | ||||
| @@ -69,4 +50,8 @@ | ||||
| #define glXGetVideoSyncSGI mglXGetVideoSyncSGI | ||||
| #define glXWaitVideoSyncSGI mglXWaitVideoSyncSGI | ||||
|  | ||||
| /* GLX 1.4 */ | ||||
| #define glXGetProcAddress mglXGetProcAddress | ||||
|  | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -413,7 +413,7 @@ typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSou | ||||
| #ifdef GLX_GLXEXT_PROTOTYPES | ||||
| extern Display * glXGetCurrentDisplayEXT (void); | ||||
| extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *); | ||||
| extern GLXContextID glXGetContextIDEXT (GLXContext); | ||||
| extern GLXContextID glXGetContextIDEXT (const GLXContext); | ||||
| extern GLXContext glXImportContextEXT (Display *, GLXContextID); | ||||
| extern void glXFreeContextEXT (Display *, GLXContext); | ||||
| #endif /* GLX_GLXEXT_PROTOTYPES */ | ||||
|   | ||||
| @@ -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.1 2001/10/26 21:03:15 kschultz Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.5 | ||||
| @@ -79,22 +79,20 @@ OSMESASRCS = osdemo.c | ||||
|  | ||||
| clean:: | ||||
|  | ||||
| realclean:: | ||||
| clobber:: | ||||
| 	@del readtex.c readtex.h | ||||
|  | ||||
| targets: readtex.c readtex.h $(PROGS) | ||||
|  | ||||
| # remove comments when we get non-osmesa pgm working | ||||
| $(EXES) : $*.obj | ||||
| $(EXES) : $*.obj readtex.c readtex.h | ||||
| 	@echo $@ | ||||
| 	$(link) -out:$@ $** /LIBPATH:$(LIBDIR) $(LIBS) | ||||
| 	$(link) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) | ||||
|  | ||||
| $(OSMESAEXES) : $*.obj | ||||
| 	@echo $@ | ||||
| 	$(link) $(lcommon) -out:$@ $** /LIBPATH:$(LIBDIR) $(LIBS) $(EXTRALIBS) | ||||
| 	$(link) $(lcommon) -out:$@ $* /LIBPATH:$(LIBDIR) $(LIBS) $(EXTRALIBS) | ||||
|  | ||||
| readtex.c: | ||||
| 	@copy ../util/readtex.c . | ||||
| 	-copy ..\util\readtex.c . | ||||
|  | ||||
| readtex.h: | ||||
| 	@copy ../util/readtex.c . | ||||
| 	-copy ..\util\readtex.h . | ||||
|  | ||||
|   | ||||
| @@ -40,7 +40,7 @@ | ||||
| static GLfloat Xrot = 0, Yrot = -30, Zrot = 0; | ||||
| static GLboolean Anim = GL_TRUE; | ||||
| 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 ) | ||||
| { | ||||
|    const char *exten = (const char *) glGetString(GL_EXTENSIONS); | ||||
|    GLfloat maxBias; | ||||
|  | ||||
|    if (!strstr(exten, "GL_EXT_texture_lod_bias")) { | ||||
|       printf("Sorry, GL_EXT_texture_lod_bias not supported by this renderer.\n"); | ||||
|       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_MAG_FILTER, GL_LINEAR); | ||||
|    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: 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 | ||||
| @@ -29,6 +29,7 @@ | ||||
| #include <GL/glx.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <unistd.h> | ||||
|  | ||||
|  | ||||
| @@ -281,7 +282,7 @@ static void | ||||
| PrintInfo(const struct head *h) | ||||
| { | ||||
|    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("  Context:     0x%x\n", (int) h->Context); | ||||
|    printf("  GL_VERSION:  %s\n", h->Version); | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| # $Id: Makefile.X11,v 1.5 2001/08/13 16:51:08 brianp Exp $ | ||||
| # $Id: Makefile.X11,v 1.5.2.1 2001/12/14 17:18:08 kschultz Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.5 | ||||
| @@ -6,6 +6,7 @@ | ||||
|  | ||||
| # Makefile for SGI SI GLU library | ||||
|  | ||||
| .SUFFIXES : .cc | ||||
|  | ||||
| ##### MACROS ##### | ||||
|  | ||||
| @@ -127,7 +128,6 @@ OBJECTS = $(C_OBJECTS) $(CC_OBJECTS) | ||||
| 	$(CPLUSPLUS) -c $(INCDIRS) $(CCFLAGS) -DLIBRARYBUILD $< -o $@ | ||||
|  | ||||
|  | ||||
|  | ||||
| ##### TARGETS ##### | ||||
|  | ||||
| default: | ||||
|   | ||||
| @@ -1,14 +1,5 @@ | ||||
| # 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> | ||||
|  | ||||
| .SUFFIXES : .cc | ||||
| @@ -116,16 +107,14 @@ all	: gludll | ||||
|  | ||||
| gludll	: $(GLUDLL) | ||||
|  | ||||
| CFLAGS	= $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -Iinclude -DBUILD_GL32 | ||||
| CFLAGS	= $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -Iinclude -DBUILD_GL32 -DLIBRARYBUILD | ||||
| LFLAGS	= $(dlllflags) $(lcommon) $(LFLAGS) | ||||
|  | ||||
| OBJS	= $(GLU_SRCS:.c=.obj) | ||||
| 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) | ||||
| #NURBSINC = -Ilibnurbs\interface -Ilibnurbs\internals -Ilibnurbs\nurbtess  | ||||
| #CFLAGS  = $(CFLAGS) $(NURBSINC) | ||||
| OBJS	= $(GLU_SRCS_CC:.cc=.obj) $(GLU_SRCS:.c=.obj) | ||||
| NURBSINC = -Ilibnurbs\interface -Ilibnurbs\internals -Ilibnurbs\nurbtess  | ||||
| CFLAGS  = $(CFLAGS) $(NURBSINC) | ||||
|  | ||||
| $(GLUDLL): $(OBJS) glu.def | ||||
| 	$(link) $(LFLAGS) -out:$(GLUDLL) -def:glu.def $(OBJS) $(LIBS) | ||||
|   | ||||
| @@ -1,8 +1,11 @@ | ||||
| DESCRIPTION 'Mesa GLU (OpenGL work-alike) for Win32' | ||||
| VERSION 3.5 | ||||
| VERSION 4.0 | ||||
|  | ||||
| EXPORTS | ||||
| 	gluBeginCurve | ||||
| 	gluBeginPolygon | ||||
| 	gluBeginSurface | ||||
| 	gluBeginTrim | ||||
| 	gluBuild1DMipmapLevels | ||||
| 	gluBuild1DMipmaps | ||||
| 	gluBuild2DMipmapLevels | ||||
| @@ -11,22 +14,36 @@ EXPORTS | ||||
| 	gluBuild3DMipmaps | ||||
| 	gluCheckExtension | ||||
| 	gluCylinder | ||||
| 	gluDeleteNurbsRenderer | ||||
| 	gluDeleteQuadric | ||||
| 	gluDeleteTess | ||||
| 	gluDisk | ||||
| 	gluEndCurve | ||||
| 	gluEndPolygon | ||||
| 	gluEndSurface | ||||
| 	gluEndTrim | ||||
| 	gluErrorString | ||||
| 	gluGetNurbsProperty | ||||
| 	gluGetString | ||||
| 	gluGetTessProperty | ||||
| 	gluLoadSamplingMatrices | ||||
| 	gluLookAt | ||||
| 	gluNewNurbsRenderer | ||||
| 	gluNewQuadric | ||||
| 	gluNewTess | ||||
| 	gluNextContour | ||||
| 	gluNurbsCallback | ||||
| 	gluNurbsCallbackData | ||||
| 	gluNurbsCallbackDataEXT | ||||
| 	gluNurbsCurve | ||||
| 	gluNurbsProperty | ||||
| 	gluNurbsSurface | ||||
| 	gluOrtho2D | ||||
| 	gluPartialDisk | ||||
| 	gluPerspective | ||||
| 	gluPickMatrix | ||||
| 	gluProject | ||||
| 	gluPwlCurve | ||||
| 	gluQuadricCallback | ||||
| 	gluQuadricDrawStyle | ||||
| 	gluQuadricNormals | ||||
|   | ||||
| @@ -31,10 +31,10 @@ | ||||
| ** published by SGI, but has not been independently verified as being | ||||
| ** 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> | ||||
| @@ -72,8 +72,8 @@ void bezierCurveEval(float u0, float u1, int order, float *ctlpoints, int stride | ||||
| { | ||||
|   float uprime = (u-u0)/(u1-u0); | ||||
|   float *ctlptr = ctlpoints; | ||||
|   float oneMinusX = 1.0-uprime; | ||||
|   float XPower = 1.0; | ||||
|   float oneMinusX = 1.0f-uprime; | ||||
|   float XPower = 1.0f; | ||||
|  | ||||
|   int i,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[]) | ||||
| { | ||||
|   int i,j,k; | ||||
|   int i; | ||||
|   float newPoints[MAX_ORDER][MAX_DIMENSION]; | ||||
|  | ||||
|   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*/ | ||||
| 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)  | ||||
|     { | ||||
|   | ||||
| @@ -35,8 +35,8 @@ | ||||
| /* | ||||
|  * mapdesc.c++ | ||||
|  * | ||||
|  * $Date: 2001/03/17 00:25:41 $ $Revision: 1.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 $ | ||||
|  * $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.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||
|  */ | ||||
|  | ||||
| #include <stdio.h> | ||||
| @@ -372,13 +372,13 @@ Mapdesc::xformAndCullCheck( | ||||
| 	    unsigned int bits = clipbits( cpts ); | ||||
| 	    outbits |= 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; | ||||
|     } else if( inbits == mask ) { | ||||
|     } else if( inbits == (unsigned int)mask ) { | ||||
| 	return CULL_TRIVIAL_ACCEPT; | ||||
|     } else { | ||||
| 	return CULL_ACCEPT; | ||||
| @@ -404,13 +404,13 @@ Mapdesc::cullCheck( REAL *pts, int uorder, int ustride, int vorder, int vstride | ||||
| 	    unsigned int bits = clipbits( q ); | ||||
| 	    outbits |= 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; | ||||
|     } else if( inbits == mask ) { | ||||
|     } else if( inbits == (unsigned int)mask ) { | ||||
| 	return CULL_TRIVIAL_ACCEPT; | ||||
|     } else { | ||||
| 	return CULL_ACCEPT; | ||||
| @@ -434,12 +434,12 @@ Mapdesc::cullCheck( REAL *pts, int order, int stride ) | ||||
| 	unsigned int bits = clipbits( p ); | ||||
| 	outbits |= 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; | ||||
|     } else if( inbits == mask ) { | ||||
|     } else if( inbits == (unsigned int)mask ) { | ||||
| 	return CULL_TRIVIAL_ACCEPT; | ||||
|     } else { | ||||
| 	return CULL_ACCEPT; | ||||
|   | ||||
| @@ -35,8 +35,8 @@ | ||||
| /* | ||||
|  * mesher.c++ | ||||
|  * | ||||
|  * $Date: 2001/08/07 17:34:11 $ $Revision: 1.2 $ | ||||
|  * $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 $ | ||||
|  * $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.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "glimports.h" | ||||
| @@ -82,7 +82,7 @@ Mesher::init( unsigned int npts ) | ||||
| inline void | ||||
| Mesher::push( GridTrimVertex *gt ) | ||||
| { | ||||
|     assert( itop+1 != stacksize ); | ||||
|     assert( itop+1 != (int)stacksize ); | ||||
|     vdata[++itop] = gt; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -35,8 +35,8 @@ | ||||
| /* | ||||
|  * sorter.c++ | ||||
|  * | ||||
|  * $Date: 2001/03/17 00:25:41 $ $Revision: 1.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 $ | ||||
|  * $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.2.1 2001/11/29 16:38:27 kschultz Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "glimports.h" | ||||
| @@ -84,7 +84,7 @@ Sorter::qs1( char *a,  char *l ) | ||||
|     unsigned int n; | ||||
|  | ||||
| start: | ||||
|     if((n=l-a) <= es) | ||||
|     if((n=l-a) <= (unsigned int)es) | ||||
| 	    return; | ||||
|     n = es * (n / (2*es)); | ||||
|     hp = lp = a+n; | ||||
|   | ||||
| @@ -31,10 +31,10 @@ | ||||
| ** published by SGI, but has not been independently verified as being | ||||
| ** 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> | ||||
| @@ -596,7 +596,7 @@ Real directedLine::polyArea() | ||||
|       y2 = temp->next->head()[1]; | ||||
|       ret += -( x2*y1-x1*y2); | ||||
|     } | ||||
|   return 0.5*ret; | ||||
|   return Real(0.5)*ret; | ||||
| } | ||||
|  | ||||
| /*******************split or combine polygons begin********************/ | ||||
|   | ||||
| @@ -31,10 +31,10 @@ | ||||
| ** published by SGI, but has not been independently verified as being | ||||
| ** 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> | ||||
| @@ -231,7 +231,7 @@ Int sweepRangeEqual(sweepRange* src1, sweepRange* src2) | ||||
|  */ | ||||
| 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; | ||||
|   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 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 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 | ||||
| ** 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> | ||||
| @@ -395,7 +395,7 @@ poly->printList(); | ||||
| */ | ||||
|   /*for debug purpose*/ | ||||
|   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) | ||||
|     return 1;  | ||||
|   | ||||
| @@ -31,20 +31,24 @@ | ||||
| ** published by SGI, but has not been independently verified as being | ||||
| ** 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 | ||||
| #define _POLYUTIL_H | ||||
|  | ||||
| #include "definitions.h" | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
| Real area(Real A[2], Real B[2], Real C[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]); | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
| #endif | ||||
|   | ||||
| @@ -31,10 +31,10 @@ | ||||
| ** published by SGI, but has not been independently verified as being | ||||
| ** 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> | ||||
| @@ -327,7 +327,7 @@ Int findBotSeparator(vertexArray* leftChain, | ||||
|     { | ||||
|       oldLeftI = leftCorner-1; | ||||
|       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];  | ||||
|     } | ||||
|   else //rightlower | ||||
| @@ -335,7 +335,7 @@ Int findBotSeparator(vertexArray* leftChain, | ||||
|       oldLeftI = leftCorner; | ||||
|       oldRightI = rightCorner-1; | ||||
|       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 | ||||
|   | ||||
| @@ -31,10 +31,10 @@ | ||||
| ** published by SGI, but has not been independently verified as being | ||||
| ** 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> | ||||
| @@ -343,7 +343,7 @@ Int findTopSeparator(vertexArray* leftChain, | ||||
|     { | ||||
|       oldLeftI = leftEndIndex+1; | ||||
|       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]; | ||||
|     } | ||||
|   else | ||||
| @@ -351,7 +351,7 @@ Int findTopSeparator(vertexArray* leftChain, | ||||
|       oldLeftI = leftEndIndex; | ||||
|       oldRightI = rightEndIndex+1; | ||||
|       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,  | ||||
| @@ -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 | ||||
|          // inc_chain[i] | ||||
|          int l; | ||||
|          Real tempI = j; | ||||
|          Real tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]); | ||||
|          Real tempI = Real(j); | ||||
|          Real tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(j)[0]); | ||||
|          for(l=j+1; l<= k-1; l++) | ||||
| 	   { | ||||
| 	     if(fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]) | ||||
| 		<= tempMin) | ||||
| 	       { | ||||
| 		 tempMin = fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]); | ||||
| 		 tempI = l; | ||||
| 		 tempMin = (Real)fabs(inc_chain->getVertex(i)[0] - dec_chain->getVertex(l)[0]); | ||||
| 		 tempI = (Real)l; | ||||
| 	       } | ||||
| 	   } | ||||
| 	 //inc_chain[i] and dec_chain[tempI] are connected. | ||||
| 	 monoTriangulationRecGenOpt(dec_chain->getVertex(tempI), | ||||
| 	 monoTriangulationRecGenOpt(dec_chain->getVertex((int)tempI), | ||||
| 				    botVertex, | ||||
| 				    inc_chain, i, inc_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] | ||||
| 	  int tempI = i; | ||||
| 	  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++) | ||||
| 	    { | ||||
| 	      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; | ||||
| 		} | ||||
| 	    }				 	       | ||||
|   | ||||
| @@ -31,10 +31,10 @@ | ||||
| ** published by SGI, but has not been independently verified as being | ||||
| ** 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> | ||||
| @@ -96,7 +96,6 @@ sampledLine::sampledLine(Int n_points, Real2 pts[]) | ||||
|  | ||||
| sampledLine::sampledLine(Real pt1[2], Real pt2[2]) | ||||
| { | ||||
|   int i; | ||||
|   npoints = 2; | ||||
|   points = (Real2*) malloc(sizeof(Real2) * 2); | ||||
|   assert(points); | ||||
|   | ||||
| @@ -35,14 +35,14 @@ | ||||
| /* | ||||
| ** Author: Eric Veach, July 1994. | ||||
| ** | ||||
| ** $Date: 2001/07/20 11:20:32 $ $Revision: 1.2 $ | ||||
| ** $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 $ | ||||
| ** $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.2.1 2001/11/30 20:12:38 kschultz Exp $ | ||||
| */ | ||||
|  | ||||
| #ifndef __memalloc_simple_h_ | ||||
| #define __memalloc_simple_h_ | ||||
|  | ||||
| #ifdef __VMS | ||||
| #if defined(__VMS) || defined(darwin) | ||||
| # include <stdlib.h> | ||||
| #else | ||||
| # include <malloc.h> | ||||
|   | ||||
| @@ -25,8 +25,8 @@ OBJS   = $(SRCS:.c=.obj) | ||||
| MS_LIBS   = ../lib/$(MESALIB) ../lib/$(GLULIB) winmm.lib $(guilibsdll) | ||||
| SGI_LIBS   = $(SGI_OPENGL) $(SGI_GLU) winmm.lib $(guilibsdll) | ||||
|  | ||||
| glut32.dll : $(OBJS) glut.def | ||||
| 	$(link) $(LFLAGS) -out:glut32.dll -def:glut.def $(OBJS) $(MS_LIBS) | ||||
| MesaGlut.dll : $(OBJS) glut.def | ||||
| 	$(link) $(LFLAGS) -out:MesaGlut.dll -def:glut.def $(OBJS) $(MS_LIBS) | ||||
| 	@echo "copying GLUT dynamic link library to lib directory..." | ||||
| 	-copy $(GLUTDLL) ..\lib | ||||
| 	@echo "copying GLUT import library to lib directory..." | ||||
|   | ||||
| @@ -439,15 +439,15 @@ loadVisuals(int *nitems_return) | ||||
|         GLXFBConfigSGIX fbc; | ||||
|         int fbconfigID, drawType, renderType; | ||||
|  | ||||
|         fbc = glXGetFBConfigFromVisualSGIX(__glutDisplay, vlist[i]); | ||||
|         fbc = __glut_glXGetFBConfigFromVisualSGIX(__glutDisplay, vlist[i]); | ||||
|         if (fbc) { | ||||
|           rc = glXGetFBConfigAttribSGIX(__glutDisplay, fbc, | ||||
|           rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay, fbc, | ||||
| 	    GLX_FBCONFIG_ID_SGIX, &fbconfigID); | ||||
|           if ((rc == 0) && (fbconfigID != None)) { | ||||
|             rc = glXGetFBConfigAttribSGIX(__glutDisplay, fbc, | ||||
|             rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay, fbc, | ||||
| 	      GLX_DRAWABLE_TYPE_SGIX, &drawType); | ||||
|             if ((rc == 0) && (drawType & GLX_WINDOW_BIT_SGIX)) { | ||||
|               rc = glXGetFBConfigAttribSGIX(__glutDisplay, fbc, | ||||
|               rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay, fbc, | ||||
| 	        GLX_RENDER_TYPE_SGIX, &renderType); | ||||
|               if ((rc == 0) && (renderType & GLX_RGBA_BIT_SGIX)) { | ||||
|                 mode->fbc = fbc; | ||||
| @@ -459,7 +459,7 @@ loadVisuals(int *nitems_return) | ||||
|  | ||||
|                 /* Start with "j = 1" to skip the GLX_RGBA attribute. */ | ||||
|                 for (j = 1; j < NUM_GLXCAPS; j++) { | ||||
|                   rc = glXGetFBConfigAttribSGIX(__glutDisplay, | ||||
|                   rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay, | ||||
| 		    fbc, glxcap[j], &mode->cap[j]); | ||||
|                   if (rc != 0) { | ||||
|                     mode->valid = 0; | ||||
| @@ -509,7 +509,7 @@ loadVisuals(int *nitems_return) | ||||
| #define GLX_VISUAL_CAVEAT_EXT 0x20 | ||||
| #endif | ||||
|  | ||||
|                   rc = glXGetFBConfigAttribSGIX(__glutDisplay, | ||||
|                   rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay, | ||||
| 		    fbc, GLX_VISUAL_CAVEAT_EXT, &rating); | ||||
|                   if (rc != 0) { | ||||
|                     mode->cap[SLOW] = 0; | ||||
| @@ -558,7 +558,7 @@ loadVisuals(int *nitems_return) | ||||
| #define GLX_TRANSPARENT_TYPE_EXT 0x23 | ||||
| #endif | ||||
|  | ||||
|                   rc = glXGetFBConfigAttribSGIX(__glutDisplay, | ||||
|                   rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay, | ||||
| 		    fbc, GLX_TRANSPARENT_TYPE_EXT, &transparent); | ||||
|                   if (rc != 0) { | ||||
|                     mode->cap[TRANSPARENT] = 0; | ||||
| @@ -573,7 +573,7 @@ loadVisuals(int *nitems_return) | ||||
| #endif | ||||
| #if defined(GLX_VERSION_1_1) && defined(GLX_SGIS_multisample) | ||||
|                 if (multisample) { | ||||
|                   rc = glXGetFBConfigAttribSGIX(__glutDisplay, | ||||
|                   rc = __glut_glXGetFBConfigAttribSGIX(__glutDisplay, | ||||
| 		    fbc, GLX_SAMPLES_SGIS, &mode->cap[SAMPLES]); | ||||
|                   if (rc != 0) { | ||||
|                     mode->cap[SAMPLES] = 0; | ||||
|   | ||||
| @@ -50,4 +50,19 @@ glutExtensionSupported(const char *extension) | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| /* XXX This isn't an official GLUT function, yet */ | ||||
| void * APIENTRY  | ||||
| glutGetProcAddress(const char *procName) | ||||
| { | ||||
| #if defined(_WIN32) | ||||
|   return (void *) wglGetProcAddress((LPCSTR) procName); | ||||
| #elif defined(GLX_ARB_get_proc_address) | ||||
|   return (void *) glXGetProcAddressARB((const GLubyte *) procName); | ||||
| #else | ||||
|   return NULL; | ||||
| #endif | ||||
| } | ||||
|  | ||||
|  | ||||
| /* ENDCENTRY */ | ||||
|   | ||||
| @@ -46,3 +46,210 @@ __glutIsSupportedByGLX(char *extension) | ||||
|   return 0; | ||||
| } | ||||
| #endif | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Wrapping of GLX extension functions. | ||||
|  * Technically, we should do a runtime test to see if we've got the | ||||
|  * glXGetProcAddressARB() function.  I think GLX_ARB_get_proc_address | ||||
|  * is pretty widely supported now and any system that has | ||||
|  * GLX_ARB_get_proc_address defined in its header files should be OK | ||||
|  * at runtime. | ||||
|  */ | ||||
|  | ||||
| int | ||||
| __glut_glXBindChannelToWindowSGIX(Display *dpy, int screen, | ||||
|                                   int channel, Window window) | ||||
| { | ||||
| #ifdef GLX_ARB_get_proc_address | ||||
|   typedef int (*glXBindChannelToWindowSGIX_t) (Display *, int, int, Window); | ||||
|   static glXBindChannelToWindowSGIX_t glXBindChannelToWindowSGIX_ptr = NULL; | ||||
|   if (!glXBindChannelToWindowSGIX_ptr) { | ||||
|     glXBindChannelToWindowSGIX_ptr = (glXBindChannelToWindowSGIX_t) | ||||
|       glXGetProcAddressARB((const GLubyte *) "glXBindChannelToWindowSGIX"); | ||||
|   } | ||||
|   if (glXBindChannelToWindowSGIX_ptr) | ||||
|     return (*glXBindChannelToWindowSGIX_ptr)(dpy, screen, channel, window); | ||||
|   else | ||||
|     return 0; | ||||
| #elif defined(GLX_SGIX_video_resize) | ||||
|   return glXBindChannelToWindowSGIX(dpy, screen, channel, window); | ||||
| #else | ||||
|   return 0; | ||||
| #endif    | ||||
| } | ||||
|  | ||||
|  | ||||
| int | ||||
| __glut_glXChannelRectSGIX(Display *dpy, int screen, int channel, | ||||
|                           int x, int y, int w, int h) | ||||
| { | ||||
| #ifdef GLX_ARB_get_proc_address | ||||
|   typedef int (*glXChannelRectSGIX_t)(Display *, int, int, int, int, int, int); | ||||
|   static glXChannelRectSGIX_t glXChannelRectSGIX_ptr = NULL; | ||||
|   if (!glXChannelRectSGIX_ptr) { | ||||
|     glXChannelRectSGIX_ptr = (glXChannelRectSGIX_t) | ||||
|       glXGetProcAddressARB((const GLubyte *) "glXChannelRectSGIX"); | ||||
|   } | ||||
|   if (glXChannelRectSGIX_ptr) | ||||
|     return (*glXChannelRectSGIX_ptr)(dpy, screen, channel, x, y, w, h); | ||||
|   else | ||||
|     return 0; | ||||
| #elif defined(GLX_SGIX_video_resize) | ||||
|   return glXChannelRectSGIX(dpy, screen, channel, x, y, w, h); | ||||
| #else | ||||
|   return 0; | ||||
| #endif    | ||||
| } | ||||
|  | ||||
|  | ||||
| int | ||||
| __glut_glXQueryChannelRectSGIX(Display *dpy, int screen, int channel, | ||||
|                                int *x, int *y, int *w, int *h) | ||||
| { | ||||
| #ifdef GLX_ARB_get_proc_address | ||||
|   typedef int (*glXQueryChannelRectSGIX_t)(Display *, int, int, | ||||
|                                            int *, int *, int *, int *); | ||||
|   static glXQueryChannelRectSGIX_t glXQueryChannelRectSGIX_ptr = NULL; | ||||
|   if (!glXQueryChannelRectSGIX_ptr) { | ||||
|     glXQueryChannelRectSGIX_ptr = (glXQueryChannelRectSGIX_t) | ||||
|       glXGetProcAddressARB((const GLubyte *) "glXQueryChannelRectSGIX"); | ||||
|   } | ||||
|   if (glXQueryChannelRectSGIX_ptr) | ||||
|     return (*glXQueryChannelRectSGIX_ptr)(dpy, screen, channel, x, y, w, h); | ||||
|   else | ||||
|     return 0; | ||||
| #elif defined(GLX_SGIX_video_resize) | ||||
|   return glXQueryChannelRectSGIX(dpy, screen, channel, x, y, w, h); | ||||
| #else | ||||
|   return 0; | ||||
| #endif    | ||||
| } | ||||
|  | ||||
|  | ||||
| int | ||||
| __glut_glXQueryChannelDeltasSGIX(Display *dpy, int screen, int channel, | ||||
|                                  int *dx, int *dy, int *dw, int *dh) | ||||
| { | ||||
| #ifdef GLX_ARB_get_proc_address | ||||
|   typedef int (*glXQueryChannelDeltasSGIX_t)(Display *, int, int, | ||||
|                                              int *, int *, int *, int *); | ||||
|   static glXQueryChannelDeltasSGIX_t glXQueryChannelDeltasSGIX_ptr = NULL; | ||||
|   if (!glXQueryChannelDeltasSGIX_ptr) { | ||||
|     glXQueryChannelDeltasSGIX_ptr = (glXQueryChannelDeltasSGIX_t) | ||||
|       glXGetProcAddressARB((const GLubyte *) "glXQueryChannelDeltasSGIX"); | ||||
|   } | ||||
|   if (glXQueryChannelDeltasSGIX_ptr) | ||||
|     return (*glXQueryChannelDeltasSGIX_ptr)(dpy, screen, channel, | ||||
|                                             dx, dy, dw, dh); | ||||
|   else | ||||
|     return 0; | ||||
| #elif defined(GLX_SGIX_video_resize) | ||||
|   return glXQueryChannelDeltasSGIX(dpy, screen, channel, dx, dy, dw, dh); | ||||
| #else | ||||
|   return 0; | ||||
| #endif    | ||||
| } | ||||
|  | ||||
|  | ||||
| int | ||||
| __glut_glXChannelRectSyncSGIX(Display *dpy, int screen, | ||||
|                               int channel, GLenum synctype) | ||||
| { | ||||
| #ifdef GLX_ARB_get_proc_address | ||||
|   typedef int (*glXChannelRectSyncSGIX_t)(Display *, int, int, GLenum); | ||||
|   static glXChannelRectSyncSGIX_t glXChannelRectSyncSGIX_ptr = NULL; | ||||
|   if (!glXChannelRectSyncSGIX_ptr) { | ||||
|     glXChannelRectSyncSGIX_ptr = (glXChannelRectSyncSGIX_t) | ||||
|       glXGetProcAddressARB((const GLubyte *) "glXChannelRectSyncSGIX"); | ||||
|   } | ||||
|   if (glXChannelRectSyncSGIX_ptr) | ||||
|     return (*glXChannelRectSyncSGIX_ptr)(dpy, screen, channel, synctype); | ||||
|   else | ||||
|     return 0; | ||||
| #elif defined(GLX_SGIX_video_resize) | ||||
|   return glXChannelRectSyncSGIX(dpy, screen, channel, synctype); | ||||
| #else | ||||
|   return 0; | ||||
| #endif    | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| GLXContext | ||||
| __glut_glXCreateContextWithConfigSGIX(Display *dpy, GLXFBConfigSGIX config, | ||||
|                                       int render_type, GLXContext share_list, | ||||
|                                       Bool direct) | ||||
| { | ||||
| #ifdef GLX_ARB_get_proc_address | ||||
|   typedef GLXContext (*glXCreateContextWithConfigSGIX_t)(Display *, | ||||
|                                  GLXFBConfigSGIX, int, GLXContext, Bool); | ||||
|   static glXCreateContextWithConfigSGIX_t glXCreateContextWithConfig_ptr = NULL; | ||||
|   if (!glXCreateContextWithConfig_ptr) { | ||||
|     glXCreateContextWithConfig_ptr = (glXCreateContextWithConfigSGIX_t) | ||||
|        glXGetProcAddressARB((const GLubyte *) "glXCreateContextWithConfigSGIX"); | ||||
|   } | ||||
|   if (glXCreateContextWithConfig_ptr) | ||||
|     return (*glXCreateContextWithConfig_ptr)(dpy, config, render_type, | ||||
|                                              share_list, direct); | ||||
|   else | ||||
|     return 0; | ||||
| #elif defined(GLX_SGIX_fbconfig) | ||||
|   return glXCreateContextWithConfigSGIX(dpy, config, render_type, | ||||
|                                         share_list, direct); | ||||
| #else | ||||
|   return 0; | ||||
| #endif | ||||
| } | ||||
|  | ||||
|  | ||||
| int | ||||
| __glut_glXGetFBConfigAttribSGIX(Display *dpy, GLXFBConfigSGIX config, | ||||
|                                 int attribute, int *value) | ||||
| { | ||||
| #ifdef GLX_ARB_get_proc_address | ||||
|   typedef int (*glXGetFBConfigAttribSGIX_t)(Display *, | ||||
|                                             GLXFBConfigSGIX, int, int *); | ||||
|   static glXGetFBConfigAttribSGIX_t glXGetFBConfigAttrib_ptr = NULL; | ||||
|   if (!glXGetFBConfigAttrib_ptr) { | ||||
|     glXGetFBConfigAttrib_ptr = (glXGetFBConfigAttribSGIX_t) | ||||
|        glXGetProcAddressARB((const GLubyte *) "glXGetFBConfigAttribSGIX"); | ||||
|   } | ||||
|   if (glXGetFBConfigAttrib_ptr) | ||||
|     return (*glXGetFBConfigAttrib_ptr)(dpy, config, attribute, value); | ||||
|   else | ||||
|     return 0; | ||||
| #elif defined(GLX_SGIX_fbconfig) | ||||
|   return glXGetFBConfigAttribSGIX(dpy, config, attribute, value); | ||||
| #else | ||||
|   return 0; | ||||
| #endif | ||||
| } | ||||
|  | ||||
|  | ||||
| GLXFBConfigSGIX | ||||
| __glut_glXGetFBConfigFromVisualSGIX(Display *dpy, XVisualInfo *vis) | ||||
| { | ||||
| #ifdef GLX_ARB_get_proc_address | ||||
|   typedef GLXFBConfigSGIX (*glXGetFBConfigFromVisualSGIX_t)(Display *, | ||||
|                                                             XVisualInfo *); | ||||
|   static glXGetFBConfigFromVisualSGIX_t glXGetFBConfigFromVisual_ptr = NULL; | ||||
|   if (!glXGetFBConfigFromVisual_ptr) { | ||||
|     glXGetFBConfigFromVisual_ptr = (glXGetFBConfigFromVisualSGIX_t) | ||||
|        glXGetProcAddressARB((const GLubyte *) "glXGetFBConfigFromVisualSGIX"); | ||||
|   } | ||||
|   if (glXGetFBConfigFromVisual_ptr) | ||||
|     return (*glXGetFBConfigFromVisual_ptr)(dpy, vis); | ||||
|   else | ||||
|     return 0; | ||||
| #elif defined(GLX_SGIX_fbconfig) | ||||
|   return glXGetFBConfigFromVisualSGIX(dpy, vis); | ||||
| #else | ||||
|   return 0; | ||||
| #endif | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -395,7 +395,7 @@ glutEstablishOverlay(void) | ||||
|   } | ||||
| #if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_fbconfig) | ||||
|   if (fbc) { | ||||
|     window->ctx = glXCreateContextWithConfigSGIX(__glutDisplay, fbc, | ||||
|     window->ctx = __glut_glXCreateContextWithConfigSGIX(__glutDisplay, fbc, | ||||
|       GLX_RGBA_TYPE_SGIX, None, __glutTryDirect); | ||||
|   } else | ||||
| #endif | ||||
|   | ||||
| @@ -57,7 +57,7 @@ glutVideoResizeGet(GLenum param) | ||||
|   if (canVideoResize < 0) { | ||||
|     canVideoResize = __glutIsSupportedByGLX("GLX_SGIX_video_resize"); | ||||
|     if (canVideoResize) { | ||||
| #if __sgi | ||||
| #if defined(__sgi) && __sgi | ||||
|       /* This is a hack because IRIX 6.2, 6.3, and some 6.4 | ||||
|          versions were released with GLX_SGIX_video_resize | ||||
|          being advertised by the X server though the video | ||||
| @@ -94,7 +94,8 @@ glutVideoResizeGet(GLenum param) | ||||
|  | ||||
| #if defined(GLX_GLXEXT_PROTOTYPES) | ||||
| #endif | ||||
|         glXQueryChannelDeltasSGIX(__glutDisplay, __glutScreen, | ||||
|  | ||||
|         __glut_glXQueryChannelDeltasSGIX(__glutDisplay, __glutScreen, | ||||
|           videoResizeChannel, &dx, &dy, &dw, &dh); | ||||
|  | ||||
|         /* glXQueryChannelDeltasSGIX is an inherent X server | ||||
| @@ -138,7 +139,7 @@ glutVideoResizeGet(GLenum param) | ||||
|     if (videoResizeInUse) { | ||||
|       int x, y, width, height; | ||||
|  | ||||
|       glXQueryChannelRectSGIX(__glutDisplay, __glutScreen, | ||||
|       __glut_glXQueryChannelRectSGIX(__glutDisplay, __glutScreen, | ||||
|         videoResizeChannel, &x, &y, &width, &height); | ||||
|       switch (param) { | ||||
|       case GLUT_VIDEO_RESIZE_X: | ||||
| @@ -164,7 +165,7 @@ glutSetupVideoResizing(void) | ||||
| { | ||||
| #if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize) | ||||
|   if (glutVideoResizeGet(GLUT_VIDEO_RESIZE_POSSIBLE)) { | ||||
|     glXBindChannelToWindowSGIX(__glutDisplay, __glutScreen, | ||||
|     __glut_glXBindChannelToWindowSGIX(__glutDisplay, __glutScreen, | ||||
|       videoResizeChannel, __glutCurrentWindow->win); | ||||
|     videoResizeInUse = 1; | ||||
|   } else | ||||
| @@ -178,7 +179,7 @@ glutStopVideoResizing(void) | ||||
| #if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_video_resize) | ||||
|   if (glutVideoResizeGet(GLUT_VIDEO_RESIZE_POSSIBLE)) { | ||||
|     if (videoResizeInUse) { | ||||
|       glXBindChannelToWindowSGIX(__glutDisplay, __glutScreen, | ||||
|       __glut_glXBindChannelToWindowSGIX(__glutDisplay, __glutScreen, | ||||
|         videoResizeChannel, None); | ||||
|       videoResizeInUse = 0; | ||||
|     } | ||||
| @@ -196,10 +197,10 @@ glutVideoResize(int x, int y, int width, int height) | ||||
|     /* glXChannelRectSyncSGIX introduced in a patch to IRIX | ||||
|        6.2; the original unpatched IRIX 6.2 behavior is always | ||||
|        GLX_SYNC_SWAP_SGIX. */ | ||||
|     glXChannelRectSyncSGIX(__glutDisplay, __glutScreen, | ||||
|     __glut_glXChannelRectSyncSGIX(__glutDisplay, __glutScreen, | ||||
|       videoResizeChannel, GLX_SYNC_SWAP_SGIX); | ||||
| #endif | ||||
|     glXChannelRectSGIX(__glutDisplay, __glutScreen, | ||||
|     __glut_glXChannelRectSGIX(__glutDisplay, __glutScreen, | ||||
|       videoResizeChannel, x, y, width, height); | ||||
|   } | ||||
| #endif | ||||
| @@ -218,10 +219,10 @@ glutVideoPan(int x, int y, int width, int height) | ||||
|        accomplish GLX_SYNC_FRAME_SGIX on IRIX unpatched 6.2; | ||||
|        this means you'd need a glutSwapBuffers to actually | ||||
|        realize the video resize. */ | ||||
|     glXChannelRectSyncSGIX(__glutDisplay, __glutScreen, | ||||
|     __glut_glXChannelRectSyncSGIX(__glutDisplay, __glutScreen, | ||||
|       videoResizeChannel, GLX_SYNC_FRAME_SGIX); | ||||
| #endif | ||||
|     glXChannelRectSGIX(__glutDisplay, __glutScreen, | ||||
|     __glut_glXChannelRectSGIX(__glutDisplay, __glutScreen, | ||||
|       videoResizeChannel, x, y, width, height); | ||||
|   } | ||||
| #endif | ||||
|   | ||||
| @@ -577,7 +577,7 @@ __glutCreateWindow(GLUTwindow * parent, | ||||
|   window->renderWin = window->win; | ||||
| #if defined(GLX_VERSION_1_1) && defined(GLX_SGIX_fbconfig) | ||||
|   if (fbc) { | ||||
|     window->ctx = glXCreateContextWithConfigSGIX(__glutDisplay, fbc, | ||||
|     window->ctx = __glut_glXCreateContextWithConfigSGIX(__glutDisplay, fbc, | ||||
|       GLX_RGBA_TYPE_SGIX, None, __glutTryDirect); | ||||
|   } else | ||||
| #endif | ||||
|   | ||||
| @@ -764,6 +764,29 @@ extern void __glutDestroyWindow( | ||||
| #if !defined(_WIN32) | ||||
| /* private routines from glut_glxext.c */ | ||||
| extern int __glutIsSupportedByGLX(char *); | ||||
| extern int __glut_glXBindChannelToWindowSGIX(Display *dpy, int screen, | ||||
|                                              int channel, Window window); | ||||
| extern int __glut_glXChannelRectSGIX(Display *dpy, int screen, int channel, | ||||
|                                      int x, int y, int w, int h); | ||||
| extern int __glut_glXQueryChannelRectSGIX(Display *dpy, int screen, | ||||
|                                           int channel, int *x, int *y, | ||||
|                                           int *w, int *h); | ||||
| extern int __glut_glXQueryChannelDeltasSGIX(Display *dpy, int screen, | ||||
|                                             int channel, int *dx, int *dy, | ||||
|                                             int *dw, int *dh); | ||||
| extern int __glut_glXChannelRectSyncSGIX(Display *dpy, int screen, int channel, | ||||
|                                          GLenum synctype); | ||||
| extern GLXContext __glut_glXCreateContextWithConfigSGIX(Display *dpy, | ||||
|                                                         GLXFBConfigSGIX config, | ||||
|                                                         int render_type, | ||||
|                                                         GLXContext share_list, | ||||
|                                                         Bool direct); | ||||
| extern int __glut_glXGetFBConfigAttribSGIX(Display *dpy, | ||||
|                                            GLXFBConfigSGIX config, | ||||
|                                            int attribute, | ||||
|                                            int *value); | ||||
| extern GLXFBConfigSGIX __glut_glXGetFBConfigFromVisualSGIX(Display *dpy, | ||||
|                                                            XVisualInfo *vis); | ||||
| #endif | ||||
|  | ||||
| /* private routines from glut_input.c */ | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| # $Id: Makefile.X11,v 1.58 2001/09/23 16:11:26 brianp Exp $ | ||||
| # $Id: Makefile.X11,v 1.58.2.2 2001/12/14 16:33:06 kschultz Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  4.0 | ||||
| # Version:  4.0.1 | ||||
| # Copyright (C) 1995-2001  Brian Paul | ||||
|  | ||||
| # Makefile for core library | ||||
| @@ -200,69 +200,6 @@ OSMESA_OBJECTS = OSmesa/osmesa.o | ||||
| 	$(CC) -c -I. $(CFLAGS) $< -o $@ | ||||
|  | ||||
|  | ||||
| # UGH! These rules shouldn't be needed but IRIX's make (and others?) needs them | ||||
| X/glxapi.o: X/glxapi.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/fakeglx.o: X/fakeglx.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xfonts.o: X/xfonts.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xm_api.o: X/xm_api.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xm_dd.o: X/xm_dd.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xm_span.o: X/xm_span.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xm_line.o: X/xm_line.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xm_tri.o: X/xm_tri.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| SVGA/svgamesa.o: SVGA/svgamesa.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| SVGA/svgamesa8.o: SVGA/svgamesa8.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| SVGA/svgamesa15.o: SVGA/svgamesa15.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| SVGA/svgamesa16.o: SVGA/svgamesa16.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| SVGA/svgamesa24.o: SVGA/svgamesa24.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| SVGA/svgamesa32.o: SVGA/svgamesa32.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| OSmesa/osmesa.o: OSmesa/osmesa.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| FX/fxapi.o: FX/fxapi.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxclip.o: FX/fxclip.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxdd.o: FX/fxdd.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxddspan.o: FX/fxddspan.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxddtex.o: FX/fxddtex.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxfastpath.o: FX/fxfastpath.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxpipeline.o: FX/fxpipeline.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxrender.o: FX/fxrender.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxsanity.o: FX/fxsanity.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxsetup.o: FX/fxsetup.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxtrifuncs.o: FX/fxtrifuncs.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxtexman.o: FX/fxtexman.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxvsetup.o: FX/fxvsetup.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxglidew.o: FX/fxglidew.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| FX/X86/fx_3dnow_fastpath.o: FX/X86/fx_3dnow_fastpath.S | ||||
|  | ||||
| X86/x86.o: X86/x86.c | ||||
| @@ -279,26 +216,9 @@ X86/matypes.h: mtypes.h tnl/t_context.h X86/gen_matypes.c | ||||
| 	./X86/gen_matypes > X86/matypes.h | ||||
| 	rm -f X86/gen_matypes X86/*.o | ||||
|  | ||||
| $(ASM_SOURCES): X86/matypes.h | ||||
|  | ||||
| GGI/ggimesa.o: GGI/ggimesa.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| Trace/tr_2string.o: Trace/tr_2string.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_attrib.o: Trace/tr_attrib.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_context.o: Trace/tr_context.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_control.o: Trace/tr_control.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_error.o: Trace/tr_error.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_print.o: Trace/tr_print.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_wrapper.o: Trace/tr_wrapper.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| # We have X86/matypes.h depend on X86/matypes.h so that if ASM_SOURCES | ||||
| # is empty we don't get an invalid Makefile. | ||||
| $(ASM_SOURCES) X86/matypes.h: X86/matypes.h | ||||
|  | ||||
|  | ||||
| ##### TARGETS ##### | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: t_dd_dmatmp.h,v 1.10 2001/04/09 15:41:11 alanh Exp $ */ | ||||
| /* $Id: t_dd_dmatmp.h,v 1.10.2.2 2001/12/11 15:12:57 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -49,6 +49,7 @@ | ||||
| #define ELTS_VARS | ||||
| #define ALLOC_ELTS( nr ) | ||||
| #define EMIT_ELT( offset, elt ) | ||||
| #define EMIT_TWO_ELTS( offset, elt0, elt1 ) | ||||
| #define INCR_ELTS( nr ) | ||||
| #define ELT_INIT(prim) | ||||
| #define GET_CURRENT_VB_MAX_ELTS() 0 | ||||
| @@ -310,7 +311,7 @@ static void TAG(render_tri_strip_verts)( GLcontext *ctx, | ||||
| 	 currentsz = dmasz; | ||||
|       } | ||||
|  | ||||
|       if (flags & PRIM_PARITY) { | ||||
|       if ((flags & PRIM_PARITY) && count - start > 2) { | ||||
| 	 if (HAVE_TRI_STRIP_1 && 0) { | ||||
| 	 } else { | ||||
| 	    EMIT_VERTS( ctx, start, 1 ); | ||||
| @@ -433,11 +434,6 @@ static void TAG(render_quad_strip_verts)( GLcontext *ctx, | ||||
| 	 currentsz = dmasz; | ||||
|       } | ||||
|  | ||||
|       if (flags & PRIM_PARITY) { | ||||
| 	    EMIT_VERTS( ctx, start, 1 ); | ||||
| 	    currentsz--; | ||||
|       } | ||||
|  | ||||
|       dmasz -= (dmasz & 2); | ||||
|       currentsz -= (currentsz & 2); | ||||
|  | ||||
| @@ -485,7 +481,7 @@ static void TAG(render_quad_strip_verts)( GLcontext *ctx, | ||||
| 	       NEW_PRIMITIVE(); | ||||
| 	       ALLOC_ELTS_NEW_PRIMITIVE( quads*6 ); | ||||
|  | ||||
| 	       for ( i = 0 ; i < quads*2 ; i+=2 ) { | ||||
| 	       for ( i = j-start ; i < j-start+quads*2 ; i+=2 ) { | ||||
| 		  EMIT_TWO_ELTS( 0, (i+0), (i+1) ); | ||||
| 		  EMIT_TWO_ELTS( 2, (i+2), (i+1) ); | ||||
| 		  EMIT_TWO_ELTS( 4, (i+3), (i+2) ); | ||||
| @@ -606,7 +602,7 @@ static void TAG(render_quads_verts)( GLcontext *ctx, | ||||
| 	    NEW_PRIMITIVE(); | ||||
| 	    ALLOC_ELTS_NEW_PRIMITIVE( quads*6 ); | ||||
|  | ||||
| 	    for ( i = 0 ; i < quads*4 ; i+=4 ) { | ||||
| 	    for ( i = j-start ; i < j-start+quads*4 ; i+=4 ) { | ||||
| 	       EMIT_TWO_ELTS( 0, (i+0), (i+1) ); | ||||
| 	       EMIT_TWO_ELTS( 2, (i+3), (i+1) ); | ||||
| 	       EMIT_TWO_ELTS( 4, (i+2), (i+3) ); | ||||
| @@ -866,7 +862,7 @@ static void TAG(render_tri_strip_elts)( GLcontext *ctx, | ||||
| 	 currentsz = dmasz; | ||||
|       } | ||||
|  | ||||
|       if (flags & PRIM_PARITY) { | ||||
|       if ((flags & PRIM_PARITY) && count - start > 2) { | ||||
| 	 TAG(emit_elts)( ctx, elts+start, 1 ); | ||||
|       } | ||||
|  | ||||
| @@ -1001,7 +997,7 @@ static void TAG(render_quad_strip_elts)( GLcontext *ctx, | ||||
| 	       NEW_PRIMITIVE(); | ||||
| 	       ALLOC_ELTS_NEW_PRIMITIVE( quads*6 ); | ||||
|  | ||||
| 	       for ( i = 0 ; i < quads ; i++, elts += 2 ) { | ||||
| 	       for ( i = j-start ; i < j-start+quads ; i++, elts += 2 ) { | ||||
| 		  EMIT_TWO_ELTS( 0, elts[0], elts[1] ); | ||||
| 		  EMIT_TWO_ELTS( 2, elts[2], elts[1] ); | ||||
| 		  EMIT_TWO_ELTS( 4, elts[3], elts[2] ); | ||||
| @@ -1069,7 +1065,7 @@ static void TAG(render_quads_elts)( GLcontext *ctx, | ||||
| 	    NEW_PRIMITIVE(); | ||||
| 	    ALLOC_ELTS_NEW_PRIMITIVE( quads * 6 ); | ||||
|  | ||||
| 	    for ( i = 0 ; i < quads ; i++, elts += 4 ) { | ||||
| 	    for ( i = j-start ; i < j-start+quads ; i++, elts += 4 ) { | ||||
| 	       EMIT_TWO_ELTS( 0, elts[0], elts[1] ); | ||||
| 	       EMIT_TWO_ELTS( 2, elts[3], elts[1] ); | ||||
| 	       EMIT_TWO_ELTS( 4, elts[2], elts[3] ); | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: t_dd_vb.c,v 1.15 2001/05/14 09:00:52 keithw Exp $ */ | ||||
| /* $Id: t_dd_vb.c,v 1.15.2.1 2001/12/13 10:57:41 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -277,7 +277,7 @@ IMPORT_QUALIFIER void TAG(import_float_spec_colors)( GLcontext *ctx ) | ||||
| #define INTERP_QUALIFIER static | ||||
| #endif | ||||
|  | ||||
| #define GET_COLOR(ptr, idx) (((GLfloat (*)[4])((ptr)->Ptr))[idx]) | ||||
| #define GET_COLOR(ptr, idx) (((GLchan (*)[4])((ptr)->Ptr))[idx]) | ||||
|  | ||||
|  | ||||
| INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx, | ||||
| @@ -289,16 +289,16 @@ INTERP_QUALIFIER void TAG(interp_extras)( GLcontext *ctx, | ||||
|    struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; | ||||
|  | ||||
|    if (VB->ColorPtr[1]) { | ||||
|       INTERP_4F( t, | ||||
| 		 GET_COLOR(VB->ColorPtr[1], dst), | ||||
| 		 GET_COLOR(VB->ColorPtr[1], out), | ||||
| 		 GET_COLOR(VB->ColorPtr[1], in) ); | ||||
|       INTERP_4CHAN( t, | ||||
| 		    GET_COLOR(VB->ColorPtr[1], dst), | ||||
| 		    GET_COLOR(VB->ColorPtr[1], out), | ||||
| 		    GET_COLOR(VB->ColorPtr[1], in) ); | ||||
|  | ||||
|       if (VB->SecondaryColorPtr[1]) { | ||||
| 	 INTERP_3F( t, | ||||
| 		    GET_COLOR(VB->SecondaryColorPtr[1], dst), | ||||
| 		    GET_COLOR(VB->SecondaryColorPtr[1], out), | ||||
| 		    GET_COLOR(VB->SecondaryColorPtr[1], in) ); | ||||
| 	 INTERP_3CHAN( t, | ||||
| 		       GET_COLOR(VB->SecondaryColorPtr[1], dst), | ||||
| 		       GET_COLOR(VB->SecondaryColorPtr[1], out), | ||||
| 		       GET_COLOR(VB->SecondaryColorPtr[1], in) ); | ||||
|       } | ||||
|    } | ||||
|  | ||||
| @@ -316,12 +316,12 @@ INTERP_QUALIFIER void TAG(copy_pv_extras)( GLcontext *ctx, | ||||
|       struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; | ||||
|  | ||||
|    if (VB->ColorPtr[1]) { | ||||
|       COPY_4FV( GET_COLOR(VB->ColorPtr[1], dst),  | ||||
| 		GET_COLOR(VB->ColorPtr[1], src) ); | ||||
|       COPY_CHAN4( GET_COLOR(VB->ColorPtr[1], dst),  | ||||
| 		  GET_COLOR(VB->ColorPtr[1], src) ); | ||||
|  | ||||
|       if (VB->SecondaryColorPtr[1]) { | ||||
| 	 COPY_4FV( GET_COLOR(VB->SecondaryColorPtr[1], dst),  | ||||
| 		   GET_COLOR(VB->SecondaryColorPtr[1], src) ); | ||||
| 	 COPY_CHAN4( GET_COLOR(VB->SecondaryColorPtr[1], dst),  | ||||
| 		     GET_COLOR(VB->SecondaryColorPtr[1], src) ); | ||||
|       } | ||||
|    } | ||||
|  | ||||
|   | ||||
| @@ -295,7 +295,7 @@ void GGIread_rgba_pixels(const GLcontext *ctx, | ||||
| int GGIsetup_driver(GGIMesaContext ggictx, struct ggi_mesa_info *info) | ||||
| { | ||||
| 	GLcontext *ctx = ggictx->gl_ctx; | ||||
|  | ||||
| #if 0 | ||||
| 	ctx->Driver.WriteRGBASpan	= GGIwrite_rgba_span; | ||||
| 	ctx->Driver.WriteRGBSpan	= GGIwrite_rgb_span; | ||||
| //	ctx->Driver.WriteMonoRGBASpan	= GGIwrite_mono_span; | ||||
| @@ -312,7 +312,7 @@ int GGIsetup_driver(GGIMesaContext ggictx, struct ggi_mesa_info *info) | ||||
| 	ctx->Driver.ReadRGBASpan = GGIread_rgba_span; | ||||
| 	ctx->Driver.ReadCI32Pixels = GGIread_ci32_pixels; | ||||
| 	ctx->Driver.ReadRGBAPixels = GGIread_rgba_pixels; | ||||
|  | ||||
| #endif | ||||
| 	info->red_bits = R; | ||||
| 	info->green_bits =G; | ||||
| 	info->blue_bits = B; | ||||
|   | ||||
| @@ -33,6 +33,7 @@ | ||||
| #include "swrast/s_context.h" | ||||
| #include "swrast/s_depth.h" | ||||
| #include "swrast/s_triangle.h" | ||||
| #include "swrast/s_trispan.h" | ||||
|  | ||||
| /**********************************************************************/ | ||||
| /*****            Write spans of pixels                           *****/ | ||||
| @@ -303,7 +304,7 @@ static swrast_tri_func ggimesa_stubs_get_triangle_func(GLcontext *ctx); | ||||
| int GGIsetup_driver(GGIMesaContext ggictx, struct ggi_mesa_info *info) | ||||
| { | ||||
| 	GLcontext *ctx = ggictx->gl_ctx; | ||||
|  | ||||
| #if 0 | ||||
| 	ctx->Driver.WriteRGBASpan	= GGIwrite_rgba_span; | ||||
| 	ctx->Driver.WriteRGBSpan	= GGIwrite_rgb_span; | ||||
| 	ctx->Driver.WriteRGBAPixels     = GGIwrite_rgba_pixels; | ||||
| @@ -316,13 +317,15 @@ int GGIsetup_driver(GGIMesaContext ggictx, struct ggi_mesa_info *info) | ||||
| 	ctx->Driver.ReadRGBASpan	= GGIread_rgba_span; | ||||
| 	ctx->Driver.ReadCI32Pixels	= GGIread_ci32_pixels; | ||||
| 	ctx->Driver.ReadRGBAPixels	= GGIread_rgba_pixels; | ||||
| 	 | ||||
| #endif | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| void GGIupdate_state(GLcontext *ctx) | ||||
| { | ||||
| #if 0 | ||||
| 	ctx->Driver.TriangleFunc = _swsetup_Triangle; | ||||
| #endif | ||||
| } | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -224,6 +224,7 @@ static void gl_ggiSetupPointers(GLcontext *ctx) | ||||
| 	ctx->Driver.ColorMask = gl_ggiColorMask; | ||||
| 	ctx->Driver.Enable = gl_ggiEnable; | ||||
| 	 | ||||
| #if 0 | ||||
| 	ctx->Driver.SetDrawBuffer = gl_ggiSetDrawBuffer; | ||||
| 	ctx->Driver.SetReadBuffer = gl_ggiSetReadBuffer; | ||||
| 	 | ||||
| @@ -239,7 +240,7 @@ static void gl_ggiSetupPointers(GLcontext *ctx) | ||||
| 	ctx->Driver.LineFunc = _swsetup_Line; | ||||
| 	ctx->Driver.TriangleFunc = _swsetup_Triangle; | ||||
| 	ctx->Driver.QuadFunc = _swsetup_Quad; | ||||
| 	 | ||||
| #endif | ||||
| } | ||||
|  | ||||
| static int gl_ggiInitInfo(GGIMesaContext ctx, struct ggi_mesa_info *info) | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: fxddtex.c,v 1.45 2001/09/23 16:50:01 brianp Exp $ */ | ||||
| /* $Id: fxddtex.c,v 1.45.2.1 2001/11/06 16:00:58 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -327,7 +327,7 @@ fxDDTexDel(GLcontext * ctx, struct gl_texture_object *tObj) | ||||
|    tfxTexInfo *ti = fxTMGetTexInfo(tObj); | ||||
|  | ||||
|    if (MESA_VERBOSE & VERBOSE_DRIVER) { | ||||
|       fprintf(stderr, "fxmesa: fxDDTexDel(%d,%p)\n", tObj->Name, ti); | ||||
|       fprintf(stderr, "fxmesa: fxDDTexDel(%d,%p)\n", tObj->Name, (void *) ti); | ||||
|    } | ||||
|  | ||||
|    if (!ti) | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: fxtris.c,v 1.17 2001/09/23 16:50:01 brianp Exp $ */ | ||||
| /* $Id: fxtris.c,v 1.17.2.1 2001/11/06 16:00:58 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -214,7 +214,7 @@ fx_fallback_point( fxMesaContext fxMesa, | ||||
|  | ||||
| static void fx_print_vertex( GLcontext *ctx, const GrVertex *v ) | ||||
| { | ||||
|    fprintf(stderr, "vertex at %p\n", v); | ||||
|    fprintf(stderr, "vertex at %p\n", (void *) v); | ||||
|  | ||||
|    fprintf(stderr, "x %f y %f z %f oow %f\n",  | ||||
| 	   v->x, v->y, v->ooz, v->oow); | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| DESCRIPTION 'Mesa OSMesa lib for Win32' | ||||
| VERSION 3.5 | ||||
| VERSION 4.0 | ||||
|  | ||||
| EXPORTS | ||||
| 	OSMesaCreateContext | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: wmesa.c,v 1.22 2001/10/05 15:47:28 kschultz Exp $ */ | ||||
| /* $Id: wmesa.c,v 1.22.2.1 2001/11/01 22:52:18 kschultz Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Windows (Win32) device driver for Mesa 3.4 | ||||
| @@ -19,7 +19,11 @@ | ||||
|  * Updated for Mesa 4.0 by Karl Schultz (kschultz@sourceforge.net) | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifdef NDEBUG | ||||
| #pragma auto_inline(on) | ||||
| #pragma inline_depth(255) | ||||
| #pragma inline_recursion(on) | ||||
| #endif | ||||
|  | ||||
| #include "wmesadef.h" | ||||
| #include <GL/wmesa.h> | ||||
| @@ -53,7 +57,9 @@ | ||||
|  | ||||
| /* Dither not tested for Mesa 4.0 */  | ||||
| #ifdef DITHER | ||||
| #ifdef USE_WING | ||||
| #include <wing.h> | ||||
| #endif // USE_WING | ||||
| #endif | ||||
|  | ||||
| #ifdef __CYGWIN32__ | ||||
| @@ -72,8 +78,15 @@ | ||||
| #include "parallel.h" | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* File global varaibles */ | ||||
| struct DISPLAY_OPTIONS displayOptions; | ||||
| struct DISPLAY_OPTIONS displayOptions =  | ||||
| { | ||||
| 	0,		// stereo | ||||
| 	0,		// fullScreen | ||||
| 	0,		// full screen mode (1,2,3,4) | ||||
| 	0		// bpp (8,16,24,32) | ||||
| }; | ||||
| GLenum stereoCompile = GL_FALSE ; | ||||
| GLenum stereoShowing  = GL_FALSE ; | ||||
| GLenum stereoBuffer = GL_FALSE; | ||||
| @@ -85,6 +98,17 @@ GLint stereo_flag = 0 ; | ||||
| static PWMC Current = NULL; | ||||
| WMesaContext WC = NULL; | ||||
|  | ||||
| #ifdef COMPILE_SETPIXEL | ||||
|  | ||||
| __forceinline void wmSetPixel(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b) | ||||
| { | ||||
| 	pwc->wmSetPixel(pwc,iScanLine,iPixel,r,g,b); | ||||
| } | ||||
|  | ||||
| void ChooseSetPixel(PWMC pwc); | ||||
|  | ||||
| #endif // COMPILE_SETPIXEL | ||||
|  | ||||
| /* If we are double-buffering, we want to get the DC for the | ||||
|  * off-screen DIB, otherwise the DC for the window. | ||||
|  */ | ||||
| @@ -112,13 +136,18 @@ GLubyte pixelDithered; | ||||
|     pixelDithered = aWinGHalftoneTranslation[paletteindex];          \ | ||||
| } | ||||
|  | ||||
|  | ||||
| #ifdef DDRAW | ||||
| static BOOL DDInit( WMesaContext wc, HWND hwnd); | ||||
| static void DDFree( WMesaContext wc); | ||||
| static HRESULT DDRestoreAll( WMesaContext wc ); | ||||
| static void DDDeleteOffScreen(WMesaContext wc); | ||||
| static BOOL DDCreateOffScreen(WMesaContext wc); | ||||
|  | ||||
| // define this to use the GDI Rectangle call to | ||||
| // clear the back buffer. Otherwise will manually | ||||
| // set the pixels. On an NVidia GEForce 2MX under Windows XP | ||||
| // and DirectX 8 , defining this makes apps run much much faster | ||||
| #define USE_GDI_TO_CLEAR 1 | ||||
| #endif | ||||
|  | ||||
| static void FlushToFile(PWMC pwc, PSTR  szFile); | ||||
| @@ -208,8 +237,10 @@ BOOL wmDeleteBackingStore(PWMC pwc) | ||||
|   SelectObject(pwc->dib.hDC, pwc->hOldBitmap); | ||||
|   DeleteDC(pwc->dib.hDC); | ||||
|   DeleteObject(pwc->hbmDIB); | ||||
| #ifdef USE_MAPPED_FILE | ||||
|   UnmapViewOfFile(pwc->dib.base); | ||||
|   CloseHandle(pwc->dib.hFileMap); | ||||
| #endif | ||||
|   return TRUE; | ||||
| } | ||||
|  | ||||
| @@ -254,7 +285,8 @@ BOOL wmCreateBackingStore(PWMC pwc, long lxSize, long lySize) | ||||
|   return TRUE; | ||||
| } | ||||
|  | ||||
|  | ||||
| #if 0 | ||||
| // D.R.S. 10/30/01 - this function is never referenced | ||||
| /* | ||||
|  * This function copies one scan line in a DIB section to another | ||||
|  */ | ||||
| @@ -282,8 +314,9 @@ BOOL wmSetDIBits(PWMC pwc, UINT uiScanWidth, UINT uiNumScans, | ||||
|   } | ||||
|   return TRUE; | ||||
| } | ||||
| #endif // 0 | ||||
|  | ||||
|  | ||||
| #if defined(FAST_RASTERIZERS) | ||||
|  | ||||
| #define PIXELADDR(X,Y)  \ | ||||
|   ((GLubyte *)Current->pbPixels + (Current->height-Y-1)* \ | ||||
| @@ -295,6 +328,7 @@ BOOL wmSetDIBits(PWMC pwc, UINT uiScanWidth, UINT uiNumScans, | ||||
| #define PIXELADDR4( X, Y )  \ | ||||
| ((GLubyte *)wmesa->pbPixels + (wmesa->height-Y-1)* wmesa->ScanWidth + (X)*4) | ||||
|  | ||||
| #endif // 0 | ||||
|  | ||||
| BYTE DITHER_RGB_2_8BIT( int r, int g, int b, int x, int y); | ||||
|  | ||||
| @@ -351,13 +385,6 @@ static void clear_color( GLcontext* ctx, const GLchan color[4] ) | ||||
| static clear(GLcontext* ctx, GLbitfield mask, | ||||
| 	     GLboolean all, GLint x, GLint y, GLint width, GLint height) | ||||
| { | ||||
|   DWORD   dwColor; | ||||
|   WORD    wColor; | ||||
|   BYTE    bColor; | ||||
|   LPDWORD lpdw = (LPDWORD)Current->pbPixels; | ||||
|   LPWORD  lpw = (LPWORD)Current->pbPixels; | ||||
|   LPBYTE  lpb = Current->pbPixels; | ||||
|   int     lines; | ||||
|   const   GLuint *colorMask = (GLuint *) &ctx->Color.ColorMask; | ||||
|    | ||||
|   if (all){ | ||||
| @@ -372,6 +399,50 @@ static clear(GLcontext* ctx, GLbitfield mask, | ||||
|    | ||||
|   if (*colorMask == 0xffffffff && ctx->Color.IndexMask == 0xffffffff) { | ||||
|       if (mask & DD_BACK_LEFT_BIT) { | ||||
| #if defined(USE_GDI_TO_CLEAR) | ||||
| #if defined(DDRAW) | ||||
| 	// D.R.S. 10/29/01 on my system (Pentium 4 with nvidia GeForce2 MX card,  | ||||
| 	// this is almose 100 times faster that the code below | ||||
| 	HDC DC=NULL; | ||||
| 	HPEN Pen=CreatePen(PS_SOLID,1,Current->clearpixel); | ||||
| 	HBRUSH Brush=CreateSolidBrush(Current->clearpixel); | ||||
| 	HPEN Old_Pen=NULL; | ||||
| 	HBRUSH Old_Brush=NULL; | ||||
| 	Current->lpDDSOffScreen->lpVtbl->Unlock(Current->lpDDSOffScreen,NULL); | ||||
| 	Current->lpDDSOffScreen->lpVtbl->GetDC(Current->lpDDSOffScreen,&DC); | ||||
| 	Old_Pen=SelectObject(DC,Pen); | ||||
| 	Old_Brush=SelectObject(DC,Brush); | ||||
| 	Rectangle(DC,x,y,x+width,y+height); | ||||
| 	SelectObject(DC,Old_Pen); | ||||
| 	SelectObject(DC,Old_Brush); | ||||
| 	DeleteObject(Pen); | ||||
| 	DeleteObject(Brush); | ||||
| 	Current->lpDDSOffScreen->lpVtbl->ReleaseDC(Current->lpDDSOffScreen,DC); | ||||
| 	while (Current->lpDDSOffScreen->lpVtbl->Lock(Current->lpDDSOffScreen,NULL, &(Current->ddsd), 0, NULL) == DDERR_WASSTILLDRAWING); | ||||
| 	  mask &= ~DD_BACK_LEFT_BIT; | ||||
| #else | ||||
| 	  /* single-buffer */ | ||||
| 	  HDC DC=DD_GETDC; | ||||
| 	  HPEN Pen=CreatePen(PS_SOLID,1,Current->clearpixel); | ||||
| 	  HBRUSH Brush=CreateSolidBrush(Current->clearpixel); | ||||
| 	  HPEN Old_Pen=SelectObject(DC,Pen); | ||||
| 	  HBRUSH Old_Brush=SelectObject(DC,Brush); | ||||
| 	  Rectangle(DC,x+Current->rectSurface.left,Current->rectSurface.top+y,x+width+Current->rectSurface.left,y+height+Current->rectSurface.top); | ||||
| 	  SelectObject(DC,Old_Pen); | ||||
| 	  SelectObject(DC,Old_Brush); | ||||
| 	  DeleteObject(Pen); | ||||
| 	  DeleteObject(Brush); | ||||
| 	  DD_RELEASEDC; | ||||
| 	  mask &= ~DD_BACK_LEFT_BIT; | ||||
| #endif // DDRAW | ||||
| #else | ||||
| 	  DWORD   dwColor; | ||||
| 	  WORD    wColor; | ||||
| 	  BYTE    bColor; | ||||
| 	  LPDWORD lpdw = (LPDWORD)Current->pbPixels; | ||||
| 	  LPWORD  lpw = (LPWORD)Current->pbPixels; | ||||
| 	  LPBYTE  lpb = Current->pbPixels; | ||||
| 	  int     lines; | ||||
| 	  /* Double-buffering - clear back buffer */ | ||||
| 	  UINT    nBypp = Current->cColorBits / 8; | ||||
| 	  int     i = 0; | ||||
| @@ -434,6 +505,7 @@ static clear(GLcontext* ctx, GLbitfield mask, | ||||
| 	  } | ||||
| 	  while (i<lines-1); | ||||
| 	  mask &= ~DD_BACK_LEFT_BIT; | ||||
| #endif // defined(USE_GDI_TO_CLEAR) | ||||
|       } /* double-buffer */ | ||||
|        | ||||
|       if (mask & DD_FRONT_LEFT_BIT) { | ||||
| @@ -443,7 +515,7 @@ static clear(GLcontext* ctx, GLbitfield mask, | ||||
| 	  HBRUSH Brush=CreateSolidBrush(Current->clearpixel); | ||||
| 	  HPEN Old_Pen=SelectObject(DC,Pen); | ||||
| 	  HBRUSH Old_Brush=SelectObject(DC,Brush); | ||||
| 	  Rectangle(DC,x,y,x+width,y+height); | ||||
| 	  Rectangle(DC,x+Current->rectSurface.left,Current->rectSurface.top+y,x+width+Current->rectSurface.left,y+height+Current->rectSurface.top); | ||||
| 	  SelectObject(DC,Old_Pen); | ||||
| 	  SelectObject(DC,Old_Brush); | ||||
| 	  DeleteObject(Pen); | ||||
| @@ -733,23 +805,25 @@ static void write_mono_rgba_span( const GLcontext* ctx, | ||||
|                                   GLuint n, GLint x, GLint y, | ||||
|                                   const GLchan color[4], const GLubyte mask[]) | ||||
| { | ||||
|   ULONG pixel =  RGB( color[RCOMP], color[GCOMP], color[BCOMP] ); | ||||
|   GLuint i; | ||||
|   HDC DC=DD_GETDC; | ||||
|   PWMC pwc = Current; | ||||
|   assert(Current->rgb_flag==GL_TRUE); | ||||
|   y=FLIP(y); | ||||
|   if(Current->rgb_flag==GL_TRUE){ | ||||
|   if(Current->rgb_flag==GL_TRUE) | ||||
|   { | ||||
| 	for (i=0; i<n; i++) | ||||
| 		if (mask[i]) | ||||
| 			wmSetPixel(pwc,y,x+i,color[RCOMP], color[GCOMP], color[BCOMP]); | ||||
|   } | ||||
|   else | ||||
|   { | ||||
| 	HDC DC=DD_GETDC; | ||||
|     ULONG pixel =  RGB( color[RCOMP], color[GCOMP], color[BCOMP] ); | ||||
|     for (i=0; i<n; i++) | ||||
|       if (mask[i]) | ||||
| 	wmSetPixel(pwc,y,x+i,color[RCOMP], color[GCOMP], color[BCOMP]); | ||||
| 		SetPixel(DC, y, x+i, pixel); | ||||
| 	  DD_RELEASEDC; | ||||
|   } | ||||
|   else { | ||||
|     for (i=0; i<n; i++) | ||||
|       if (mask[i]) | ||||
| 	SetPixel(DC, y, x+i, pixel); | ||||
|   } | ||||
|   DD_RELEASEDC; | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -932,18 +1006,11 @@ static const GLubyte *get_string(GLcontext *ctx, GLenum name) | ||||
|   } | ||||
| } | ||||
|  | ||||
| static void wmesa_update_state( GLcontext *ctx, GLuint new_state ) | ||||
| static void wmesa_update_state( GLcontext *ctx, GLuint new_state ); | ||||
|  | ||||
| static void SetFunctionPointers(GLcontext *ctx) | ||||
| { | ||||
|   struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference( ctx ); | ||||
|   TNLcontext *tnl = TNL_CONTEXT(ctx); | ||||
|    | ||||
|   /* | ||||
|    * XXX these function pointers could be initialized just once during | ||||
|    * context creation since they don't depend on any state changes. | ||||
|    * kws - This is true - this function gets called a lot and it | ||||
|    * would be good to minimize setting all this when not needed. | ||||
|    */ | ||||
|    | ||||
|   ctx->Driver.GetString = get_string; | ||||
|   ctx->Driver.UpdateState = wmesa_update_state; | ||||
|   ctx->Driver.SetDrawBuffer = set_draw_buffer; | ||||
| @@ -1006,8 +1073,87 @@ static void wmesa_update_state( GLcontext *ctx, GLuint new_state ) | ||||
|   swdd->ReadRGBASpan        = read_rgba_span; | ||||
|   swdd->ReadCI32Pixels      = read_ci32_pixels; | ||||
|   swdd->ReadRGBAPixels      = read_rgba_pixels; | ||||
|   | ||||
| } | ||||
|  | ||||
| static void wmesa_update_state( GLcontext *ctx, GLuint new_state ) | ||||
| { | ||||
|   struct swrast_device_driver *swdd = _swrast_GetDeviceDriverReference( ctx ); | ||||
|   TNLcontext *tnl = TNL_CONTEXT(ctx); | ||||
|    | ||||
|   /* | ||||
|    * XXX these function pointers could be initialized just once during | ||||
|    * context creation since they don't depend on any state changes. | ||||
|    * kws - This is true - this function gets called a lot and it | ||||
|    * would be good to minimize setting all this when not needed. | ||||
|    */ | ||||
| #ifndef SET_FPOINTERS_ONCE   | ||||
|   SetFunctionPointers(ctx); | ||||
| #if 0 | ||||
|   ctx->Driver.GetString = get_string; | ||||
|   ctx->Driver.UpdateState = wmesa_update_state; | ||||
|   ctx->Driver.SetDrawBuffer = set_draw_buffer; | ||||
|   ctx->Driver.ResizeBuffersMESA = _swrast_alloc_buffers; | ||||
|   ctx->Driver.GetBufferSize = buffer_size; | ||||
|    | ||||
|   ctx->Driver.Accum = _swrast_Accum; | ||||
|   ctx->Driver.Bitmap = _swrast_Bitmap; | ||||
|   ctx->Driver.Clear = clear; | ||||
|    | ||||
|   ctx->Driver.Flush = flush; | ||||
|   ctx->Driver.ClearIndex = clear_index; | ||||
|   ctx->Driver.ClearColor = clear_color; | ||||
|   ctx->Driver.Enable = enable; | ||||
|    | ||||
|   ctx->Driver.CopyPixels = _swrast_CopyPixels; | ||||
|   ctx->Driver.DrawPixels = _swrast_DrawPixels; | ||||
|   ctx->Driver.ReadPixels = _swrast_ReadPixels; | ||||
|    | ||||
|   ctx->Driver.ChooseTextureFormat = _mesa_choose_tex_format; | ||||
|   ctx->Driver.TexImage1D = _mesa_store_teximage1d; | ||||
|   ctx->Driver.TexImage2D = _mesa_store_teximage2d; | ||||
|   ctx->Driver.TexImage3D = _mesa_store_teximage3d; | ||||
|   ctx->Driver.TexSubImage1D = _mesa_store_texsubimage1d; | ||||
|   ctx->Driver.TexSubImage2D = _mesa_store_texsubimage2d; | ||||
|   ctx->Driver.TexSubImage3D = _mesa_store_texsubimage3d; | ||||
|   ctx->Driver.TestProxyTexImage = _mesa_test_proxy_teximage; | ||||
|    | ||||
|   ctx->Driver.CopyTexImage1D = _swrast_copy_teximage1d; | ||||
|   ctx->Driver.CopyTexImage2D = _swrast_copy_teximage2d; | ||||
|   ctx->Driver.CopyTexSubImage1D = _swrast_copy_texsubimage1d; | ||||
|   ctx->Driver.CopyTexSubImage2D = _swrast_copy_texsubimage2d; | ||||
|   ctx->Driver.CopyTexSubImage3D = _swrast_copy_texsubimage3d; | ||||
|   ctx->Driver.CopyColorTable = _swrast_CopyColorTable; | ||||
|   ctx->Driver.CopyColorSubTable = _swrast_CopyColorSubTable; | ||||
|   ctx->Driver.CopyConvolutionFilter1D = _swrast_CopyConvolutionFilter1D; | ||||
|   ctx->Driver.CopyConvolutionFilter2D = _swrast_CopyConvolutionFilter2D; | ||||
|    | ||||
|   ctx->Driver.BaseCompressedTexFormat = _mesa_base_compressed_texformat; | ||||
|   ctx->Driver.CompressedTextureSize = _mesa_compressed_texture_size; | ||||
|   ctx->Driver.GetCompressedTexImage = _mesa_get_compressed_teximage; | ||||
|    | ||||
|    | ||||
|   swdd->SetReadBuffer = set_read_buffer; | ||||
|    | ||||
|    | ||||
|   /* Pixel/span writing functions: */ | ||||
|   swdd->WriteRGBASpan        = write_rgba_span; | ||||
|   swdd->WriteRGBSpan         = write_rgb_span; | ||||
|   swdd->WriteMonoRGBASpan    = write_mono_rgba_span; | ||||
|   swdd->WriteRGBAPixels      = write_rgba_pixels; | ||||
|   swdd->WriteMonoRGBAPixels  = write_mono_rgba_pixels; | ||||
|   swdd->WriteCI32Span        = write_ci32_span; | ||||
|   swdd->WriteCI8Span         = write_ci8_span; | ||||
|   swdd->WriteMonoCISpan      = write_mono_ci_span; | ||||
|   swdd->WriteCI32Pixels      = write_ci32_pixels; | ||||
|   swdd->WriteMonoCIPixels    = write_mono_ci_pixels; | ||||
|    | ||||
|   swdd->ReadCI32Span        = read_ci32_span; | ||||
|   swdd->ReadRGBASpan        = read_rgba_span; | ||||
|   swdd->ReadCI32Pixels      = read_ci32_pixels; | ||||
|   swdd->ReadRGBAPixels      = read_rgba_pixels; | ||||
| #endif // 0   | ||||
| #endif //  !SET_FPOINTERS_ONCE   | ||||
|   tnl->Driver.RunPipeline = _tnl_run_pipeline; | ||||
|    | ||||
|   _swrast_InvalidateState( ctx, new_state ); | ||||
| @@ -1106,7 +1252,11 @@ WMesaContext WMesaCreateContext( HWND hWnd, HPALETTE* Pal, | ||||
| #ifdef DITHER | ||||
|   if ((true_color_flag==GL_FALSE) && (rgb_flag == GL_TRUE)){ | ||||
|     c->dither_flag = GL_TRUE; | ||||
| #ifdef USE_WING | ||||
|     c->hPalHalfTone = WinGCreateHalftonePalette(); | ||||
| #else | ||||
| 	c->hPalHalfTone = CreateHalftonePalette(c->hDC); | ||||
| #endif | ||||
|   } | ||||
|   else | ||||
|     c->dither_flag = GL_FALSE; | ||||
| @@ -1209,14 +1359,19 @@ WMesaContext WMesaCreateContext( HWND hWnd, HPALETTE* Pal, | ||||
|    */ | ||||
|   { | ||||
|     GLcontext *ctx = c->gl_ctx; | ||||
|      | ||||
|     _swrast_CreateContext( ctx ); | ||||
|     _ac_CreateContext( ctx ); | ||||
|     _tnl_CreateContext( ctx ); | ||||
|     _swsetup_CreateContext( ctx ); | ||||
|      | ||||
| #ifdef SET_FPOINTERS_ONCE | ||||
|     SetFunctionPointers(ctx); | ||||
| #endif // SET_FPOINTERS_ONCE | ||||
|     _swsetup_Wakeup( ctx ); | ||||
|   } | ||||
| #ifdef COMPILE_SETPIXEL | ||||
|   ChooseSetPixel(c); | ||||
| #endif | ||||
|   return c; | ||||
| } | ||||
|  | ||||
| @@ -1296,7 +1451,9 @@ void WMesaSwapBuffers( void ) | ||||
|  | ||||
| void WMesaPaletteChange(HPALETTE Pal) | ||||
| { | ||||
| #ifndef DDRAW | ||||
|   int vRet; | ||||
| #endif | ||||
|   LPPALETTEENTRY pPal; | ||||
|   if (Current && (Current->rgb_flag==GL_FALSE ||  | ||||
| 		  Current->dither_flag == GL_TRUE)) | ||||
| @@ -1407,33 +1564,121 @@ void wmCreatePalette( PWMC pwdc ) | ||||
|    | ||||
| } | ||||
|  | ||||
| void wmSetPixel(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b) | ||||
|  | ||||
| void  | ||||
| #ifdef COMPILE_SETPIXEL | ||||
|  | ||||
| wmSetPixelDefault(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b) | ||||
| { | ||||
|   if (Current->db_flag) { | ||||
|     LPBYTE  lpb = pwc->pbPixels; | ||||
|     UINT    nBypp = pwc->cColorBits >> 3; | ||||
|     UINT    nOffset = iPixel % nBypp; | ||||
|      | ||||
|     lpb += pwc->ScanWidth * iScanLine; | ||||
|     lpb += iPixel * nBypp; | ||||
|      | ||||
|     if(nBypp == 1){ | ||||
|       if(pwc->dither_flag) | ||||
| 	*lpb = DITHER_RGB_2_8BIT(r,g,b,iScanLine,iPixel); | ||||
|       else | ||||
| 	*lpb = BGR8(r,g,b); | ||||
|     } | ||||
|     else if(nBypp == 2) | ||||
|       *((LPWORD)lpb) = BGR16(r,g,b); | ||||
|     else if (nBypp == 3) | ||||
|       *((LPDWORD)lpb) = BGR24(r,g,b); | ||||
|     else if (nBypp == 4) | ||||
|       *((LPDWORD)lpb) = BGR32(r,g,b); | ||||
|   } | ||||
|   else{ | ||||
|     SetPixel(Current->hDC, iPixel, iScanLine, RGB(r,g,b)); | ||||
|   } | ||||
| 	if (Current->db_flag) | ||||
| 	{ | ||||
| #ifdef DDRAW | ||||
| 		HDC hdc = NULL; | ||||
| 		Current->lpDDSOffScreen->lpVtbl->Unlock(Current->lpDDSOffScreen,NULL); | ||||
| 		Current->lpDDSOffScreen->lpVtbl->GetDC(Current->lpDDSOffScreen,&hdc); | ||||
| 		SetPixelV(hdc,iPixel, iScanLine, RGB(r,g,b)); | ||||
| 		Current->lpDDSOffScreen->lpVtbl->ReleaseDC(Current->lpDDSOffScreen,hdc); | ||||
| 		while (Current->lpDDSOffScreen->lpVtbl->Lock(Current->lpDDSOffScreen,NULL, &(Current->ddsd), 0, NULL) == DDERR_WASSTILLDRAWING); | ||||
| #else | ||||
| 		SetPixelV(Current->hDC, iPixel, iScanLine, RGB(r,g,b)); | ||||
| #endif | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		SetPixelV(Current->hDC, iPixel+pwc->rectSurface.left, pwc->rectSurface.top+iScanLine, RGB(r,g,b)); | ||||
| 	} | ||||
| } | ||||
| #else | ||||
| wmSetPixel(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b) | ||||
| { | ||||
| 	if (Current->db_flag) | ||||
| 	{ | ||||
| 		LPBYTE  lpb = pwc->pbPixels; | ||||
| 		UINT    nBypp = pwc->cColorBits >> 3; | ||||
|      | ||||
| 		lpb += pwc->ScanWidth * iScanLine; | ||||
| 		lpb += iPixel * nBypp; | ||||
|      | ||||
| 		if(nBypp == 1) | ||||
| 		{ | ||||
| 			if(pwc->dither_flag) | ||||
| 				*lpb = DITHER_RGB_2_8BIT(r,g,b,iScanLine,iPixel); | ||||
| 			else | ||||
| 				*lpb = BGR8(r,g,b); | ||||
| 		} | ||||
| 		else if(nBypp == 2) | ||||
| 			*((LPWORD)lpb) = BGR16(r,g,b); | ||||
| 		else if (nBypp == 3) | ||||
| 			*((LPDWORD)lpb) = BGR24(r,g,b); | ||||
| 		else if (nBypp == 4) | ||||
| 			*((LPDWORD)lpb) = BGR32(r,g,b); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		SetPixel(Current->hDC, iPixel, iScanLine, RGB(r,g,b)); | ||||
| 	} | ||||
| } | ||||
| #endif | ||||
| #ifdef COMPILE_SETPIXEL | ||||
| void wmSetPixel4(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b) | ||||
| { | ||||
| 	LPDWORD lpdw = ((LPDWORD)(pwc->pbPixels + pwc->ScanWidth * iScanLine)) + iPixel; | ||||
| 	*lpdw = BGR32(r,g,b); | ||||
| //	LPBYTE  lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel + iPixel + iPixel + iPixel; | ||||
| //	*((LPDWORD)lpb) = BGR32(r,g,b); | ||||
| } | ||||
|  | ||||
| void wmSetPixel3(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b) | ||||
| { | ||||
| 	LPBYTE  lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel + iPixel + iPixel; | ||||
| 	*((LPDWORD)lpb) = BGR24(r,g,b); | ||||
| } | ||||
|  | ||||
| void wmSetPixel2(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b) | ||||
| { | ||||
| 	LPWORD lpw = ((LPWORD)(pwc->pbPixels + pwc->ScanWidth * iScanLine)) + iPixel; | ||||
| 	*lpw = BGR16(r,g,b); | ||||
| //	LPBYTE  lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel + iPixel; | ||||
| //	*((LPWORD)lpb) = BGR16(r,g,b); | ||||
| } | ||||
|  | ||||
| void wmSetPixel1(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b) | ||||
| { | ||||
| 	LPBYTE  lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel; | ||||
| 	*lpb = BGR8(r,g,b); | ||||
| } | ||||
|  | ||||
| void wmSetPixel1Dither(PWMC pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b) | ||||
| { | ||||
| 	LPBYTE  lpb = pwc->pbPixels + pwc->ScanWidth * iScanLine + iPixel; | ||||
| 	*lpb = DITHER_RGB_2_8BIT(r,g,b,iScanLine,iPixel); | ||||
| } | ||||
|  | ||||
|  | ||||
| void ChooseSetPixel(PWMC pwc) | ||||
| { | ||||
| 	UINT nBypp = (pwc ) ? pwc->cColorBits >> 3 : 0; | ||||
| 	switch(nBypp) | ||||
| 	{ | ||||
| 		case 1: | ||||
| 			pwc->wmSetPixel = pwc->dither_flag ? &wmSetPixel1Dither : &wmSetPixel1; | ||||
| 			break; | ||||
| 		case 2: | ||||
| 			pwc->wmSetPixel = &wmSetPixel2; | ||||
| 			break; | ||||
| 		case 3: | ||||
| 			pwc->wmSetPixel = &wmSetPixel3; | ||||
| 			break; | ||||
| 		case 4: | ||||
| 			pwc->wmSetPixel = &wmSetPixel4; | ||||
| 			break; | ||||
| 		default: | ||||
| 			pwc->wmSetPixel = &wmSetPixelDefault; | ||||
| 			break; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| #endif | ||||
|  | ||||
| void  wmCreateDIBSection( | ||||
|   HDC   hDC, | ||||
| @@ -1455,7 +1700,7 @@ void  wmCreateDIBSection( | ||||
|     pwc->ScanWidth = 2* pwc->pitch; | ||||
|    | ||||
|   dwSize = sizeof(BITMAPINFO) + (dwScanWidth * pwc->height); | ||||
|    | ||||
| #ifdef USE_MAPPED_FILE   | ||||
|   pwc->dib.hFileMap = CreateFileMapping((HANDLE)PAGE_FILE, | ||||
| 					NULL, | ||||
| 					PAGE_READWRITE | SEC_COMMIT, | ||||
| @@ -1476,13 +1721,15 @@ void  wmCreateDIBSection( | ||||
|     CloseHandle(pwc->dib.hFileMap); | ||||
|     return; | ||||
|   } | ||||
|    | ||||
|  | ||||
|  | ||||
|   CopyMemory(pwc->dib.base, pbmi, sizeof(BITMAPINFO)); | ||||
| #endif // USE_MAPPED_FILE | ||||
|    | ||||
|   hic = CreateIC("display", NULL, NULL, NULL); | ||||
|   pwc->dib.hDC = CreateCompatibleDC(hic); | ||||
|    | ||||
| #ifdef USE_MAPPED_FILE   | ||||
|  | ||||
|   pwc->hbmDIB = CreateDIBSection(hic, | ||||
| 				 &(pwc->bmi), | ||||
| @@ -1490,6 +1737,14 @@ void  wmCreateDIBSection( | ||||
| 				 &(pwc->pbPixels), | ||||
| 				 pwc->dib.hFileMap, | ||||
| 				 0); | ||||
| #else | ||||
|   pwc->hbmDIB = CreateDIBSection(hic, | ||||
| 				 &(pwc->bmi), | ||||
| 				 (iUsage ? DIB_PAL_COLORS : DIB_RGB_COLORS), | ||||
| 				 &(pwc->pbPixels), | ||||
| 				 0, | ||||
| 				 0); | ||||
| #endif // USE_MAPPED_FILE | ||||
|   pwc->ScreenMem = pwc->addrOffScreen = pwc->pbPixels; | ||||
|   pwc->hOldBitmap = SelectObject(pwc->dib.hDC, pwc->hbmDIB); | ||||
|    | ||||
| @@ -1514,7 +1769,7 @@ BOOL wmFlush(PWMC pwc) | ||||
| #ifdef DDRAW | ||||
|     if (pwc->lpDDSOffScreen == NULL) | ||||
|       if(DDCreateOffScreen(pwc) == GL_FALSE) | ||||
| 	return; | ||||
| 	return FALSE; | ||||
|      | ||||
|     pwc->lpDDSOffScreen->lpVtbl->Unlock(pwc->lpDDSOffScreen, NULL); | ||||
|      | ||||
| @@ -1565,6 +1820,79 @@ BOOL wmFlush(PWMC pwc) | ||||
|  | ||||
| #if !defined(NO_STEREO) | ||||
|  | ||||
| static void __gluMakeIdentityf(GLfloat m[16]) | ||||
| { | ||||
|     m[0+4*0] = 1; m[0+4*1] = 0; m[0+4*2] = 0; m[0+4*3] = 0; | ||||
|     m[1+4*0] = 0; m[1+4*1] = 1; m[1+4*2] = 0; m[1+4*3] = 0; | ||||
|     m[2+4*0] = 0; m[2+4*1] = 0; m[2+4*2] = 1; m[2+4*3] = 0; | ||||
|     m[3+4*0] = 0; m[3+4*1] = 0; m[3+4*2] = 0; m[3+4*3] = 1; | ||||
| } | ||||
|  | ||||
| static void normalize(float v[3]) | ||||
| { | ||||
|     float r; | ||||
|  | ||||
|     r = sqrt( v[0]*v[0] + v[1]*v[1] + v[2]*v[2] ); | ||||
|     if (r == 0.0) return; | ||||
|  | ||||
|     v[0] /= r; | ||||
|     v[1] /= r; | ||||
|     v[2] /= r; | ||||
| } | ||||
|  | ||||
| static void cross(float v1[3], float v2[3], float result[3]) | ||||
| { | ||||
|     result[0] = v1[1]*v2[2] - v1[2]*v2[1]; | ||||
|     result[1] = v1[2]*v2[0] - v1[0]*v2[2]; | ||||
|     result[2] = v1[0]*v2[1] - v1[1]*v2[0]; | ||||
| } | ||||
|  | ||||
|  | ||||
| static void  | ||||
| __gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, | ||||
| 	  GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, | ||||
| 	  GLdouble upz) | ||||
| { | ||||
|     int i; | ||||
|     float forward[3], side[3], up[3]; | ||||
|     GLfloat m[4][4]; | ||||
|  | ||||
|     forward[0] = centerx - eyex; | ||||
|     forward[1] = centery - eyey; | ||||
|     forward[2] = centerz - eyez; | ||||
|  | ||||
|     up[0] = upx; | ||||
|     up[1] = upy; | ||||
|     up[2] = upz; | ||||
|  | ||||
|     normalize(forward); | ||||
|  | ||||
|     /* Side = forward x up */ | ||||
|     cross(forward, up, side); | ||||
|     normalize(side); | ||||
|  | ||||
|     /* Recompute up as: up = side x forward */ | ||||
|     cross(side, forward, up); | ||||
|  | ||||
|     __gluMakeIdentityf(&m[0][0]); | ||||
|     m[0][0] = side[0]; | ||||
|     m[1][0] = side[1]; | ||||
|     m[2][0] = side[2]; | ||||
|  | ||||
|     m[0][1] = up[0]; | ||||
|     m[1][1] = up[1]; | ||||
|     m[2][1] = up[2]; | ||||
|  | ||||
|     m[0][2] = -forward[0]; | ||||
|     m[1][2] = -forward[1]; | ||||
|     m[2][2] = -forward[2]; | ||||
|  | ||||
|     glMultMatrixf(&m[0][0]); | ||||
|     glTranslated(-eyex, -eyey, -eyez); | ||||
| } | ||||
|  | ||||
| GLfloat viewDistance = 1.0; | ||||
|  | ||||
| void WMesaShowStereo(GLuint list) | ||||
| { | ||||
|    | ||||
| @@ -1585,7 +1913,7 @@ void WMesaShowStereo(GLuint list) | ||||
|    | ||||
|   glGetFloatv(GL_MODELVIEW_MATRIX,cm); | ||||
|   glLoadIdentity(); | ||||
|   gluLookAt(viewDistance/2,0.0,0.0 , | ||||
|   __gluLookAt(viewDistance/2,0.0,0.0 , | ||||
| 	    viewDistance/2,0.0,-1.0, | ||||
| 	    0.0,1.0,0.0 ); | ||||
|   glMultMatrixf( cm ); | ||||
| @@ -1595,7 +1923,7 @@ void WMesaShowStereo(GLuint list) | ||||
|    | ||||
|   glGetFloatv(GL_MODELVIEW_MATRIX,cm); | ||||
|   glLoadIdentity(); | ||||
|   gluLookAt(-viewDistance/2,0.0,0.0 , | ||||
|   __gluLookAt(-viewDistance/2,0.0,0.0 , | ||||
| 	    -viewDistance/2,0.0,-1.0, | ||||
| 	    0.0,1.0,0.0 ); | ||||
|   glMultMatrixf(cm); | ||||
| @@ -1774,7 +2102,7 @@ static void DDFreePrimarySurface(WMesaContext wc) | ||||
| static BOOL DDCreatePrimarySurface(WMesaContext wc) | ||||
| { | ||||
|   HRESULT ddrval; | ||||
|   DDSCAPS             ddscaps; | ||||
| //  DDSCAPS             ddscaps; | ||||
|   wc->ddsd.dwSize = sizeof( wc->ddsd ); | ||||
|   wc->ddsd.dwFlags = DDSD_CAPS; | ||||
|   wc->ddsd.ddsCaps.dwCaps =   DDSCAPS_PRIMARYSURFACE; | ||||
| @@ -1786,7 +2114,7 @@ static BOOL DDCreatePrimarySurface(WMesaContext wc) | ||||
|       return initFail(wc->hwnd , wc); | ||||
|     } | ||||
|   if(wc->db_flag == GL_FALSE) | ||||
|     wc->lpDDSPrimary->lpVtbl->GetDC(wc->lpDDSPrimary, wc->hDC); | ||||
|     wc->lpDDSPrimary->lpVtbl->GetDC(wc->lpDDSPrimary, &(wc->hDC)); | ||||
|   return TRUE; | ||||
| } | ||||
|  | ||||
| @@ -1831,6 +2159,80 @@ static BOOL DDCreateOffScreen(WMesaContext wc) | ||||
|   return TRUE; | ||||
| } | ||||
|  | ||||
| typedef | ||||
| struct tagWMesaContextList | ||||
| { | ||||
| 	WMesaContext wc; | ||||
| 	struct tagWMesaContextList *next; | ||||
| }WMesaContextList; | ||||
|  | ||||
| WMesaContextList *head = 0; | ||||
|  | ||||
| void AddContext(WMesaContext wc) | ||||
| { | ||||
| 	WMesaContextList *lst = (WMesaContextList *)malloc(sizeof(WMesaContextList)); | ||||
| 	lst->wc = wc; | ||||
| 	if( head ) | ||||
| 		lst->next = head; | ||||
| 	head = lst; | ||||
| } | ||||
|  | ||||
| WMesaContext FindContext(HWND hWnd) | ||||
| { | ||||
| 	WMesaContextList *tmp = head; | ||||
| 	while(tmp) | ||||
| 	{ | ||||
| 		if( tmp->wc->hwnd == hWnd ) | ||||
| 			return tmp->wc; | ||||
| 		tmp = tmp->next; | ||||
| 	} | ||||
| 	return NULL; | ||||
| } | ||||
|  | ||||
| void RemoveContext(HWND hWnd) | ||||
| { | ||||
| 	WMesaContextList *tmp = head; | ||||
| 	if(tmp ) | ||||
| 	{ | ||||
| 		if( tmp->wc->hwnd == hWnd ) | ||||
| 		{ | ||||
| 			WMesaContextList *lst = tmp; | ||||
|  | ||||
| 			head = tmp->next; | ||||
| 			free((void *)lst); | ||||
| 		} | ||||
| 		else | ||||
| 			while(tmp->next) | ||||
| 			{ | ||||
| 				if( tmp->next->wc->hwnd == hWnd ) | ||||
| 				{ | ||||
| 					WMesaContextList *lst = tmp->next; | ||||
| 					tmp->next = tmp->next->next; | ||||
| 					free((void *)lst); | ||||
| 				} | ||||
| 				tmp = tmp->next; | ||||
| 			} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| static LRESULT CALLBACK MyWndProc(HWND hwnd,UINT message,WPARAM wParam, LPARAM lParam) | ||||
| { | ||||
| 	WMesaContext wc = Current->hwnd == hwnd ? Current : FindContext(hwnd); | ||||
| 	 if( wc ) | ||||
| 	 { | ||||
| 		LRESULT lret = CallWindowProc((WNDPROC)(wc->oldWndProc),hwnd,message,wParam,lParam); | ||||
| 		if( message = WM_MOVE ) | ||||
| 		{ | ||||
| 			 POINT pt = {0}; | ||||
| 			GetClientRect( wc->hwnd, &(wc->rectSurface) ); | ||||
| 			ClientToScreen( hwnd, &pt ); | ||||
| 			OffsetRect(&(wc->rectSurface), pt.x, pt.y); | ||||
| 		 } | ||||
| 		return lret; | ||||
| 	} | ||||
| 	 return 0L; | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * doInit - do work required for every instance of the application: | ||||
|  *                create the window, initialize data | ||||
| @@ -1838,11 +2240,11 @@ static BOOL DDCreateOffScreen(WMesaContext wc) | ||||
| static BOOL DDInit( WMesaContext wc, HWND hwnd) | ||||
| { | ||||
|   HRESULT             ddrval; | ||||
|   DWORD dwFrequency; | ||||
|    | ||||
|   LPDIRECTDRAW            lpDD;           // DirectDraw object | ||||
|   LPDIRECTDRAW2            lpDD2; | ||||
| //  DWORD dwFrequency; | ||||
|    | ||||
| //  LPDIRECTDRAW            lpDD;           // DirectDraw object | ||||
| //  LPDIRECTDRAW2            lpDD2; | ||||
|   LPDIRECTDRAWCLIPPER pcClipper = NULL; | ||||
|    | ||||
|   wc->fullScreen = displayOptions.fullScreen; | ||||
|   wc->gMode = displayOptions.mode; | ||||
| @@ -1922,11 +2324,38 @@ static BOOL DDInit( WMesaContext wc, HWND hwnd) | ||||
|     return initFail(hwnd, wc); | ||||
|    | ||||
|   if(wc->db_flag) | ||||
|     return DDCreateOffScreen(wc); | ||||
|     DDCreateOffScreen(wc); | ||||
|  | ||||
|     if( FAILED( ddrval = wc->lpDD->lpVtbl->CreateClipper(wc->lpDD, 0, &pcClipper, NULL ) ) ) | ||||
|         return E_FAIL; | ||||
|  | ||||
|     if( FAILED( ddrval = pcClipper->lpVtbl->SetHWnd(pcClipper,  0, wc->hwnd ) ) ) | ||||
|     { | ||||
|         pcClipper->lpVtbl->Release(pcClipper); | ||||
|         return E_FAIL; | ||||
|     } | ||||
|  | ||||
|     if( FAILED( ddrval = wc->lpDDSPrimary->lpVtbl->SetClipper(wc->lpDDSPrimary,  pcClipper ) ) ) | ||||
|     { | ||||
|         pcClipper->lpVtbl->Release(pcClipper); | ||||
|         return E_FAIL; | ||||
|     } | ||||
|  | ||||
|     // Done with clipper | ||||
|     pcClipper->lpVtbl->Release(pcClipper); | ||||
| 	AddContext(wc); | ||||
| 	// Hook the window so we can update the drawing rectangle when the window moves | ||||
| 	wc->oldWndProc = SetWindowLong(wc->hwnd,GWL_WNDPROC,(LONG)MyWndProc); | ||||
|  | ||||
| 	return TRUE; | ||||
|  | ||||
| } /* DDInit */ | ||||
|  | ||||
| static void DDFree( WMesaContext wc) | ||||
| { | ||||
|   RemoveContext(wc->hwnd); | ||||
|   SetWindowLong(wc->hwnd,GWL_WNDPROC,(LONG)(wc->oldWndProc)); | ||||
|   wc->oldWndProc = 0; | ||||
|   if( wc->lpDD != NULL ) | ||||
|     { | ||||
|       DDFreePrimarySurface(wc); | ||||
| @@ -1967,7 +2396,7 @@ void WMesaMove(void) | ||||
|  ************************************************/ | ||||
|  | ||||
|  | ||||
| #if 0 | ||||
| #if defined(FAST_RASTERIZERS) | ||||
|  | ||||
|  | ||||
| /* | ||||
|   | ||||
| @@ -57,10 +57,23 @@ | ||||
| #ifndef DDMESADEF_H | ||||
| #define DDMESADEF_H | ||||
|  | ||||
| // uncomment this to use DirectDraw driver | ||||
| //#define DDRAW 1 | ||||
| // uncomment this to use a pointer to a function for setting the pixels | ||||
| // in the buffer | ||||
| #define COMPILE_SETPIXEL 1 | ||||
| // uncomment this to enable the fast win32 rasterizers ( commented out for MesaGL 4.0 ) | ||||
| // #define FAST_RASTERIZERS 1 | ||||
| // uncomment this to enable setting function pointers once inside of | ||||
| // WMesaCreateContext instead of on every call to wmesa_update_state() | ||||
| #define SET_FPOINTERS_ONCE 1 | ||||
|  | ||||
|  | ||||
| #include <windows.h> | ||||
| #include <GL\gl.h> | ||||
| #include "context.h" | ||||
| #ifdef DDRAW | ||||
| #define DIRECTDRAW_VERSION 0x0100 | ||||
| 	#include <ddraw.h> | ||||
| #endif | ||||
| //#include "profile.h" | ||||
| @@ -79,6 +92,9 @@ typedef struct _dibSection{ | ||||
| 	LPVOID	base; | ||||
| }WMDIBSECTION, *PWMDIBSECTION; | ||||
|  | ||||
| #ifdef COMPILE_SETPIXEL | ||||
| typedef void (*SETPIXELTYPE)(struct wmesa_context *pwc, int iScanLine, int iPixel, BYTE r, BYTE g, BYTE b); | ||||
| #endif | ||||
|  | ||||
| typedef struct wmesa_context{ | ||||
|     GLcontext *gl_ctx;		/* The core GL/Mesa context */ | ||||
| @@ -132,15 +148,19 @@ typedef struct wmesa_context{ | ||||
| 	LPDIRECTDRAWSURFACE     lpDDSOffScreen;	// DirectDraw off screen surface | ||||
| 	LPDIRECTDRAWPALETTE     lpDDPal;        // DirectDraw palette | ||||
| 	BOOL                    bActive;        // is application active? | ||||
| 	DDSURFACEDESC	        ddsd; | ||||
| 	int 					fullScreen; | ||||
| 	int			            gMode ; | ||||
| 	DDSURFACEDESC	        ddsd;			// surface description | ||||
| 	int 					fullScreen;		// fullscreen ? | ||||
| 	int			            gMode ;			// fullscreen mode | ||||
| 	LONG					oldWndProc;		// old Window proc. we need to hook WM_MOVE message to update the drawing rectangle | ||||
| #endif | ||||
| 	RECT					rectOffScreen; | ||||
| 	RECT					rectSurface; | ||||
| 	HWND					hwnd; | ||||
| 	DWORD					pitch; | ||||
| 	PBYTE					addrOffScreen; | ||||
| #ifdef COMPILE_SETPIXEL | ||||
|       SETPIXELTYPE                    wmSetPixel; | ||||
| #endif // COMPILE_SETPIXEL | ||||
| //#ifdef PROFILE | ||||
| //	MESAPROF	profile; | ||||
| //#endif | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: fakeglx.c,v 1.59 2001/10/22 22:45:18 brianp Exp $ */ | ||||
| /* $Id: fakeglx.c,v 1.58.2.1 2001/11/25 18:50:20 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  4.1 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -66,7 +66,7 @@ | ||||
| #define SERVER_MINOR_VERSION 4 | ||||
|  | ||||
| /* This is appended onto the glXGetClient/ServerString version strings. */ | ||||
| #define MESA_GLX_VERSION "Mesa 4.1" | ||||
| #define MESA_GLX_VERSION "Mesa 4.0.1" | ||||
|  | ||||
| /* Who implemented this GLX? */ | ||||
| #define VENDOR "Brian Paul" | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: xm_api.c,v 1.29 2001/09/12 03:32:29 brianp Exp $ */ | ||||
| /* $Id: xm_api.c,v 1.29.2.1 2001/11/06 16:00:58 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -1260,7 +1260,7 @@ static GLboolean initialize_visual_and_buffer( int client, | ||||
|     * reports bugs. | ||||
|     */ | ||||
|    if (getenv("MESA_INFO")) { | ||||
|       fprintf(stderr, "X/Mesa visual = %p\n", v); | ||||
|       fprintf(stderr, "X/Mesa visual = %p\n", (void *) v); | ||||
|       fprintf(stderr, "X/Mesa dithered pf = %u\n", v->dithered_pf); | ||||
|       fprintf(stderr, "X/Mesa undithered pf = %u\n", v->undithered_pf); | ||||
|       fprintf(stderr, "X/Mesa level = %d\n", v->level); | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: xm_dd.c,v 1.26 2001/09/12 03:32:29 brianp Exp $ */ | ||||
| /* $Id: xm_dd.c,v 1.26.2.1 2001/11/28 11:54:45 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -854,7 +854,7 @@ get_string( GLcontext *ctx, GLenum name ) | ||||
| #endif | ||||
|       case GL_VENDOR: | ||||
| #ifdef XFree86Server | ||||
|          return (const GLubyte *) "VA Linux Systems, Inc."; | ||||
|          return (const GLubyte *) "Mesa project: www.mesa3d.org"; | ||||
| #else | ||||
|          return NULL; | ||||
| #endif | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: glapi.c,v 1.58 2001/10/17 13:34:08 brianp Exp $ */ | ||||
| /* $Id: glapi.c,v 1.58.2.1 2001/11/18 23:24:49 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.5 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -971,8 +971,7 @@ static struct name_address_offset static_functions[] = { | ||||
| #undef NAME | ||||
|  | ||||
| 	/* ARB 12. GL_ARB_texture_compression */ | ||||
| #if 000 | ||||
| #if defined(GL_ARB_texture_compression) && defined(_gloffset_CompressedTexImage3DARB) | ||||
| #ifdef GL_ARB_texture_compression | ||||
| #define NAME(X) (GLvoid *) X | ||||
| #else | ||||
| #define NAME(X) (GLvoid *) NotImplemented | ||||
| @@ -985,7 +984,6 @@ static struct name_address_offset static_functions[] = { | ||||
| 	{ "glCompressedTexSubImage1DARB", NAME(glCompressedTexSubImage1DARB), _gloffset_CompressedTexSubImage1DARB }, | ||||
| 	{ "glGetCompressedTexImageARB", NAME(glGetCompressedTexImageARB), _gloffset_GetCompressedTexImageARB }, | ||||
| #undef NAME | ||||
| #endif | ||||
|  | ||||
| 	/* 2. GL_EXT_blend_color */ | ||||
| #ifdef GL_EXT_blend_color | ||||
| @@ -1109,11 +1107,22 @@ static struct name_address_offset static_functions[] = { | ||||
| #define NAME(X) (GLvoid *) NotImplemented | ||||
| #endif | ||||
| 	{ "glPixelTexGenParameterfSGIS", NAME(glPixelTexGenParameterfSGIS), _gloffset_PixelTexGenParameterfSGIS }, | ||||
| 	{ "glPixelTexGenParameterfvSGIS", NAME(glPixelTexGenParameterfvSGIS), _gloffset_PixelTexGenParameterfvSGIS }, | ||||
| 	{ "glPixelTexGenParameteriSGIS", NAME(glPixelTexGenParameteriSGIS), _gloffset_PixelTexGenParameteriSGIS }, | ||||
| 	{ "glPixelTexGenParameterivSGIS", NAME(glPixelTexGenParameterivSGIS), _gloffset_PixelTexGenParameterivSGIS }, | ||||
| 	{ "glGetPixelTexGenParameterfvSGIS", NAME(glGetPixelTexGenParameterfvSGIS), _gloffset_GetPixelTexGenParameterfvSGIS }, | ||||
| 	{ "glGetPixelTexGenParameterivSGIS", NAME(glGetPixelTexGenParameterivSGIS), _gloffset_GetPixelTexGenParameterivSGIS }, | ||||
| #undef NAME | ||||
|  | ||||
| 	/* 15a. GL_SGIX_pixel_texture */ | ||||
| #ifdef GL_SGIX_pixel_texture | ||||
| #define NAME(X) (GLvoid *) X | ||||
| #else | ||||
| #define NAME(X) (GLvoid *) NotImplemented | ||||
| #endif | ||||
| 	{ "glPixelTexGenSGIX", NAME(glPixelTexGenSGIX), _gloffset_PixelTexGenSGIX }, | ||||
| #undef NAME | ||||
|  | ||||
| 	/* 16. GL_SGIS_texture4D */ | ||||
| #ifdef  GL_SGIS_texture4D | ||||
| #define NAME(X) (GLvoid *) X | ||||
| @@ -1511,7 +1520,7 @@ static struct name_address_offset static_functions[] = { | ||||
| 	{ "glFogCoordfEXT", NAME(glFogCoordfEXT), _gloffset_FogCoordfEXT }, | ||||
| 	{ "glFogCoordfvEXT", NAME(glFogCoordfvEXT), _gloffset_FogCoordfvEXT }, | ||||
| 	{ "glFogCoorddEXT", NAME(glFogCoorddEXT), _gloffset_FogCoorddEXT }, | ||||
| 	{ "glFogCoorddEXT", NAME(glFogCoorddEXT), _gloffset_FogCoorddEXT }, | ||||
| 	{ "glFogCoorddvEXT", NAME(glFogCoorddvEXT), _gloffset_FogCoorddvEXT }, | ||||
| 	{ "glFogCoordPointerEXT", NAME(glFogCoordPointerEXT), _gloffset_FogCoordPointerEXT }, | ||||
| #undef NAME | ||||
|  | ||||
| @@ -1699,7 +1708,30 @@ static struct name_address_offset static_functions[] = { | ||||
| #else | ||||
| #define NAME(X) (GLvoid *) NotImplemented | ||||
| #endif | ||||
|         { "glWindowPos2iMESA", NAME(glWindowPos2iMESA), _gloffset_WindowPos2iMESA }, | ||||
|         { "glWindowPos2sMESA", NAME(glWindowPos2sMESA), _gloffset_WindowPos2sMESA }, | ||||
| 	{ "glWindowPos2fMESA", NAME(glWindowPos2fMESA), _gloffset_WindowPos2fMESA }, | ||||
| 	{ "glWindowPos2dMESA", NAME(glWindowPos2dMESA), _gloffset_WindowPos2dMESA }, | ||||
| 	{ "glWindowPos2ivMESA", NAME(glWindowPos2ivMESA), _gloffset_WindowPos2ivMESA }, | ||||
| 	{ "glWindowPos2svMESA", NAME(glWindowPos2svMESA), _gloffset_WindowPos2svMESA }, | ||||
| 	{ "glWindowPos2fvMESA", NAME(glWindowPos2fvMESA), _gloffset_WindowPos2fvMESA }, | ||||
| 	{ "glWindowPos2dvMESA", NAME(glWindowPos2dvMESA), _gloffset_WindowPos2dvMESA }, | ||||
| 	{ "glWindowPos3iMESA", NAME(glWindowPos3iMESA), _gloffset_WindowPos3iMESA }, | ||||
| 	{ "glWindowPos3sMESA", NAME(glWindowPos3sMESA), _gloffset_WindowPos3sMESA }, | ||||
| 	{ "glWindowPos3fMESA", NAME(glWindowPos3fMESA), _gloffset_WindowPos3fMESA }, | ||||
| 	{ "glWindowPos3dMESA", NAME(glWindowPos3dMESA), _gloffset_WindowPos3dMESA }, | ||||
| 	{ "glWindowPos3ivMESA", NAME(glWindowPos3ivMESA), _gloffset_WindowPos3ivMESA }, | ||||
| 	{ "glWindowPos3svMESA", NAME(glWindowPos3svMESA), _gloffset_WindowPos3svMESA }, | ||||
| 	{ "glWindowPos3fvMESA", NAME(glWindowPos3fvMESA), _gloffset_WindowPos3fvMESA }, | ||||
| 	{ "glWindowPos3dvMESA", NAME(glWindowPos3dvMESA), _gloffset_WindowPos3dvMESA }, | ||||
| 	{ "glWindowPos4iMESA", NAME(glWindowPos4iMESA), _gloffset_WindowPos4iMESA }, | ||||
| 	{ "glWindowPos4sMESA", NAME(glWindowPos4sMESA), _gloffset_WindowPos4sMESA }, | ||||
| 	{ "glWindowPos4fMESA", NAME(glWindowPos4fMESA), _gloffset_WindowPos4fMESA }, | ||||
| 	{ "glWindowPos4dMESA", NAME(glWindowPos4dMESA), _gloffset_WindowPos4dMESA }, | ||||
| 	{ "glWindowPos4ivMESA", NAME(glWindowPos4ivMESA), _gloffset_WindowPos4ivMESA }, | ||||
| 	{ "glWindowPos4svMESA", NAME(glWindowPos4svMESA), _gloffset_WindowPos4svMESA }, | ||||
| 	{ "glWindowPos4fvMESA", NAME(glWindowPos4fvMESA), _gloffset_WindowPos4fvMESA }, | ||||
| 	{ "glWindowPos4dvMESA", NAME(glWindowPos4dvMESA), _gloffset_WindowPos4dvMESA }, | ||||
| #undef NAME | ||||
|  | ||||
| 	/* 209. WGL_EXT_multisample */ | ||||
|   | ||||
| @@ -313,7 +313,7 @@ struct _glapi_table | ||||
|    void (*Translatef)(GLfloat x, GLfloat y, GLfloat z); /* 304 */ | ||||
|    void (*Viewport)(GLint x, GLint y, GLsizei width, GLsizei height); /* 305 */ | ||||
|    void (*ArrayElement)(GLint i); /* 306 */ | ||||
|    void (*BindTexture)(GLenum target, GLenum texture); /* 307 */ | ||||
|    void (*BindTexture)(GLenum target, GLuint texture); /* 307 */ | ||||
|    void (*ColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 308 */ | ||||
|    void (*DisableClientState)(GLenum array); /* 309 */ | ||||
|    void (*DrawArrays)(GLenum mode, GLint first, GLsizei count); /* 310 */ | ||||
| @@ -328,16 +328,16 @@ struct _glapi_table | ||||
|    void (*PolygonOffset)(GLfloat factor, GLfloat units); /* 319 */ | ||||
|    void (*TexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 320 */ | ||||
|    void (*VertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 321 */ | ||||
|    GLboolean (*AreTexturesResident)(GLsizei n, const GLenum * textures, GLboolean * residences); /* 322 */ | ||||
|    GLboolean (*AreTexturesResident)(GLsizei n, const GLuint * textures, GLboolean * residences); /* 322 */ | ||||
|    void (*CopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); /* 323 */ | ||||
|    void (*CopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); /* 324 */ | ||||
|    void (*CopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); /* 325 */ | ||||
|    void (*CopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); /* 326 */ | ||||
|    void (*DeleteTextures)(GLsizei n, const GLenum * textures); /* 327 */ | ||||
|    void (*GenTextures)(GLsizei n, GLenum * textures); /* 328 */ | ||||
|    void (*DeleteTextures)(GLsizei n, const GLuint * textures); /* 327 */ | ||||
|    void (*GenTextures)(GLsizei n, GLuint * textures); /* 328 */ | ||||
|    void (*GetPointerv)(GLenum pname, GLvoid * * params); /* 329 */ | ||||
|    GLboolean (*IsTexture)(GLenum texture); /* 330 */ | ||||
|    void (*PrioritizeTextures)(GLsizei n, const GLenum * textures, const GLclampf * priorities); /* 331 */ | ||||
|    GLboolean (*IsTexture)(GLuint texture); /* 330 */ | ||||
|    void (*PrioritizeTextures)(GLsizei n, const GLuint * textures, const GLclampf * priorities); /* 331 */ | ||||
|    void (*TexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels); /* 332 */ | ||||
|    void (*TexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); /* 333 */ | ||||
|    void (*PopClientAttrib)(void); /* 334 */ | ||||
| @@ -445,9 +445,9 @@ struct _glapi_table | ||||
|    void (*GetPixelTexGenParameterfvSGIS)(GLenum pname, GLfloat * params); /* 436 */ | ||||
|    void (*TexImage4DSGIS)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid * pixels); /* 437 */ | ||||
|    void (*TexSubImage4DSGIS)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid * pixels); /* 438 */ | ||||
|    GLboolean (*AreTexturesResidentEXT)(GLsizei n, const GLenum * textures, GLboolean * residences); /* 439 */ | ||||
|    void (*GenTexturesEXT)(GLsizei n, GLenum * textures); /* 440 */ | ||||
|    GLboolean (*IsTextureEXT)(GLenum texture); /* 441 */ | ||||
|    GLboolean (*AreTexturesResidentEXT)(GLsizei n, const GLuint * textures, GLboolean * residences); /* 439 */ | ||||
|    void (*GenTexturesEXT)(GLsizei n, GLuint * textures); /* 440 */ | ||||
|    GLboolean (*IsTextureEXT)(GLuint texture); /* 441 */ | ||||
|    void (*DetailTexFuncSGIS)(GLenum target, GLsizei n, const GLfloat * points); /* 442 */ | ||||
|    void (*GetDetailTexFuncSGIS)(GLenum target, GLfloat * points); /* 443 */ | ||||
|    void (*SharpenTexFuncSGIS)(GLenum target, GLsizei n, const GLfloat * points); /* 444 */ | ||||
| @@ -566,7 +566,7 @@ struct _glapi_table | ||||
|    void (*CompressedTexSubImage3DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data); /* 557 */ | ||||
|    void (*CompressedTexSubImage2DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data); /* 558 */ | ||||
|    void (*CompressedTexSubImage1DARB)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data); /* 559 */ | ||||
|    void (*GetCompressedTexImageARB)(GLenum target, GLint level, void * img); /* 560 */ | ||||
|    void (*GetCompressedTexImageARB)(GLenum target, GLint level, GLvoid * img); /* 560 */ | ||||
|    void (*SecondaryColor3bEXT)(GLbyte red, GLbyte green, GLbyte blue); /* 561 */ | ||||
|    void (*SecondaryColor3bvEXT)(const GLbyte * v); /* 562 */ | ||||
|    void (*SecondaryColor3dEXT)(GLdouble red, GLdouble green, GLdouble blue); /* 563 */ | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: glapitemp.h,v 1.31 2001/10/17 13:29:02 brianp Exp $ */ | ||||
| /* $Id: glapitemp.h,v 1.31.2.1 2001/11/01 00:38:37 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -159,7 +159,7 @@ KEYWORD1 void KEYWORD2 NAME(ClearStencil)(GLint s) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(ClipPlane)(GLenum plane, const GLdouble *equation) | ||||
| { | ||||
|    DISPATCH(ClipPlane, (plane, equation), (F, "glClipPlane(%p);", equation)); | ||||
|    DISPATCH(ClipPlane, (plane, equation), (F, "glClipPlane(%p);", (void *) equation)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color3b)(GLbyte red, GLbyte green, GLbyte blue) | ||||
| @@ -249,37 +249,37 @@ KEYWORD1 void KEYWORD2 NAME(Color3bv)(const GLbyte *v) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color3dv)(const GLdouble *v) | ||||
| { | ||||
|    DISPATCH(Color3dv, (v), (F, "glColor3dv(%p);", v)); | ||||
|    DISPATCH(Color3dv, (v), (F, "glColor3dv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color3fv)(const GLfloat *v) | ||||
| { | ||||
|    DISPATCH(Color3fv, (v), (F, "glColor3fv(%p);", v)); | ||||
|    DISPATCH(Color3fv, (v), (F, "glColor3fv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color3iv)(const GLint *v) | ||||
| { | ||||
|    DISPATCH(Color3iv, (v), (F, "glColor3iv(%p);", v)); | ||||
|    DISPATCH(Color3iv, (v), (F, "glColor3iv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color3sv)(const GLshort *v) | ||||
| { | ||||
|    DISPATCH(Color3sv, (v), (F, "glColor3sv(%p);", v)); | ||||
|    DISPATCH(Color3sv, (v), (F, "glColor3sv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color3ubv)(const GLubyte *v) | ||||
| { | ||||
|    DISPATCH(Color3ubv, (v), (F, "glColor3ubv(%p);", v)); | ||||
|    DISPATCH(Color3ubv, (v), (F, "glColor3ubv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color3uiv)(const GLuint *v) | ||||
| { | ||||
|    DISPATCH(Color3uiv, (v), (F, "glColor3uiv(%p);", v)); | ||||
|    DISPATCH(Color3uiv, (v), (F, "glColor3uiv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color3usv)(const GLushort *v) | ||||
| { | ||||
|    DISPATCH(Color3usv, (v), (F, "glColor3usv(%p);", v)); | ||||
|    DISPATCH(Color3usv, (v), (F, "glColor3usv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color4bv)(const GLbyte *v) | ||||
| @@ -289,37 +289,37 @@ KEYWORD1 void KEYWORD2 NAME(Color4bv)(const GLbyte *v) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color4dv)(const GLdouble *v) | ||||
| { | ||||
|    DISPATCH(Color4dv, (v), (F, "glColor4dv(%p);", v)); | ||||
|    DISPATCH(Color4dv, (v), (F, "glColor4dv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color4fv)(const GLfloat *v) | ||||
| { | ||||
|    DISPATCH(Color4fv, (v), (F, "glColor4fv(%p);", v)); | ||||
|    DISPATCH(Color4fv, (v), (F, "glColor4fv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color4iv)(const GLint *v) | ||||
| { | ||||
|    DISPATCH(Color4iv, (v), (F, "glColor4iv(%p);", v)); | ||||
|    DISPATCH(Color4iv, (v), (F, "glColor4iv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color4sv)(const GLshort *v) | ||||
| { | ||||
|    DISPATCH(Color4sv, (v), (F, "glColor4sv(%p);", v)); | ||||
|    DISPATCH(Color4sv, (v), (F, "glColor4sv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color4ubv)(const GLubyte *v) | ||||
| { | ||||
|    DISPATCH(Color4ubv, (v), (F, "glColor4ubv(%p);", v)); | ||||
|    DISPATCH(Color4ubv, (v), (F, "glColor4ubv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color4uiv)(const GLuint *v) | ||||
| { | ||||
|    DISPATCH(Color4uiv, (v), (F, "glColor4uiv(%p);", v)); | ||||
|    DISPATCH(Color4uiv, (v), (F, "glColor4uiv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Color4usv)(const GLushort *v) | ||||
| { | ||||
|    DISPATCH(Color4usv, (v), (F, "glColor4usv(%p);", v)); | ||||
|    DISPATCH(Color4usv, (v), (F, "glColor4usv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(ColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) | ||||
| @@ -469,7 +469,7 @@ KEYWORD1 void KEYWORD2 NAME(EvalPoint2)(GLint i, GLint j) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(FeedbackBuffer)(GLsizei size, GLenum type, GLfloat *buffer) | ||||
| { | ||||
|    DISPATCH(FeedbackBuffer, (size, type, buffer), (F, "glFeedbackBuffer(%d, 0x%x, %p);", size, type, buffer)); | ||||
|    DISPATCH(FeedbackBuffer, (size, type, buffer), (F, "glFeedbackBuffer(%d, 0x%x, %p);", size, type, (void *) buffer)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Finish)(void) | ||||
| @@ -494,12 +494,12 @@ KEYWORD1 void KEYWORD2 NAME(Fogi)(GLenum pname, GLint param) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Fogfv)(GLenum pname, const GLfloat *params) | ||||
| { | ||||
|    DISPATCH(Fogfv, (pname, params), (F, "glFogfv(0x%x, %p);", pname, params)); | ||||
|    DISPATCH(Fogfv, (pname, params), (F, "glFogfv(0x%x, %p);", pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Fogiv)(GLenum pname, const GLint *params) | ||||
| { | ||||
|    DISPATCH(Fogiv, (pname, params), (F, "glFogiv(0x%x, %p);", pname, params)); | ||||
|    DISPATCH(Fogiv, (pname, params), (F, "glFogiv(0x%x, %p);", pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(FrontFace)(GLenum mode) | ||||
| @@ -524,12 +524,12 @@ KEYWORD1 void KEYWORD2 NAME(GetBooleanv)(GLenum pname, GLboolean *params) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetClipPlane)(GLenum plane, GLdouble *equation) | ||||
| { | ||||
|    DISPATCH(GetClipPlane, (plane, equation), (F, "glGetClipPlane(x0%x, %p);", plane, equation)); | ||||
|    DISPATCH(GetClipPlane, (plane, equation), (F, "glGetClipPlane(x0%x, %p);", plane, (void *) equation)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetDoublev)(GLenum pname, GLdouble *params) | ||||
| { | ||||
|    DISPATCH(GetDoublev, (pname, params), (F, "glGetDoublev(0x%x, %p);", pname, params)); | ||||
|    DISPATCH(GetDoublev, (pname, params), (F, "glGetDoublev(0x%x, %p);", pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 GLenum KEYWORD2 NAME(GetError)(void) | ||||
| @@ -539,62 +539,62 @@ KEYWORD1 GLenum KEYWORD2 NAME(GetError)(void) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetFloatv)(GLenum pname, GLfloat *params) | ||||
| { | ||||
|    DISPATCH(GetFloatv, (pname, params), (F, "glGetFloatv(0x%x, %p);", pname, params)); | ||||
|    DISPATCH(GetFloatv, (pname, params), (F, "glGetFloatv(0x%x, %p);", pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetIntegerv)(GLenum pname, GLint *params) | ||||
| { | ||||
|    DISPATCH(GetIntegerv, (pname, params), (F, "glGetIntegerv(0x%x, %p);", pname, params)); | ||||
|    DISPATCH(GetIntegerv, (pname, params), (F, "glGetIntegerv(0x%x, %p);", pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetLightfv)(GLenum light, GLenum pname, GLfloat *params) | ||||
| { | ||||
|    DISPATCH(GetLightfv, (light, pname, params), (F, "glGetLightfv(0x%x, 0x%x, %p);", light, pname, params)); | ||||
|    DISPATCH(GetLightfv, (light, pname, params), (F, "glGetLightfv(0x%x, 0x%x, %p);", light, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetLightiv)(GLenum light, GLenum pname, GLint *params) | ||||
| { | ||||
|    DISPATCH(GetLightiv, (light, pname, params), (F, "glGetLightiv(0x%x, 0x%x, %p);", light, pname, params)); | ||||
|    DISPATCH(GetLightiv, (light, pname, params), (F, "glGetLightiv(0x%x, 0x%x, %p);", light, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetMapdv)(GLenum target, GLenum query, GLdouble *v) | ||||
| { | ||||
|    DISPATCH(GetMapdv, (target, query, v), (F, "glGetMapdv(0x%x, 0x%x, %p);", target, query, v)); | ||||
|    DISPATCH(GetMapdv, (target, query, v), (F, "glGetMapdv(0x%x, 0x%x, %p);", target, query, (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetMapfv)(GLenum target, GLenum query, GLfloat *v) | ||||
| { | ||||
|    DISPATCH(GetMapfv, (target, query, v), (F, "glGetMapfv(0x%x, 0x%x, %p);", target, query, v)); | ||||
|    DISPATCH(GetMapfv, (target, query, v), (F, "glGetMapfv(0x%x, 0x%x, %p);", target, query, (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetMapiv)(GLenum target, GLenum query, GLint *v) | ||||
| { | ||||
|    DISPATCH(GetMapiv, (target, query, v), (F, "glGetMapiv(0x%x, 0x%x, %p);", target, query, v)); | ||||
|    DISPATCH(GetMapiv, (target, query, v), (F, "glGetMapiv(0x%x, 0x%x, %p);", target, query, (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetMaterialfv)(GLenum face, GLenum pname, GLfloat *params) | ||||
| { | ||||
|    DISPATCH(GetMaterialfv, (face, pname, params), (F, "glGetMaterialfv(0x%x, 0x%x, %p;", face, pname, params)); | ||||
|    DISPATCH(GetMaterialfv, (face, pname, params), (F, "glGetMaterialfv(0x%x, 0x%x, %p;", face, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetMaterialiv)(GLenum face, GLenum pname, GLint *params) | ||||
| { | ||||
|    DISPATCH(GetMaterialiv, (face, pname, params), (F, "glGetMaterialiv(0x%x, 0x%x, %p);", face, pname, params)); | ||||
|    DISPATCH(GetMaterialiv, (face, pname, params), (F, "glGetMaterialiv(0x%x, 0x%x, %p);", face, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetPixelMapfv)(GLenum map, GLfloat *values) | ||||
| { | ||||
|    DISPATCH(GetPixelMapfv, (map, values), (F, "glGetPixelMapfv(0x%x, %p);", map, values)); | ||||
|    DISPATCH(GetPixelMapfv, (map, values), (F, "glGetPixelMapfv(0x%x, %p);", map, (void *) values)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetPixelMapuiv)(GLenum map, GLuint *values) | ||||
| { | ||||
|    DISPATCH(GetPixelMapuiv, (map, values), (F, "glGetPixelMapuiv(0x%x, %p);", map, values)); | ||||
|    DISPATCH(GetPixelMapuiv, (map, values), (F, "glGetPixelMapuiv(0x%x, %p);", map, (void *) values)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetPixelMapusv)(GLenum map, GLushort *values) | ||||
| { | ||||
|    DISPATCH(GetPixelMapusv, (map, values), (F, "glGetPixelMapusv(0x%x, %p);", map, values)); | ||||
|    DISPATCH(GetPixelMapusv, (map, values), (F, "glGetPixelMapusv(0x%x, %p);", map, (void *) values)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetPolygonStipple)(GLubyte *mask) | ||||
| @@ -609,27 +609,27 @@ KEYWORD1 const GLubyte * KEYWORD2 NAME(GetString)(GLenum name) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetTexEnvfv)(GLenum target, GLenum pname, GLfloat *params) | ||||
| { | ||||
|    DISPATCH(GetTexEnvfv, (target, pname, params), (F, "glGettexEnvfv(0x%x, 0x%x, %p);", target, pname, params)); | ||||
|    DISPATCH(GetTexEnvfv, (target, pname, params), (F, "glGettexEnvfv(0x%x, 0x%x, %p);", target, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetTexEnviv)(GLenum target, GLenum pname, GLint *params) | ||||
| { | ||||
|    DISPATCH(GetTexEnviv, (target, pname, params), (F, "glGetTexEnviv(0x%x, 0x%x, %p);", target, pname, params)); | ||||
|    DISPATCH(GetTexEnviv, (target, pname, params), (F, "glGetTexEnviv(0x%x, 0x%x, %p);", target, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetTexGeniv)(GLenum target, GLenum pname, GLint *params) | ||||
| { | ||||
|    DISPATCH(GetTexGeniv, (target, pname, params), (F, "glGetTexGeniv(0x%x, 0x%x, %p);", target, pname, params)); | ||||
|    DISPATCH(GetTexGeniv, (target, pname, params), (F, "glGetTexGeniv(0x%x, 0x%x, %p);", target, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetTexGendv)(GLenum target, GLenum pname, GLdouble *params) | ||||
| { | ||||
|    DISPATCH(GetTexGendv, (target, pname, params), (F, "glGetTexGendv(0x%x, 0x%x, %p;", target, pname, params)); | ||||
|    DISPATCH(GetTexGendv, (target, pname, params), (F, "glGetTexGendv(0x%x, 0x%x, %p;", target, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetTexGenfv)(GLenum target, GLenum pname, GLfloat *params) | ||||
| { | ||||
|    DISPATCH(GetTexGenfv, (target, pname, params), (F, "glGetTexGenfv(0x%x, 0x%x, %p);", target, pname, params)); | ||||
|    DISPATCH(GetTexGenfv, (target, pname, params), (F, "glGetTexGenfv(0x%x, 0x%x, %p);", target, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels) | ||||
| @@ -639,22 +639,22 @@ KEYWORD1 void KEYWORD2 NAME(GetTexImage)(GLenum target, GLint level, GLenum form | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params) | ||||
| { | ||||
|    DISPATCH(GetTexLevelParameterfv, (target, level, pname, params), (F, "glGetTexLevelParameterfv(0x%x, %d, 0x%x, %p);", target, level, pname, params)); | ||||
|    DISPATCH(GetTexLevelParameterfv, (target, level, pname, params), (F, "glGetTexLevelParameterfv(0x%x, %d, 0x%x, %p);", target, level, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params) | ||||
| { | ||||
|    DISPATCH(GetTexLevelParameteriv, (target, level, pname, params), (F, "glGetTexLevelParameteriv(0x%x, %d, 0x%x, %p);", target, level, pname, params)); | ||||
|    DISPATCH(GetTexLevelParameteriv, (target, level, pname, params), (F, "glGetTexLevelParameteriv(0x%x, %d, 0x%x, %p);", target, level, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params) | ||||
| { | ||||
|    DISPATCH(GetTexParameterfv, (target, pname, params), (F, "glGetTexParameterfv(0x%x, 0x%x, %p);", target, pname, params)); | ||||
|    DISPATCH(GetTexParameterfv, (target, pname, params), (F, "glGetTexParameterfv(0x%x, 0x%x, %p);", target, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetTexParameteriv)(GLenum target, GLenum pname, GLint *params) | ||||
| { | ||||
|    DISPATCH(GetTexParameteriv, (target, pname, params), (F, "glGetTexParameteriv(0x%x, 0x%x, %p);", target, pname, params)); | ||||
|    DISPATCH(GetTexParameteriv, (target, pname, params), (F, "glGetTexParameteriv(0x%x, 0x%x, %p);", target, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Hint)(GLenum target, GLenum mode) | ||||
| @@ -744,12 +744,12 @@ KEYWORD1 void KEYWORD2 NAME(Lighti)(GLenum light, GLenum pname, GLint param) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Lightfv)(GLenum light, GLenum pname, const GLfloat *params) | ||||
| { | ||||
|    DISPATCH(Lightfv, (light, pname, params), (F, "glLightfv(0x%x, 0x%x, %p);", light, pname, params)); | ||||
|    DISPATCH(Lightfv, (light, pname, params), (F, "glLightfv(0x%x, 0x%x, %p);", light, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Lightiv)(GLenum light, GLenum pname, const GLint *params) | ||||
| { | ||||
|    DISPATCH(Lightiv, (light, pname, params), (F, "glLightiv(0x%x, 0x%x, %p);", light, pname, params)); | ||||
|    DISPATCH(Lightiv, (light, pname, params), (F, "glLightiv(0x%x, 0x%x, %p);", light, pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(LightModelf)(GLenum pname, GLfloat param) | ||||
| @@ -764,12 +764,12 @@ KEYWORD1 void KEYWORD2 NAME(LightModeli)(GLenum pname, GLint param) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(LightModelfv)(GLenum pname, const GLfloat *params) | ||||
| { | ||||
|    DISPATCH(LightModelfv, (pname, params), (F, "glLightModelfv(0x%x, %p);", pname, params)); | ||||
|    DISPATCH(LightModelfv, (pname, params), (F, "glLightModelfv(0x%x, %p);", pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(LightModeliv)(GLenum pname, const GLint *params) | ||||
| { | ||||
|    DISPATCH(LightModeliv, (pname, params), (F, "glLightModeliv(0x%x, %p);", pname, params)); | ||||
|    DISPATCH(LightModeliv, (pname, params), (F, "glLightModeliv(0x%x, %p);", pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(LineWidth)(GLfloat width) | ||||
| @@ -794,12 +794,12 @@ KEYWORD1 void KEYWORD2 NAME(LoadIdentity)(void) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(LoadMatrixd)(const GLdouble *m) | ||||
| { | ||||
|    DISPATCH(LoadMatrixd, (m), (F, "glLoadMatirxd(%p);", m)); | ||||
|    DISPATCH(LoadMatrixd, (m), (F, "glLoadMatirxd(%p);", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(LoadMatrixf)(const GLfloat *m) | ||||
| { | ||||
|    DISPATCH(LoadMatrixf, (m), (F, "glLoadMatrixf(%p);", m)); | ||||
|    DISPATCH(LoadMatrixf, (m), (F, "glLoadMatrixf(%p);", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(LoadName)(GLuint name) | ||||
| @@ -879,12 +879,12 @@ KEYWORD1 void KEYWORD2 NAME(MatrixMode)(GLenum mode) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(MultMatrixd)(const GLdouble *m) | ||||
| { | ||||
|    DISPATCH(MultMatrixd, (m), (F, "glMultMatrixd(%p);", m)); | ||||
|    DISPATCH(MultMatrixd, (m), (F, "glMultMatrixd(%p);", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(MultMatrixf)(const GLfloat *m) | ||||
| { | ||||
|    DISPATCH(MultMatrixf, (m), (F, "glMultMatrixf(%p);", m)); | ||||
|    DISPATCH(MultMatrixf, (m), (F, "glMultMatrixf(%p);", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(NewList)(GLuint list, GLenum mode) | ||||
| @@ -899,7 +899,7 @@ KEYWORD1 void KEYWORD2 NAME(Normal3b)(GLbyte nx, GLbyte ny, GLbyte nz) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Normal3bv)(const GLbyte *v) | ||||
| { | ||||
|    DISPATCH(Normal3bv, (v), (F, "glNormal3bv(%p);", v)); | ||||
|    DISPATCH(Normal3bv, (v), (F, "glNormal3bv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Normal3d)(GLdouble nx, GLdouble ny, GLdouble nz) | ||||
| @@ -909,7 +909,7 @@ KEYWORD1 void KEYWORD2 NAME(Normal3d)(GLdouble nx, GLdouble ny, GLdouble nz) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Normal3dv)(const GLdouble *v) | ||||
| { | ||||
|    DISPATCH(Normal3dv, (v), (F, "glNormal3dv(%p);", v)); | ||||
|    DISPATCH(Normal3dv, (v), (F, "glNormal3dv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Normal3f)(GLfloat nx, GLfloat ny, GLfloat nz) | ||||
| @@ -919,7 +919,7 @@ KEYWORD1 void KEYWORD2 NAME(Normal3f)(GLfloat nx, GLfloat ny, GLfloat nz) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Normal3fv)(const GLfloat *v) | ||||
| { | ||||
|    DISPATCH(Normal3fv, (v), (F, "glNormal3fv(%p);", v)); | ||||
|    DISPATCH(Normal3fv, (v), (F, "glNormal3fv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Normal3i)(GLint nx, GLint ny, GLint nz) | ||||
| @@ -929,7 +929,7 @@ KEYWORD1 void KEYWORD2 NAME(Normal3i)(GLint nx, GLint ny, GLint nz) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Normal3iv)(const GLint *v) | ||||
| { | ||||
|    DISPATCH(Normal3iv, (v), (F, "glNormal3iv(%p);", v)); | ||||
|    DISPATCH(Normal3iv, (v), (F, "glNormal3iv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Normal3s)(GLshort nx, GLshort ny, GLshort nz) | ||||
| @@ -939,7 +939,7 @@ KEYWORD1 void KEYWORD2 NAME(Normal3s)(GLshort nx, GLshort ny, GLshort nz) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Normal3sv)(const GLshort *v) | ||||
| { | ||||
|    DISPATCH(Normal3sv, (v), (F, "glNormal3sv(%p);", v)); | ||||
|    DISPATCH(Normal3sv, (v), (F, "glNormal3sv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Ortho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearval, GLdouble farval) | ||||
| @@ -1519,7 +1519,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex2d)(GLdouble x, GLdouble y) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex2dv)(const GLdouble *v) | ||||
| { | ||||
|    DISPATCH(Vertex2dv, (v), (F, "glVertex2dv(%p);", v)); | ||||
|    DISPATCH(Vertex2dv, (v), (F, "glVertex2dv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex2f)(GLfloat x, GLfloat y) | ||||
| @@ -1529,7 +1529,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex2f)(GLfloat x, GLfloat y) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex2fv)(const GLfloat *v) | ||||
| { | ||||
|    DISPATCH(Vertex2fv, (v), (F, "glVertex2fv(%p);", v)); | ||||
|    DISPATCH(Vertex2fv, (v), (F, "glVertex2fv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex2i)(GLint x, GLint y) | ||||
| @@ -1539,7 +1539,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex2i)(GLint x, GLint y) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex2iv)(const GLint *v) | ||||
| { | ||||
|    DISPATCH(Vertex2iv, (v), (F, "glVertex2iv(%p);", v)); | ||||
|    DISPATCH(Vertex2iv, (v), (F, "glVertex2iv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex2s)(GLshort x, GLshort y) | ||||
| @@ -1549,7 +1549,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex2s)(GLshort x, GLshort y) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex2sv)(const GLshort *v) | ||||
| { | ||||
|    DISPATCH(Vertex2sv, (v), (F, "glVertex2sv(%p);", v)); | ||||
|    DISPATCH(Vertex2sv, (v), (F, "glVertex2sv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex3d)(GLdouble x, GLdouble y, GLdouble z) | ||||
| @@ -1559,7 +1559,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex3d)(GLdouble x, GLdouble y, GLdouble z) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex3dv)(const GLdouble *v) | ||||
| { | ||||
|    DISPATCH(Vertex3dv, (v), (F, "glVertex3dv(%p);", v)); | ||||
|    DISPATCH(Vertex3dv, (v), (F, "glVertex3dv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex3f)(GLfloat x, GLfloat y, GLfloat z) | ||||
| @@ -1569,7 +1569,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex3f)(GLfloat x, GLfloat y, GLfloat z) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex3fv)(const GLfloat *v) | ||||
| { | ||||
|    DISPATCH(Vertex3fv, (v), (F, "glVertex3fv(%p);", v)); | ||||
|    DISPATCH(Vertex3fv, (v), (F, "glVertex3fv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex3i)(GLint x, GLint y, GLint z) | ||||
| @@ -1579,7 +1579,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex3i)(GLint x, GLint y, GLint z) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex3iv)(const GLint *v) | ||||
| { | ||||
|    DISPATCH(Vertex3iv, (v), (F, "glVertex3iv(%p);", v)); | ||||
|    DISPATCH(Vertex3iv, (v), (F, "glVertex3iv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex3s)(GLshort x, GLshort y, GLshort z) | ||||
| @@ -1589,7 +1589,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex3s)(GLshort x, GLshort y, GLshort z) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex3sv)(const GLshort *v) | ||||
| { | ||||
|    DISPATCH(Vertex3sv, (v), (F, "glVertex3sv(%p);", v)); | ||||
|    DISPATCH(Vertex3sv, (v), (F, "glVertex3sv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w) | ||||
| @@ -1599,7 +1599,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdoub | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex4dv)(const GLdouble *v) | ||||
| { | ||||
|    DISPATCH(Vertex4dv, (v), (F, "glVertex4dv(%p);", v)); | ||||
|    DISPATCH(Vertex4dv, (v), (F, "glVertex4dv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w) | ||||
| @@ -1609,7 +1609,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex4fv)(const GLfloat *v) | ||||
| { | ||||
|    DISPATCH(Vertex4fv, (v), (F, "glVertex4fv(%p);", v)); | ||||
|    DISPATCH(Vertex4fv, (v), (F, "glVertex4fv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex4i)(GLint x, GLint y, GLint z, GLint w) | ||||
| @@ -1619,7 +1619,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex4i)(GLint x, GLint y, GLint z, GLint w) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex4iv)(const GLint *v) | ||||
| { | ||||
|    DISPATCH(Vertex4iv, (v), (F, "glVertex4iv(%p);", v)); | ||||
|    DISPATCH(Vertex4iv, (v), (F, "glVertex4iv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex4s)(GLshort x, GLshort y, GLshort z, GLshort w) | ||||
| @@ -1629,7 +1629,7 @@ KEYWORD1 void KEYWORD2 NAME(Vertex4s)(GLshort x, GLshort y, GLshort z, GLshort w | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(Vertex4sv)(const GLshort *v) | ||||
| { | ||||
|    DISPATCH(Vertex4sv, (v), (F, "glVertex4sv(%p);", v)); | ||||
|    DISPATCH(Vertex4sv, (v), (F, "glVertex4sv(%p);", (void *) v)); | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -1644,7 +1644,7 @@ KEYWORD1 void KEYWORD2 NAME(Viewport)(GLint x, GLint y, GLsizei width, GLsizei h | ||||
|  | ||||
| KEYWORD1 GLboolean KEYWORD2 NAME(AreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences) | ||||
| { | ||||
|    RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), (F, "glAreTexturesResident(%d, %p, %p);", n, textures, residences)); | ||||
|    RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), (F, "glAreTexturesResident(%d, %p, %p);", n, (void *) textures, (void *) residences)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(ArrayElement)(GLint i) | ||||
| @@ -1684,7 +1684,7 @@ KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage2D)(GLenum target, GLint level, GLint | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(DeleteTextures)(GLsizei n, const GLuint *textures) | ||||
| { | ||||
|    DISPATCH(DeleteTextures, (n, textures), (F, "glDeleteTextures(%d, %p);", n, textures)); | ||||
|    DISPATCH(DeleteTextures, (n, textures), (F, "glDeleteTextures(%d, %p);", n, (void *) textures)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(DisableClientState)(GLenum cap) | ||||
| @@ -1699,7 +1699,7 @@ KEYWORD1 void KEYWORD2 NAME(DrawArrays)(GLenum mode, GLint first, GLsizei count) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(EdgeFlagPointer)(GLsizei stride, const GLvoid *ptr) | ||||
| { | ||||
|    DISPATCH(EdgeFlagPointer, (stride, ptr), (F, "glEdgeFlagPointer(%d, %p);", stride, ptr)); | ||||
|    DISPATCH(EdgeFlagPointer, (stride, ptr), (F, "glEdgeFlagPointer(%d, %p);", stride, (void *) ptr)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(EnableClientState)(GLenum cap) | ||||
| @@ -1709,12 +1709,12 @@ KEYWORD1 void KEYWORD2 NAME(EnableClientState)(GLenum cap) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GenTextures)(GLsizei n, GLuint *textures) | ||||
| { | ||||
|    DISPATCH(GenTextures, (n, textures), (F, "glGenTextures(%d, %p);", n, textures)); | ||||
|    DISPATCH(GenTextures, (n, textures), (F, "glGenTextures(%d, %p);", n, (void *) textures)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(GetPointerv)(GLenum pname, GLvoid **params) | ||||
| { | ||||
|    DISPATCH(GetPointerv, (pname, params), (F, "glGetPointerv(0x%x, %p);", pname, params)); | ||||
|    DISPATCH(GetPointerv, (pname, params), (F, "glGetPointerv(0x%x, %p);", pname, (void *) params)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(IndexPointer)(GLenum type, GLsizei stride, const GLvoid *ptr) | ||||
| @@ -1734,7 +1734,7 @@ KEYWORD1 GLboolean KEYWORD2 NAME(IsTexture)(GLuint texture) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(NormalPointer)(GLenum type, GLsizei stride, const GLvoid *ptr) | ||||
| { | ||||
|    DISPATCH(NormalPointer, (type, stride, ptr), (F, "glNormalPointer(0x%x, %d, %p);", type, stride, ptr)); | ||||
|    DISPATCH(NormalPointer, (type, stride, ptr), (F, "glNormalPointer(0x%x, %d, %p);", type, stride, (void *) ptr)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(PolygonOffset)(GLfloat factor, GLfloat units) | ||||
| @@ -1749,7 +1749,7 @@ KEYWORD1 void KEYWORD2 NAME(PopClientAttrib)(void) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(PrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities) | ||||
| { | ||||
|    DISPATCH(PrioritizeTextures, (n, textures, priorities), (F, "glPrioritizeTextures(%d, %p, %p);", n, textures, priorities)); | ||||
|    DISPATCH(PrioritizeTextures, (n, textures, priorities), (F, "glPrioritizeTextures(%d, %p, %p);", n, (void *) textures, (void *) priorities)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(PushClientAttrib)(GLbitfield mask) | ||||
| @@ -2280,7 +2280,7 @@ KEYWORD1 void KEYWORD2 NAME(PrioritizeTexturesEXT)(GLsizei n, const GLuint *text | ||||
|  | ||||
| KEYWORD1 GLboolean KEYWORD2 NAME(AreTexturesResidentEXT)(GLsizei n, const GLuint *textures, GLboolean *residences) | ||||
| { | ||||
|    RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), (F, "glAreTexturesResidentEXT(%d %p %p);", n, textures, residences)); | ||||
|    RETURN_DISPATCH(AreTexturesResident, (n, textures, residences), (F, "glAreTexturesResidentEXT(%d %p %p);", n, (void *) textures, (void *) residences)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 GLboolean KEYWORD2 NAME(IsTextureEXT)(GLuint texture) | ||||
| @@ -2703,7 +2703,7 @@ KEYWORD1 void KEYWORD2 NAME(LightEnviSGIX)(GLenum pname, GLint param) | ||||
| /* 112. GL_EXT_draw_range_elements */ | ||||
| KEYWORD1 void KEYWORD2 NAME(DrawRangeElementsEXT)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices) | ||||
| { | ||||
|    DISPATCH(DrawRangeElements, (mode, start, end, count, type, indices), (F, "glDrawRangeElementsEXT(0x%x, %u %u %d 0x%x %p);", mode, start, end, count, type, indices)); | ||||
|    DISPATCH(DrawRangeElements, (mode, start, end, count, type, indices), (F, "glDrawRangeElementsEXT(0x%x, %u %u %d 0x%x %p);", mode, start, end, count, type, (void *) indices)); | ||||
| } | ||||
|  | ||||
| /* 117. GL_EXT_light_texture */ | ||||
| @@ -2887,9 +2887,9 @@ KEYWORD1 void KEYWORD2 NAME(FogCoordfEXT)(GLfloat coord) | ||||
|    DISPATCH(FogCoordfEXT, (coord), (F, "glFogCoordfEXT(%g);", coord)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(FogCoordfvEXT)(const GLfloat * coord) | ||||
| KEYWORD1 void KEYWORD2 NAME(FogCoordfvEXT)(const GLfloat *coord) | ||||
| { | ||||
|    DISPATCH(FogCoordfvEXT, (coord), (F, "glFogCoordfvEXT(%p);", coord)); | ||||
|    DISPATCH(FogCoordfvEXT, (coord), (F, "glFogCoordfvEXT(%p);", (void *) coord)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(FogCoorddEXT)(GLdouble coord) | ||||
| @@ -2899,12 +2899,12 @@ KEYWORD1 void KEYWORD2 NAME(FogCoorddEXT)(GLdouble coord) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(FogCoorddvEXT)(const GLdouble * coord) | ||||
| { | ||||
|    DISPATCH(FogCoorddvEXT, (coord), (F, "glFogCoorddvEXT(%p);", coord)); | ||||
|    DISPATCH(FogCoorddvEXT, (coord), (F, "glFogCoorddvEXT(%p);", (void *) coord)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(FogCoordPointerEXT)(GLenum type, GLsizei stride, const GLvoid * pointer) | ||||
| { | ||||
|    DISPATCH(FogCoordPointerEXT, (type, stride, pointer), (F, "glFogCoordPointerEXT(0x%x, %d, %p);", type, stride, pointer)); | ||||
|    DISPATCH(FogCoordPointerEXT, (type, stride, pointer), (F, "glFogCoordPointerEXT(0x%x, %d, %p);", type, stride, (void *) pointer)); | ||||
| } | ||||
|  | ||||
| /* 173. GL_EXT/INGR_blend_func_separate */ | ||||
| @@ -3332,22 +3332,22 @@ KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4svARB)(GLenum target, const GLshort *v | ||||
| /* ARB 3. GL_ARB_transpose_matrix */ | ||||
| KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixdARB)(const GLdouble m[16]) | ||||
| { | ||||
|    DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixARB(%p);", m)); | ||||
|    DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixARB(%p);", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixfARB)(const GLfloat m[16]) | ||||
| { | ||||
|    DISPATCH(LoadTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", m)); | ||||
|    DISPATCH(LoadTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixdARB)(const GLdouble m[16]) | ||||
| { | ||||
|    DISPATCH(MultTransposeMatrixdARB, (m), (F, "glMultTransposeMatrixfARB(%p)", m)); | ||||
|    DISPATCH(MultTransposeMatrixdARB, (m), (F, "glMultTransposeMatrixfARB(%p)", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixfARB)(const GLfloat m[16]) | ||||
| { | ||||
|    DISPATCH(MultTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", m)); | ||||
|    DISPATCH(MultTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", (void *) m)); | ||||
| } | ||||
|  | ||||
| /* ARB 5. GL_ARB_multisample */ | ||||
| @@ -3610,22 +3610,22 @@ KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4sv)(GLenum target, const GLshort *v) | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixd)(const GLdouble m[16]) | ||||
| { | ||||
|    DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixARB(%p);", m)); | ||||
|    DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixARB(%p);", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixf)(const GLfloat m[16]) | ||||
| { | ||||
|    DISPATCH(LoadTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", m)); | ||||
|    DISPATCH(LoadTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixd)(const GLdouble m[16]) | ||||
| { | ||||
|    DISPATCH(MultTransposeMatrixdARB, (m), (F, "glMultTransposeMatrixfARB(%p)", m)); | ||||
|    DISPATCH(MultTransposeMatrixdARB, (m), (F, "glMultTransposeMatrixfARB(%p)", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixf)(const GLfloat m[16]) | ||||
| { | ||||
|    DISPATCH(MultTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", m)); | ||||
|    DISPATCH(MultTransposeMatrixfARB, (m), (F, "glLoadTransposeMatrixfARB(%p)", (void *) m)); | ||||
| } | ||||
|  | ||||
| KEYWORD1 void KEYWORD2 NAME(SampleCoverage)(GLclampf value, GLboolean invert) | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| #!/usr/bin/env python | ||||
|  | ||||
| # $Id: glsparcasm.py,v 1.4 2001/08/03 13:16:31 davem69 Exp $ | ||||
| # $Id: glsparcasm.py,v 1.4.2.1 2001/12/17 19:44:54 brianp Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.5 | ||||
| @@ -45,7 +45,7 @@ def PrintHead(): | ||||
| 	print '#include "glapioffsets.h"' | ||||
| 	print '' | ||||
| 	print '#define GL_PREFIX(n) gl##n' | ||||
| 	print '#define GLOBL_FN(x) .globl x ; .type x,#function' | ||||
| 	print '#define GLOBL_FN(x) .globl x' | ||||
| 	print '' | ||||
| 	print '/* The _glapi_Dispatch symbol addresses get relocated into the' | ||||
| 	print ' * sethi/or instruction sequences below at library init time.' | ||||
| @@ -83,6 +83,7 @@ def PrintTail(): | ||||
| def GenerateDispatchCode(name, offset): | ||||
| 	print '' | ||||
| 	print "GLOBL_FN(GL_PREFIX(%s))" % (name) | ||||
| 	print ".type %s,#function" % (name) | ||||
| 	print "GL_PREFIX(%s):" % (name) | ||||
| 	print '#ifdef __sparc_v9__' | ||||
| 	print '\tsethi\t%hi(0x00000000), %g2' | ||||
| @@ -100,6 +101,7 @@ def GenerateDispatchCode(name, offset): | ||||
| 	print "\tld\t[%%g1 + (4 * _gloffset_%s)], %%g3" % (offset) | ||||
| 	print '#endif' | ||||
| 	print '\tjmpl\t%g3, %g0' | ||||
| 	print '\tnop' | ||||
| #enddef | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| #!/usr/bin/env python | ||||
|  | ||||
| # $Id: gltable.py,v 1.2 2000/05/11 17:44:42 brianp Exp $ | ||||
| # $Id: gltable.py,v 1.2.6.1 2001/12/17 19:45:21 brianp Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.3 | ||||
| @@ -89,6 +89,7 @@ TypeTable = { | ||||
| 	'SizeI' : 'GLsizei', | ||||
| 	'StencilValue' : 'GLint', | ||||
| 	'String' : 'const GLubyte *', | ||||
| 	'Texture' : 'GLuint', | ||||
| 	'TexelInternalFormat' : 'GLint', | ||||
| 	'TextureComponentCount' : 'GLint', | ||||
| 	'WinCoord' : 'GLint', | ||||
| @@ -297,4 +298,4 @@ def PrintTail(): | ||||
|  | ||||
| PrintHead()	 | ||||
| PrintTableEntries() | ||||
| PrintTail() | ||||
| PrintTail() | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| # $Id: Makefile.X11,v 1.58 2001/09/23 16:11:26 brianp Exp $ | ||||
| # $Id: Makefile.X11,v 1.58.2.2 2001/12/14 16:33:06 kschultz Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  4.0 | ||||
| # Version:  4.0.1 | ||||
| # Copyright (C) 1995-2001  Brian Paul | ||||
|  | ||||
| # Makefile for core library | ||||
| @@ -200,69 +200,6 @@ OSMESA_OBJECTS = OSmesa/osmesa.o | ||||
| 	$(CC) -c -I. $(CFLAGS) $< -o $@ | ||||
|  | ||||
|  | ||||
| # UGH! These rules shouldn't be needed but IRIX's make (and others?) needs them | ||||
| X/glxapi.o: X/glxapi.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/fakeglx.o: X/fakeglx.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xfonts.o: X/xfonts.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xm_api.o: X/xm_api.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xm_dd.o: X/xm_dd.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xm_span.o: X/xm_span.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xm_line.o: X/xm_line.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| X/xm_tri.o: X/xm_tri.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| SVGA/svgamesa.o: SVGA/svgamesa.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| SVGA/svgamesa8.o: SVGA/svgamesa8.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| SVGA/svgamesa15.o: SVGA/svgamesa15.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| SVGA/svgamesa16.o: SVGA/svgamesa16.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| SVGA/svgamesa24.o: SVGA/svgamesa24.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| SVGA/svgamesa32.o: SVGA/svgamesa32.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| OSmesa/osmesa.o: OSmesa/osmesa.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| FX/fxapi.o: FX/fxapi.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxclip.o: FX/fxclip.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxdd.o: FX/fxdd.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxddspan.o: FX/fxddspan.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxddtex.o: FX/fxddtex.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxfastpath.o: FX/fxfastpath.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxpipeline.o: FX/fxpipeline.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxrender.o: FX/fxrender.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxsanity.o: FX/fxsanity.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxsetup.o: FX/fxsetup.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxtrifuncs.o: FX/fxtrifuncs.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxtexman.o: FX/fxtexman.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxvsetup.o: FX/fxvsetup.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| FX/fxglidew.o: FX/fxglidew.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| FX/X86/fx_3dnow_fastpath.o: FX/X86/fx_3dnow_fastpath.S | ||||
|  | ||||
| X86/x86.o: X86/x86.c | ||||
| @@ -279,26 +216,9 @@ X86/matypes.h: mtypes.h tnl/t_context.h X86/gen_matypes.c | ||||
| 	./X86/gen_matypes > X86/matypes.h | ||||
| 	rm -f X86/gen_matypes X86/*.o | ||||
|  | ||||
| $(ASM_SOURCES): X86/matypes.h | ||||
|  | ||||
| GGI/ggimesa.o: GGI/ggimesa.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| Trace/tr_2string.o: Trace/tr_2string.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_attrib.o: Trace/tr_attrib.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_context.o: Trace/tr_context.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_control.o: Trace/tr_control.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_error.o: Trace/tr_error.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_print.o: Trace/tr_print.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
| Trace/tr_wrapper.o: Trace/tr_wrapper.c | ||||
| 	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@ | ||||
|  | ||||
| # We have X86/matypes.h depend on X86/matypes.h so that if ASM_SOURCES | ||||
| # is empty we don't get an invalid Makefile. | ||||
| $(ASM_SOURCES) X86/matypes.h: X86/matypes.h | ||||
|  | ||||
|  | ||||
| ##### TARGETS ##### | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: config.h,v 1.34 2001/07/16 15:54:23 brianp Exp $ */ | ||||
| /* $Id: config.h,v 1.34.2.2 2001/11/28 17:18:20 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.5 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -134,6 +134,9 @@ | ||||
| /* GL_EXT_texture_filter_anisotropic */ | ||||
| #define MAX_TEXTURE_MAX_ANISOTROPY 16.0 | ||||
|  | ||||
| /* GL_EXT_texture_lod_bias */ | ||||
| #define MAX_TEXTURE_LOD_BIAS 4.0 | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
| @@ -170,7 +173,7 @@ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Bits per color channel (must be 8 at this time!) | ||||
|  * Bits per color channel:  8, 16 or 32 | ||||
|  */ | ||||
| #ifndef CHAN_BITS | ||||
| #define CHAN_BITS 8 | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: context.c,v 1.148 2001/10/18 08:04:57 joukj Exp $ */ | ||||
| /* $Id: context.c,v 1.148.2.1 2001/11/06 15:51:06 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -738,6 +738,7 @@ init_attrib_groups( GLcontext *ctx ) | ||||
|    ctx->Const.MaxCubeTextureLevels = MAX_CUBE_TEXTURE_LEVELS; | ||||
|    ctx->Const.MaxTextureUnits = MAX_TEXTURE_UNITS; | ||||
|    ctx->Const.MaxTextureMaxAnisotropy = MAX_TEXTURE_MAX_ANISOTROPY; | ||||
|    ctx->Const.MaxTextureLodBias = MAX_TEXTURE_LOD_BIAS; | ||||
|    ctx->Const.MaxArrayLockSize = MAX_ARRAY_LOCK_SIZE; | ||||
|    ctx->Const.SubPixelBits = SUB_PIXEL_BITS; | ||||
|    ctx->Const.MinPointSize = MIN_POINT_SIZE; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: dlist.c,v 1.76 2001/09/18 16:16:21 kschultz Exp $ */ | ||||
| /* $Id: dlist.c,v 1.76.2.1 2001/12/13 19:55:00 kschultz Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -3130,7 +3130,7 @@ static void save_TexParameterf( GLenum target, GLenum pname, GLfloat param ) | ||||
| } | ||||
|  | ||||
|  | ||||
| static void save_TexParameteri( GLenum target, GLenum pname, const GLint param ) | ||||
| static void save_TexParameteri( GLenum target, GLenum pname, GLint param ) | ||||
| { | ||||
|    GLfloat fparam[4]; | ||||
|    fparam[0] = (GLfloat) param; | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: drawpix.c,v 1.56 2001/06/26 21:15:35 brianp Exp $ */ | ||||
| /* $Id: drawpix.c,v 1.56.2.1 2001/12/13 19:12:30 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.5 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -72,20 +72,13 @@ _mesa_DrawPixels( GLsizei width, GLsizei height, | ||||
|    } | ||||
|    else if (ctx->RenderMode==GL_FEEDBACK) { | ||||
|       if (ctx->Current.RasterPosValid) { | ||||
| 	 GLfloat texcoord[4], invq; | ||||
|  | ||||
| 	 FLUSH_CURRENT(ctx, 0); | ||||
|          invq = 1.0F / ctx->Current.Texcoord[0][3]; | ||||
|          texcoord[0] = ctx->Current.Texcoord[0][0] * invq; | ||||
|          texcoord[1] = ctx->Current.Texcoord[0][1] * invq; | ||||
|          texcoord[2] = ctx->Current.Texcoord[0][2] * invq; | ||||
|          texcoord[3] = ctx->Current.Texcoord[0][3]; | ||||
|          FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_DRAW_PIXEL_TOKEN ); | ||||
|          _mesa_feedback_vertex( ctx, | ||||
| 				ctx->Current.RasterPos, | ||||
| 				ctx->Current.Color, | ||||
| 				ctx->Current.Index,  | ||||
| 				texcoord ); | ||||
| 				ctx->Current.RasterColor, | ||||
| 				ctx->Current.RasterIndex,  | ||||
| 				ctx->Current.RasterTexCoord ); | ||||
|       } | ||||
|    } | ||||
|    else if (ctx->RenderMode==GL_SELECT) { | ||||
| @@ -152,13 +145,15 @@ _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height, | ||||
| 			      type ); | ||||
|    } | ||||
|    else if (ctx->RenderMode == GL_FEEDBACK) { | ||||
|       FLUSH_CURRENT( ctx, 0 ); | ||||
|       FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_COPY_PIXEL_TOKEN ); | ||||
|       _mesa_feedback_vertex( ctx,  | ||||
| 			     ctx->Current.RasterPos, | ||||
| 			     ctx->Current.Color,  | ||||
| 			     ctx->Current.Index, | ||||
| 			     ctx->Current.Texcoord[0] ); | ||||
|       if (ctx->Current.RasterPosValid) { | ||||
| 	 FLUSH_CURRENT(ctx, 0); | ||||
|          FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_COPY_PIXEL_TOKEN ); | ||||
|          _mesa_feedback_vertex( ctx, | ||||
| 				ctx->Current.RasterPos, | ||||
| 				ctx->Current.RasterColor, | ||||
| 				ctx->Current.RasterIndex,  | ||||
| 				ctx->Current.RasterTexCoord ); | ||||
|       } | ||||
|    } | ||||
|    else if (ctx->RenderMode == GL_SELECT) { | ||||
|       _mesa_update_hitflag( ctx, ctx->Current.RasterPos[2] ); | ||||
| @@ -175,7 +170,6 @@ _mesa_Bitmap( GLsizei width, GLsizei height, | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); | ||||
|  | ||||
|  | ||||
|    /* Error checking */ | ||||
|    if (width < 0 || height < 0) { | ||||
|       _mesa_error( ctx, GL_INVALID_VALUE, "glBitmap" ); | ||||
| @@ -201,24 +195,15 @@ _mesa_Bitmap( GLsizei width, GLsizei height, | ||||
|       } | ||||
|    } | ||||
|    else if (ctx->RenderMode==GL_FEEDBACK) { | ||||
|       GLfloat color[4], texcoord[4], invq; | ||||
|  | ||||
|       color[0] = ctx->Current.RasterColor[0]; | ||||
|       color[1] = ctx->Current.RasterColor[1]; | ||||
|       color[2] = ctx->Current.RasterColor[2]; | ||||
|       color[3] = ctx->Current.RasterColor[3]; | ||||
|       if (ctx->Current.Texcoord[0][3] == 0.0) | ||||
|          invq = 1.0F; | ||||
|       else | ||||
|          invq = 1.0F / ctx->Current.RasterTexCoord[3]; | ||||
|       texcoord[0] = ctx->Current.RasterTexCoord[0] * invq; | ||||
|       texcoord[1] = ctx->Current.RasterTexCoord[1] * invq; | ||||
|       texcoord[2] = ctx->Current.RasterTexCoord[2] * invq; | ||||
|       texcoord[3] = ctx->Current.RasterTexCoord[3]; | ||||
|       FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_BITMAP_TOKEN ); | ||||
|       _mesa_feedback_vertex( ctx, | ||||
|                           ctx->Current.RasterPos, | ||||
| 			  color, ctx->Current.RasterIndex, texcoord ); | ||||
|       if (ctx->Current.RasterPosValid) { | ||||
| 	 FLUSH_CURRENT(ctx, 0); | ||||
|          FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_BITMAP_TOKEN ); | ||||
|          _mesa_feedback_vertex( ctx, | ||||
| 				ctx->Current.RasterPos, | ||||
| 				ctx->Current.RasterColor, | ||||
| 				ctx->Current.RasterIndex,  | ||||
| 				ctx->Current.RasterTexCoord ); | ||||
|       } | ||||
|    } | ||||
|    else if (ctx->RenderMode==GL_SELECT) { | ||||
|       /* Bitmaps don't generate selection hits.  See appendix B of 1.1 spec. */ | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: get.c,v 1.70 2001/10/22 22:45:18 brianp Exp $ */ | ||||
| /* $Id: get.c,v 1.69.2.3 2001/11/25 18:50:19 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  4.1 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -1258,6 +1258,11 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
| 	 *params = INT_TO_BOOL(ctx->Array.FogCoord.Stride); | ||||
| 	 break; | ||||
|  | ||||
|       /* GL_EXT_texture_lod_bias */ | ||||
|       case GL_MAX_TEXTURE_LOD_BIAS_EXT: | ||||
|          *params = FLOAT_TO_BOOL(ctx->Const.MaxTextureLodBias); | ||||
|          break; | ||||
|  | ||||
|       /* GL_EXT_texture_filter_anisotropic */ | ||||
|       case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: | ||||
|          if (ctx->Extensions.EXT_texture_filter_anisotropic) { | ||||
| @@ -1278,6 +1283,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = ctx->Multisample.SampleAlphaToCoverage; | ||||
| @@ -1286,6 +1292,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_ALPHA_TO_ONE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = ctx->Multisample.SampleAlphaToOne; | ||||
| @@ -1294,6 +1301,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = ctx->Multisample.SampleCoverage; | ||||
| @@ -1302,6 +1310,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_VALUE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = FLOAT_TO_BOOL(ctx->Multisample.SampleCoverageValue); | ||||
| @@ -1310,6 +1319,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_INVERT_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = ctx->Multisample.SampleCoverageInvert; | ||||
| @@ -1318,6 +1328,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_BUFFERS_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = 0; /* XXX fix someday */ | ||||
| @@ -1326,6 +1337,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLES_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = 0; /* XXX fix someday */ | ||||
| @@ -1334,6 +1346,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|  | ||||
|       /* GL_IBM_rasterpos_clip */ | ||||
|       case GL_RASTER_POSITION_UNCLIPPED_IBM: | ||||
| @@ -1344,6 +1357,7 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetBoolean"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|  | ||||
|       /* GL_MESA_sprite_point */ | ||||
|       case GL_SPRITE_POINT_MESA: | ||||
| @@ -2548,6 +2562,11 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
| 	 *params = (GLdouble) ctx->Array.FogCoord.Stride; | ||||
| 	 break; | ||||
|  | ||||
|       /* GL_EXT_texture_lod_bias */ | ||||
|       case GL_MAX_TEXTURE_LOD_BIAS_EXT: | ||||
|          *params = (GLdouble) ctx->Const.MaxTextureLodBias; | ||||
|          break; | ||||
|  | ||||
|       /* GL_EXT_texture_filter_anisotropic */ | ||||
|       case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: | ||||
|          if (ctx->Extensions.EXT_texture_filter_anisotropic) { | ||||
| @@ -2568,6 +2587,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLdouble) ctx->Multisample.SampleAlphaToCoverage; | ||||
| @@ -2576,6 +2596,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_ALPHA_TO_ONE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLdouble) ctx->Multisample.SampleAlphaToOne; | ||||
| @@ -2584,6 +2605,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLdouble) ctx->Multisample.SampleCoverage; | ||||
| @@ -2592,6 +2614,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_VALUE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = ctx->Multisample.SampleCoverageValue; | ||||
| @@ -2600,6 +2623,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_INVERT_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLdouble) ctx->Multisample.SampleCoverageInvert; | ||||
| @@ -2608,6 +2632,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_BUFFERS_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = 0.0; /* XXX fix someday */ | ||||
| @@ -2616,6 +2641,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLES_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = 0.0; /* XXX fix someday */ | ||||
| @@ -2624,6 +2650,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|  | ||||
|       /* GL_IBM_rasterpos_clip */ | ||||
|       case GL_RASTER_POSITION_UNCLIPPED_IBM: | ||||
| @@ -2634,6 +2661,7 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|  | ||||
|       /* GL_MESA_sprite_point */ | ||||
|       case GL_SPRITE_POINT_MESA: | ||||
| @@ -3819,6 +3847,11 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
| 	 *params = (GLfloat) ctx->Array.FogCoord.Stride; | ||||
| 	 break; | ||||
|  | ||||
|       /* GL_EXT_texture_lod_bias */ | ||||
|       case GL_MAX_TEXTURE_LOD_BIAS_EXT: | ||||
|          *params = ctx->Const.MaxTextureLodBias; | ||||
|          break; | ||||
|  | ||||
|       /* GL_EXT_texture_filter_anisotropic */ | ||||
|       case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: | ||||
|          if (ctx->Extensions.EXT_texture_filter_anisotropic) { | ||||
| @@ -3839,6 +3872,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|             GET_FLOAT_ERROR; | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLfloat) ctx->Multisample.SampleAlphaToCoverage; | ||||
| @@ -3847,6 +3881,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|             GET_FLOAT_ERROR; | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_ALPHA_TO_ONE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLfloat) ctx->Multisample.SampleAlphaToOne; | ||||
| @@ -3855,6 +3890,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|             GET_FLOAT_ERROR; | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLfloat) ctx->Multisample.SampleCoverage; | ||||
| @@ -3863,6 +3899,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|             GET_FLOAT_ERROR; | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_VALUE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = ctx->Multisample.SampleCoverageValue; | ||||
| @@ -3871,6 +3908,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|             GET_FLOAT_ERROR; | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_INVERT_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLfloat) ctx->Multisample.SampleCoverageInvert; | ||||
| @@ -3879,6 +3917,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|             GET_FLOAT_ERROR; | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_BUFFERS_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = 0.0; /* XXX fix someday */ | ||||
| @@ -3887,6 +3926,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|             GET_FLOAT_ERROR; | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLES_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = 0.0; /* XXX fix someday */ | ||||
| @@ -3895,6 +3935,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|             GET_FLOAT_ERROR; | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|  | ||||
|       /* GL_IBM_rasterpos_clip */ | ||||
|       case GL_RASTER_POSITION_UNCLIPPED_IBM: | ||||
| @@ -3905,6 +3946,7 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|             GET_FLOAT_ERROR; | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|  | ||||
|       /* GL_MESA_sprite_point */ | ||||
|       case GL_SPRITE_POINT_MESA: | ||||
| @@ -5132,6 +5174,11 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|          } | ||||
| 	 break; | ||||
|  | ||||
|       /* GL_EXT_texture_lod_bias */ | ||||
|       case GL_MAX_TEXTURE_LOD_BIAS_EXT: | ||||
|          *params = (GLint) ctx->Const.MaxTextureLodBias; | ||||
|          break; | ||||
|  | ||||
|       /* GL_EXT_texture_filter_anisotropic */ | ||||
|       case GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: | ||||
|          if (ctx->Extensions.EXT_texture_filter_anisotropic) { | ||||
| @@ -5152,6 +5199,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_ALPHA_TO_COVERAGE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLint) ctx->Multisample.SampleAlphaToCoverage; | ||||
| @@ -5160,6 +5208,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_ALPHA_TO_ONE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLint) ctx->Multisample.SampleAlphaToOne; | ||||
| @@ -5168,6 +5217,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLint) ctx->Multisample.SampleCoverage; | ||||
| @@ -5176,6 +5226,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_VALUE_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLint) ctx->Multisample.SampleCoverageValue; | ||||
| @@ -5184,6 +5235,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_COVERAGE_INVERT_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = (GLint) ctx->Multisample.SampleCoverageInvert; | ||||
| @@ -5192,6 +5244,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLE_BUFFERS_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = 0; /* XXX fix someday */ | ||||
| @@ -5200,6 +5253,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|       case GL_SAMPLES_ARB: | ||||
|          if (ctx->Extensions.ARB_multisample) { | ||||
|             *params = 0; /* XXX fix someday */ | ||||
| @@ -5208,6 +5262,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|  | ||||
|       /* GL_IBM_rasterpos_clip */ | ||||
|       case GL_RASTER_POSITION_UNCLIPPED_IBM: | ||||
| @@ -5218,6 +5273,7 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv"); | ||||
|             return; | ||||
|          } | ||||
|          break; | ||||
|  | ||||
|       /* GL_MESA_sprite_point */ | ||||
|       case GL_SPRITE_POINT_MESA: | ||||
| @@ -5310,8 +5366,8 @@ _mesa_GetString( GLenum name ) | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    static const char *vendor = "Brian Paul"; | ||||
|    static const char *renderer = "Mesa"; | ||||
|    static const char *version_1_2 = "1.2 Mesa 4.1"; | ||||
|    static const char *version_1_3 = "1.3 Mesa 4.1"; | ||||
|    static const char *version_1_2 = "1.2 Mesa 4.0.1"; | ||||
|    static const char *version_1_3 = "1.3 Mesa 4.0.1"; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, 0); | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: hash.c,v 1.10 2001/03/12 00:48:38 gareth Exp $ */ | ||||
| /* $Id: hash.c,v 1.10.2.1 2001/11/02 00:56:45 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -64,7 +64,11 @@ struct _mesa_HashTable { | ||||
|  */ | ||||
| struct _mesa_HashTable *_mesa_NewHashTable(void) | ||||
| { | ||||
|    return CALLOC_STRUCT(_mesa_HashTable); | ||||
|    struct _mesa_HashTable *table = CALLOC_STRUCT(_mesa_HashTable); | ||||
|    if (table) { | ||||
|       _glthread_INIT_MUTEX(table->Mutex); | ||||
|    } | ||||
|    return table; | ||||
| } | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| DESCRIPTION 'Mesa (OpenGL work-alike) for Win32' | ||||
| VERSION 3.5 | ||||
| VERSION 4.0 | ||||
|  | ||||
| EXPORTS | ||||
| 	glAccum | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: mtypes.h,v 1.51 2001/10/17 13:31:07 brianp Exp $ */ | ||||
| /* $Id: mtypes.h,v 1.51.2.1 2001/11/06 15:51:07 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -1165,6 +1165,7 @@ struct gl_constants { | ||||
|    GLint MaxCubeTextureLevels; | ||||
|    GLuint MaxTextureUnits; | ||||
|    GLfloat MaxTextureMaxAnisotropy;	/* GL_EXT_texture_filter_anisotropic */ | ||||
|    GLfloat MaxTextureLodBias;           /* GL_EXT_texture_lod_bias */ | ||||
|    GLuint MaxArrayLockSize; | ||||
|    GLint SubPixelBits; | ||||
|    GLfloat MinPointSize, MaxPointSize;		/* aliased */ | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: teximage.c,v 1.104 2001/09/18 23:06:14 kschultz Exp $ */ | ||||
| /* $Id: teximage.c,v 1.104.2.1 2001/11/03 04:10:08 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -665,7 +665,7 @@ texture_error_check( GLcontext *ctx, GLenum target, | ||||
|           _mesa_error( ctx, GL_INVALID_ENUM, "glTexImage2D(target)" ); | ||||
|           return GL_TRUE; | ||||
|       } | ||||
|       if (target == GL_PROXY_TEXTURE_2D && target == GL_TEXTURE_2D) | ||||
|       if (target == GL_PROXY_TEXTURE_2D || target == GL_TEXTURE_2D) | ||||
|          maxLevels = ctx->Const.MaxTextureLevels; | ||||
|       else | ||||
|          maxLevels = ctx->Const.MaxCubeTextureLevels; | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: texstate.c,v 1.58 2001/10/17 13:31:07 brianp Exp $ */ | ||||
| /* $Id: texstate.c,v 1.58.2.2 2001/12/13 16:02:32 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.5 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -413,7 +413,8 @@ _mesa_TexEnvfv( GLenum target, GLenum pname, const GLfloat *param ) | ||||
| 	 if (texUnit->LodBias == param[0]) | ||||
| 	    return; | ||||
| 	 FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
| 	 texUnit->LodBias = param[0]; | ||||
|          texUnit->LodBias = CLAMP(param[0], -ctx->Const.MaxTextureLodBias, | ||||
|                                   ctx->Const.MaxTextureLodBias); | ||||
| 	 break; | ||||
|       default: | ||||
|          TE_ERROR(GL_INVALID_ENUM, "glTexEnv(pname=%s)", pname); | ||||
| @@ -896,6 +897,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|              || eparam==GL_LINEAR_MIPMAP_NEAREST | ||||
|              || eparam==GL_NEAREST_MIPMAP_LINEAR | ||||
|              || eparam==GL_LINEAR_MIPMAP_LINEAR) { | ||||
|             FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|             texObj->MinFilter = eparam; | ||||
|          } | ||||
|          else { | ||||
| @@ -909,6 +911,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|             return; | ||||
|  | ||||
|          if (eparam==GL_NEAREST || eparam==GL_LINEAR) { | ||||
|             FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|             texObj->MagFilter = eparam; | ||||
|          } | ||||
|          else { | ||||
| @@ -926,6 +929,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|               ctx->Extensions.ARB_texture_border_clamp) || | ||||
|              (eparam == GL_MIRRORED_REPEAT_ARB && | ||||
|               ctx->Extensions.ARB_texture_mirrored_repeat)) { | ||||
|             FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|             texObj->WrapS = eparam; | ||||
|          } | ||||
|          else { | ||||
| @@ -943,6 +947,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|               ctx->Extensions.ARB_texture_border_clamp) || | ||||
|              (eparam == GL_MIRRORED_REPEAT_ARB && | ||||
|               ctx->Extensions.ARB_texture_mirrored_repeat)) { | ||||
|             FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|             texObj->WrapT = eparam; | ||||
|          } | ||||
|          else { | ||||
| @@ -960,6 +965,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|               ctx->Extensions.ARB_texture_border_clamp) || | ||||
|              (eparam == GL_MIRRORED_REPEAT_ARB && | ||||
|               ctx->Extensions.ARB_texture_mirrored_repeat)) { | ||||
|             FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|             texObj->WrapR = eparam; | ||||
|          } | ||||
|          else { | ||||
| @@ -967,15 +973,22 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|          } | ||||
|          break; | ||||
|       case GL_TEXTURE_BORDER_COLOR: | ||||
|          FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|          UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[0], params[0]); | ||||
|          UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[1], params[1]); | ||||
|          UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[2], params[2]); | ||||
|          UNCLAMPED_FLOAT_TO_CHAN(texObj->BorderColor[3], params[3]); | ||||
|          break; | ||||
|       case GL_TEXTURE_MIN_LOD: | ||||
|          if (texObj->MinLod == params[0]) | ||||
|             return; | ||||
|          FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|          texObj->MinLod = params[0]; | ||||
|          break; | ||||
|       case GL_TEXTURE_MAX_LOD: | ||||
|          if (texObj->MaxLod == params[0]) | ||||
|             return; | ||||
|          FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|          texObj->MaxLod = params[0]; | ||||
|          break; | ||||
|       case GL_TEXTURE_BASE_LEVEL: | ||||
| @@ -983,6 +996,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_VALUE, "glTexParameter(param)" ); | ||||
|             return; | ||||
|          } | ||||
|          FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|          texObj->BaseLevel = (GLint) params[0]; | ||||
|          break; | ||||
|       case GL_TEXTURE_MAX_LEVEL: | ||||
| @@ -990,10 +1004,12 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|             _mesa_error(ctx, GL_INVALID_VALUE, "glTexParameter(param)" ); | ||||
|             return; | ||||
|          } | ||||
|          FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|          texObj->MaxLevel = (GLint) params[0]; | ||||
|          break; | ||||
|       case GL_TEXTURE_PRIORITY: | ||||
|          /* (keithh@netcomuk.co.uk) */ | ||||
|          FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|          texObj->Priority = CLAMP( params[0], 0.0F, 1.0F ); | ||||
|          break; | ||||
|       case GL_TEXTURE_MAX_ANISOTROPY_EXT: | ||||
| @@ -1002,6 +1018,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
| 	       _mesa_error(ctx, GL_INVALID_VALUE, "glTexParameter(param)" ); | ||||
| 	       return; | ||||
| 	    } | ||||
|             FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|             texObj->MaxAnisotropy = params[0]; | ||||
|          } | ||||
|          else { | ||||
| @@ -1012,6 +1029,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|          break; | ||||
|       case GL_TEXTURE_COMPARE_SGIX: | ||||
|          if (ctx->Extensions.SGIX_shadow) { | ||||
|             FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|             texObj->CompareFlag = params[0] ? GL_TRUE : GL_FALSE; | ||||
|          } | ||||
|          else { | ||||
| @@ -1025,6 +1043,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|             GLenum op = (GLenum) params[0]; | ||||
|             if (op == GL_TEXTURE_LEQUAL_R_SGIX || | ||||
|                 op == GL_TEXTURE_GEQUAL_R_SGIX) { | ||||
|                FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|                texObj->CompareOperator = op; | ||||
|             } | ||||
|             else { | ||||
| @@ -1039,6 +1058,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|          break; | ||||
|       case GL_SHADOW_AMBIENT_SGIX: | ||||
|          if (ctx->Extensions.SGIX_shadow_ambient) { | ||||
|             FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|             UNCLAMPED_FLOAT_TO_CHAN(texObj->ShadowAmbient, params[0]); | ||||
|          } | ||||
|          else { | ||||
| @@ -1049,6 +1069,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|          break; | ||||
|       case GL_GENERATE_MIPMAP_SGIS: | ||||
|          if (ctx->Extensions.SGIS_generate_mipmap) { | ||||
|             FLUSH_VERTICES(ctx, _NEW_TEXTURE); | ||||
|             texObj->GenerateMipmap = params[0] ? GL_TRUE : GL_FALSE; | ||||
|          } | ||||
|          else { | ||||
| @@ -1066,7 +1087,6 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|          return; | ||||
|    } | ||||
|  | ||||
|    ctx->NewState |= _NEW_TEXTURE; | ||||
|    texObj->Complete = GL_FALSE; | ||||
|  | ||||
|    if (ctx->Driver.TexParameter) { | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: vtxfmt_tmp.h,v 1.4 2001/03/12 00:48:39 gareth Exp $ */ | ||||
| /* $Id: vtxfmt_tmp.h,v 1.4.2.1 2001/11/26 23:45:36 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.5 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -136,13 +136,13 @@ static void TAG(EvalPoint2)( GLint a, GLint b ) | ||||
| static void TAG(FogCoordfEXT)( GLfloat a ) | ||||
| { | ||||
|    PRE_LOOPBACK( FogCoordfEXT ); | ||||
|    glFogCoordfEXT( a ); | ||||
|    _glapi_Dispatch->FogCoordfEXT( a ); | ||||
| } | ||||
|  | ||||
| static void TAG(FogCoordfvEXT)( const GLfloat *v ) | ||||
| { | ||||
|    PRE_LOOPBACK( FogCoordfvEXT ); | ||||
|    glFogCoordfvEXT( v ); | ||||
|    _glapi_Dispatch->FogCoordfvEXT( v ); | ||||
| } | ||||
|  | ||||
| static void TAG(Indexi)( GLint a ) | ||||
| @@ -228,25 +228,25 @@ static void TAG(Normal3fv)( const GLfloat *v ) | ||||
| static void TAG(SecondaryColor3fEXT)( GLfloat a, GLfloat b, GLfloat c ) | ||||
| { | ||||
|    PRE_LOOPBACK( SecondaryColor3fEXT ); | ||||
|    glSecondaryColor3fEXT( a, b, c ); | ||||
|    _glapi_Dispatch->SecondaryColor3fEXT( a, b, c ); | ||||
| } | ||||
|  | ||||
| static void TAG(SecondaryColor3fvEXT)( const GLfloat *v ) | ||||
| { | ||||
|    PRE_LOOPBACK( SecondaryColor3fvEXT ); | ||||
|    glSecondaryColor3fvEXT( v ); | ||||
|    _glapi_Dispatch->SecondaryColor3fvEXT( v ); | ||||
| } | ||||
|  | ||||
| static void TAG(SecondaryColor3ubEXT)( GLubyte a, GLubyte b, GLubyte c ) | ||||
| { | ||||
|    PRE_LOOPBACK( SecondaryColor3ubEXT ); | ||||
|    glSecondaryColor3ubEXT( a, b, c ); | ||||
|    _glapi_Dispatch->SecondaryColor3ubEXT( a, b, c ); | ||||
| } | ||||
|  | ||||
| static void TAG(SecondaryColor3ubvEXT)( const GLubyte *v ) | ||||
| { | ||||
|    PRE_LOOPBACK( SecondaryColor3ubvEXT ); | ||||
|    glSecondaryColor3ubvEXT( v ); | ||||
|    _glapi_Dispatch->SecondaryColor3ubvEXT( v ); | ||||
| } | ||||
|  | ||||
| static void TAG(TexCoord1f)( GLfloat a ) | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,4 +1,4 @@ | ||||
| /* $Id: s_aalinetemp.h,v 1.14 2001/09/19 20:30:44 kschultz Exp $ */ | ||||
| /* $Id: s_aalinetemp.h,v 1.14.2.1 2001/12/05 10:22:55 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -162,7 +162,7 @@ NAME(line)(GLcontext *ctx, const SWvertex *v0, const SWvertex *v1) | ||||
|    line.len = (GLfloat) sqrt(line.dx * line.dx + line.dy * line.dy); | ||||
|    line.halfWidth = 0.5F * ctx->Line.Width; | ||||
|  | ||||
|    if (line.len == 0.0) | ||||
|    if (line.len == 0.0 || IS_INF_OR_NAN(line.len)) | ||||
|       return; | ||||
|  | ||||
|    line.xAdj = line.dx / line.len * line.halfWidth; | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: s_aatriangle.c,v 1.19 2001/09/19 20:30:44 kschultz Exp $ */ | ||||
| /* $Id: s_aatriangle.c,v 1.19.2.1 2001/11/13 00:24:51 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.5 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -142,27 +142,43 @@ static GLfloat | ||||
| compute_coveragef(const GLfloat v0[3], const GLfloat v1[3], | ||||
|                   const GLfloat v2[3], GLint winx, GLint winy) | ||||
| { | ||||
| #define B 0.125 | ||||
|    /* Given a position [0,3]x[0,3] return the sub-pixel sample position. | ||||
|     * Contributed by Ray Tice. | ||||
|     * | ||||
|     * Jitter sample positions - | ||||
|     * - average should be .5 in x & y for each column | ||||
|     * - each of the 16 rows and columns should be used once | ||||
|     * - the rectangle formed by the first four points | ||||
|     *   should contain the other points | ||||
|     * - the distrubition should be fairly even in any given direction | ||||
|     * | ||||
|     * The pattern drawn below isn't optimal, but it's better than a regular | ||||
|     * grid.  In the drawing, the center of each subpixel is surrounded by | ||||
|     * four dots.  The "x" marks the jittered position relative to the | ||||
|     * subpixel center. | ||||
|     */ | ||||
| #define POS(a, b) (0.5+a*4+b)/16 | ||||
|    static const GLfloat samples[16][2] = { | ||||
|       /* start with the four corners */ | ||||
|       { 0.00+B, 0.00+B }, | ||||
|       { 0.75+B, 0.00+B }, | ||||
|       { 0.00+B, 0.75+B }, | ||||
|       { 0.75+B, 0.75+B }, | ||||
|       { POS(0, 2), POS(0, 0) }, | ||||
|       { POS(3, 3), POS(0, 2) }, | ||||
|       { POS(0, 0), POS(3, 1) }, | ||||
|       { POS(3, 1), POS(3, 3) }, | ||||
|       /* continue with interior samples */ | ||||
|       { 0.25+B, 0.00+B }, | ||||
|       { 0.50+B, 0.00+B }, | ||||
|       { 0.00+B, 0.25+B }, | ||||
|       { 0.25+B, 0.25+B }, | ||||
|       { 0.50+B, 0.25+B }, | ||||
|       { 0.75+B, 0.25+B }, | ||||
|       { 0.00+B, 0.50+B }, | ||||
|       { 0.25+B, 0.50+B }, | ||||
|       { 0.50+B, 0.50+B }, | ||||
|       { 0.75+B, 0.50+B }, | ||||
|       { 0.25+B, 0.75+B }, | ||||
|       { 0.50+B, 0.75+B } | ||||
|       { POS(1, 1), POS(0, 1) }, | ||||
|       { POS(2, 0), POS(0, 3) }, | ||||
|       { POS(0, 3), POS(1, 3) }, | ||||
|       { POS(1, 2), POS(1, 0) }, | ||||
|       { POS(2, 3), POS(1, 2) }, | ||||
|       { POS(3, 2), POS(1, 1) }, | ||||
|       { POS(0, 1), POS(2, 2) }, | ||||
|       { POS(1, 0), POS(2, 1) }, | ||||
|       { POS(2, 1), POS(2, 3) }, | ||||
|       { POS(3, 0), POS(2, 0) }, | ||||
|       { POS(1, 3), POS(3, 0) }, | ||||
|       { POS(2, 2), POS(3, 2) } | ||||
|    }; | ||||
|  | ||||
|    const GLfloat x = (GLfloat) winx; | ||||
|    const GLfloat y = (GLfloat) winy; | ||||
|    const GLfloat dx0 = v1[0] - v0[0]; | ||||
| @@ -226,28 +242,25 @@ static GLint | ||||
| compute_coveragei(const GLfloat v0[3], const GLfloat v1[3], | ||||
|                   const GLfloat v2[3], GLint winx, GLint winy) | ||||
| { | ||||
|    /* NOTE: 15 samples instead of 16. | ||||
|     * A better sample distribution could be used. | ||||
|     */ | ||||
|    /* NOTE: 15 samples instead of 16. */ | ||||
|    static const GLfloat samples[15][2] = { | ||||
|       /* start with the four corners */ | ||||
|       { 0.00+B, 0.00+B }, | ||||
|       { 0.75+B, 0.00+B }, | ||||
|       { 0.00+B, 0.75+B }, | ||||
|       { 0.75+B, 0.75+B }, | ||||
|       { POS(0, 2), POS(0, 0) }, | ||||
|       { POS(3, 3), POS(0, 2) }, | ||||
|       { POS(0, 0), POS(3, 1) }, | ||||
|       { POS(3, 1), POS(3, 3) }, | ||||
|       /* continue with interior samples */ | ||||
|       { 0.25+B, 0.00+B }, | ||||
|       { 0.50+B, 0.00+B }, | ||||
|       { 0.00+B, 0.25+B }, | ||||
|       { 0.25+B, 0.25+B }, | ||||
|       { 0.50+B, 0.25+B }, | ||||
|       { 0.75+B, 0.25+B }, | ||||
|       { 0.00+B, 0.50+B }, | ||||
|       { 0.25+B, 0.50+B }, | ||||
|       /*{ 0.50, 0.50 },*/ | ||||
|       { 0.75+B, 0.50+B }, | ||||
|       { 0.25+B, 0.75+B }, | ||||
|       { 0.50+B, 0.75+B } | ||||
|       { POS(1, 1), POS(0, 1) }, | ||||
|       { POS(2, 0), POS(0, 3) }, | ||||
|       { POS(0, 3), POS(1, 3) }, | ||||
|       { POS(1, 2), POS(1, 0) }, | ||||
|       { POS(2, 3), POS(1, 2) }, | ||||
|       { POS(3, 2), POS(1, 1) }, | ||||
|       { POS(0, 1), POS(2, 2) }, | ||||
|       { POS(1, 0), POS(2, 1) }, | ||||
|       { POS(2, 1), POS(2, 3) }, | ||||
|       { POS(3, 0), POS(2, 0) }, | ||||
|       { POS(1, 3), POS(3, 0) } | ||||
|    }; | ||||
|    const GLfloat x = (GLfloat) winx; | ||||
|    const GLfloat y = (GLfloat) winy; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: s_aatritemp.h,v 1.21 2001/09/19 20:30:44 kschultz Exp $ */ | ||||
| /* $Id: s_aatritemp.h,v 1.21.2.1 2001/12/05 10:22:55 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -149,7 +149,7 @@ | ||||
|       const GLfloat area = majDx * botDy - botDx * majDy; | ||||
|       ltor = (GLboolean) (area < 0.0F); | ||||
|       /* Do backface culling */ | ||||
|       if (area * bf < 0 || area * area < .0025) | ||||
|       if (area * bf < 0 || area == 0 || IS_INF_OR_NAN(area)) | ||||
| 	 return; | ||||
|    } | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: s_blend.c,v 1.9 2001/07/16 20:45:55 brianp Exp $ */ | ||||
| /* $Id: s_blend.c,v 1.9.2.1 2001/12/13 16:14:17 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.5 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -25,7 +25,6 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
|  | ||||
| #include "glheader.h" | ||||
| #include "context.h" | ||||
| #include "macros.h" | ||||
| @@ -46,6 +45,48 @@ | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Special case for glBlendFunc(GL_ZERO, GL_ONE) | ||||
|  */ | ||||
| static void _BLENDAPI | ||||
| blend_noop( GLcontext *ctx, GLuint n, const GLubyte mask[], | ||||
|             GLchan rgba[][4], CONST GLchan dest[][4] ) | ||||
| { | ||||
|    int i; | ||||
|    ASSERT(ctx->Color.BlendEquation==GL_FUNC_ADD_EXT); | ||||
|    ASSERT(ctx->Color.BlendSrcRGB==GL_ZERO); | ||||
|    ASSERT(ctx->Color.BlendDstRGB==GL_ONE); | ||||
|    (void) ctx; | ||||
|  | ||||
|    for (i = 0; i < n; i++) { | ||||
|       if (mask[i]) { | ||||
|          rgba[i][RCOMP] = dest[i][RCOMP]; | ||||
|          rgba[i][GCOMP] = dest[i][GCOMP]; | ||||
|          rgba[i][BCOMP] = dest[i][BCOMP]; | ||||
|          rgba[i][ACOMP] = dest[i][ACOMP]; | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Special case for glBlendFunc(GL_ONE, GL_ZERO) | ||||
|  */ | ||||
| static void _BLENDAPI | ||||
| blend_replace( GLcontext *ctx, GLuint n, const GLubyte mask[], | ||||
|                GLchan rgba[][4], CONST GLchan dest[][4] ) | ||||
| { | ||||
|    ASSERT(ctx->Color.BlendEquation==GL_FUNC_ADD_EXT); | ||||
|    ASSERT(ctx->Color.BlendSrcRGB==GL_ONE); | ||||
|    ASSERT(ctx->Color.BlendDstRGB==GL_ZERO); | ||||
|    (void) ctx; | ||||
|    (void) n; | ||||
|    (void) mask; | ||||
|    (void) rgba; | ||||
|    (void) dest; | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Common transparency blending mode. | ||||
|  */ | ||||
| @@ -341,7 +382,7 @@ blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[], | ||||
|             default: | ||||
|                /* this should never happen */ | ||||
|                _mesa_problem(ctx, "Bad blend source RGB factor in do_blend"); | ||||
| 	       return; | ||||
|                return; | ||||
|          } | ||||
|  | ||||
|          /* Source Alpha factor */ | ||||
| @@ -611,6 +652,12 @@ void _swrast_choose_blend_func( GLcontext *ctx ) | ||||
|    else if (eq==GL_MAX_EXT) { | ||||
|       SWRAST_CONTEXT(ctx)->BlendFunc = blend_max; | ||||
|    } | ||||
|    else if (eq==GL_FUNC_ADD_EXT && srcRGB == GL_ZERO && dstRGB == GL_ONE) { | ||||
|       SWRAST_CONTEXT(ctx)->BlendFunc = blend_noop; | ||||
|    } | ||||
|    else if (eq==GL_FUNC_ADD_EXT && srcRGB == GL_ONE && dstRGB == GL_ZERO) { | ||||
|       SWRAST_CONTEXT(ctx)->BlendFunc = blend_replace; | ||||
|    } | ||||
|    else { | ||||
|       SWRAST_CONTEXT(ctx)->BlendFunc = blend_general; | ||||
|    } | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: s_lines.c,v 1.21 2001/08/20 21:45:15 brianp Exp $ */ | ||||
| /* $Id: s_lines.c,v 1.21.2.1 2001/11/06 16:00:58 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -995,7 +995,7 @@ _mesa_print_line_function(GLcontext *ctx) | ||||
|    else if (swrast->Line == flat_multitextured_line) | ||||
|       printf("flat_multitextured_line\n"); | ||||
|    else | ||||
|       printf("Driver func %p\n", swrast->Line); | ||||
|       printf("Driver func %p\n", (void *) swrast->Line); | ||||
| } | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: s_linetemp.h,v 1.9 2001/07/13 20:07:37 brianp Exp $ */ | ||||
| /* $Id: s_linetemp.h,v 1.9.2.1 2001/12/05 10:22:55 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -180,6 +180,13 @@ | ||||
|    } | ||||
| #endif | ||||
|  | ||||
|    /* Cull primitives with malformed coordinates. | ||||
|     */ | ||||
|    { | ||||
|       float tmp = vert0->win[0] + vert0->win[1] + vert1->win[0] + vert1->win[1]; | ||||
|       if (IS_INF_OR_NAN(tmp)) | ||||
| 	 return; | ||||
|    } | ||||
|  | ||||
| /* | ||||
|  * Despite being clipped to the view volume, the line's window coordinates | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: s_pointtemp.h,v 1.10 2001/09/19 20:30:44 kschultz Exp $ */ | ||||
| /* $Id: s_pointtemp.h,v 1.10.2.1 2001/12/05 10:22:55 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -119,6 +119,14 @@ NAME ( GLcontext *ctx, const SWvertex *vert ) | ||||
|    size = ctx->Point._Size; | ||||
| #endif | ||||
|  | ||||
|    /* Cull primitives with malformed coordinates. | ||||
|     */ | ||||
|    { | ||||
|       float tmp = vert->win[0] + vert->win[1]; | ||||
|       if (IS_INF_OR_NAN(tmp)) | ||||
| 	 return; | ||||
|    } | ||||
|  | ||||
| #if FLAGS & SPRITE | ||||
|    { | ||||
|       SWcontext *swctx = SWRAST_CONTEXT(ctx); | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: s_triangle.c,v 1.39 2001/09/19 22:21:13 brianp Exp $ */ | ||||
| /* $Id: s_triangle.c,v 1.39.2.1 2001/11/28 16:11:14 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -92,7 +92,7 @@ static void flat_ci_triangle( GLcontext *ctx, | ||||
|       span.fog += span.fogStep;						\ | ||||
|    }									\ | ||||
|    _mesa_write_monoindex_span(ctx, span.count, span.x, span.y,		\ | ||||
| 	                      zSpan, fogSpan, v0->index, NULL, GL_POLYGON ); | ||||
| 	                      zSpan, fogSpan, v2->index, NULL, GL_POLYGON ); | ||||
|  | ||||
| #include "s_tritemp.h" | ||||
| } | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: s_tritemp.h,v 1.27 2001/09/19 20:30:44 kschultz Exp $ */ | ||||
| /* $Id: s_tritemp.h,v 1.27.2.1 2001/12/05 10:22:55 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -199,7 +199,7 @@ | ||||
|       if (area * bf < 0.0) | ||||
|          return; | ||||
|  | ||||
|       if (area == 0.0F) | ||||
|       if (area == 0.0F || IS_INF_OR_NAN(area)) | ||||
|          return; | ||||
|  | ||||
|       oneOverArea = 1.0F / area; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: t_array_api.c,v 1.19 2001/09/14 17:00:42 brianp Exp $ */ | ||||
| /* $Id: t_array_api.c,v 1.19.2.2 2001/11/29 15:15:11 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -133,8 +133,6 @@ _tnl_DrawArrays(GLenum mode, GLint start, GLsizei count) | ||||
|             start = ctx->Array.LockFirst; | ||||
| 	 if (start + count > (GLint) ctx->Array.LockCount) | ||||
|             count = ctx->Array.LockCount - start; | ||||
| 	 if (start >= count) | ||||
|             return; | ||||
|  | ||||
| 	 /* Locked drawarrays.  Reuse any previously transformed data. | ||||
| 	  */ | ||||
| @@ -160,7 +158,7 @@ _tnl_DrawArrays(GLenum mode, GLint start, GLsizei count) | ||||
|       } | ||||
|    } | ||||
|    else { | ||||
|       int bufsz = (ctx->Const.MaxArrayLockSize - 4) & ~3; | ||||
|       int bufsz = 256;		/* use a small buffer for cache goodness */ | ||||
|       int j, nr; | ||||
|       int minimum, modulo, skip; | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: t_eval_api.c,v 1.7 2001/05/14 09:00:51 keithw Exp $ */ | ||||
| /* $Id: t_eval_api.c,v 1.7.2.1 2001/12/03 17:39:09 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -103,9 +103,10 @@ _tnl_exec_EvalMesh1( GLenum mode, GLint i1, GLint i2 ) | ||||
|       struct immediate *im = TNL_CURRENT_IM(ctx); | ||||
|  | ||||
|       if (compiling) { | ||||
| 	 struct immediate *IM = _tnl_alloc_immediate( ctx ); | ||||
| 	 FLUSH_VERTICES( ctx, 0 ); | ||||
| 	 SET_IMMEDIATE( ctx, _tnl_alloc_immediate( ctx ) ); | ||||
| 	 TNL_CURRENT_IM(ctx)->ref_count++;	  | ||||
| 	 SET_IMMEDIATE( ctx, IM ); | ||||
| 	 IM->ref_count++;	  | ||||
| 	 ctx->CompileFlag = GL_FALSE; | ||||
|       } | ||||
|  | ||||
| @@ -161,9 +162,10 @@ _tnl_exec_EvalMesh2( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 ) | ||||
|       struct immediate *im = TNL_CURRENT_IM(ctx); | ||||
|  | ||||
|       if (compiling) { | ||||
| 	 struct immediate *IM =  _tnl_alloc_immediate( ctx ); | ||||
| 	 FLUSH_VERTICES( ctx, 0 ); | ||||
| 	 SET_IMMEDIATE( ctx, _tnl_alloc_immediate( ctx ) ); | ||||
| 	 TNL_CURRENT_IM(ctx)->ref_count++;	  | ||||
| 	 SET_IMMEDIATE( ctx, IM ); | ||||
| 	 IM->ref_count++;	  | ||||
| 	 ctx->CompileFlag = GL_FALSE; | ||||
|       } | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: t_imm_alloc.c,v 1.10 2001/09/07 06:55:59 joukj Exp $ */ | ||||
| /* $Id: t_imm_alloc.c,v 1.10.2.1 2001/12/15 00:48:41 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.5 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -34,7 +34,7 @@ | ||||
| #include "t_imm_alloc.h" | ||||
|  | ||||
|  | ||||
|    static int id = 0; | ||||
| static int id = 0;  /* give each struct immediate a unique ID number */ | ||||
|  | ||||
| static struct immediate *real_alloc_immediate( GLcontext *ctx ) | ||||
| { | ||||
| @@ -130,6 +130,11 @@ void _tnl_free_immediate( struct immediate *IM ) | ||||
|  | ||||
|    ASSERT(IM->ref_count == 0); | ||||
|  | ||||
|    if (IM->NormalLengthPtr) { | ||||
|       ALIGN_FREE(IM->NormalLengthPtr); | ||||
|       IM->NormalLengthPtr = NULL; | ||||
|    } | ||||
|  | ||||
|    if (!tnl) { | ||||
|       real_free_immediate( IM ); | ||||
|    }  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: t_imm_dlist.c,v 1.29 2001/09/14 21:30:31 brianp Exp $ */ | ||||
| /* $Id: t_imm_dlist.c,v 1.29.2.4 2001/12/13 10:57:55 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -229,7 +229,7 @@ static void fixup_compiled_primitives( GLcontext *ctx, struct immediate *IM ) | ||||
|        * set copystart because it might skip materials? | ||||
|        */ | ||||
|       ASSERT(IM->Start == IM->CopyStart); | ||||
|       if (i > IM->CopyStart) { | ||||
|       if (i > IM->CopyStart || !(IM->Flag[IM->Start] & VERT_BEGIN)) { | ||||
| 	 IM->Primitive[IM->CopyStart] = GL_POLYGON+1; | ||||
| 	 IM->PrimitiveLength[IM->CopyStart] = i - IM->CopyStart; | ||||
| 	 if (IM->Flag[i] & VERT_END_VB) { | ||||
| @@ -293,7 +293,7 @@ execute_compiled_cassette( GLcontext *ctx, void *data ) | ||||
|    TNLvertexcassette *node = (TNLvertexcassette *)data; | ||||
|    struct immediate *IM = node->IM; | ||||
|  | ||||
| /*     fprintf(stderr, "%s\n", __FUNCTION__); */ | ||||
| /*     fprintf(stderr, "%s IM: %d\n", __FUNCTION__, IM->id);  */ | ||||
|  | ||||
|    IM->Start = node->Start; | ||||
|    IM->CopyStart = node->Start; | ||||
| @@ -309,6 +309,7 @@ execute_compiled_cassette( GLcontext *ctx, void *data ) | ||||
|    IM->MaterialOrMask = node->MaterialOrMask; | ||||
|    IM->MaterialAndMask = node->MaterialAndMask; | ||||
|  | ||||
|  | ||||
|    if ((MESA_VERBOSE & VERBOSE_DISPLAY_LIST) && | ||||
|        (MESA_VERBOSE & VERBOSE_IMMEDIATE)) | ||||
|       _tnl_print_cassette( IM ); | ||||
| @@ -421,16 +422,22 @@ _tnl_BeginCallList( GLcontext *ctx, GLuint list ) | ||||
| { | ||||
|    (void) ctx; | ||||
|    (void) list; | ||||
|    FLUSH_CURRENT(ctx, 0); | ||||
|    FLUSH_CURRENT(ctx, 0);	/* Current immediate is emptied on CallList */ | ||||
| } | ||||
|  | ||||
|  | ||||
| /* Called at the tail of a CallList.  Nothing to do. | ||||
| /* Called at the tail of a CallList.  Make current immediate aware of | ||||
|  * any new to-be-copied vertices. | ||||
|  */ | ||||
| void | ||||
| _tnl_EndCallList( GLcontext *ctx ) | ||||
| { | ||||
|    (void) ctx; | ||||
|    GLuint beginstate = 0; | ||||
|  | ||||
|    if (ctx->Driver.CurrentExecPrimitive != PRIM_OUTSIDE_BEGIN_END) | ||||
|       beginstate = VERT_BEGIN_0|VERT_BEGIN_1; | ||||
|  | ||||
|    _tnl_reset_exec_input( ctx, TNL_CURRENT_IM(ctx)->Start, beginstate, 0 ); | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -591,7 +598,6 @@ static void loopback_compiled_cassette( GLcontext *ctx, struct immediate *IM ) | ||||
|       ASSERT((prim & PRIM_MODE_MASK) <= GL_POLYGON+1); | ||||
|  | ||||
|       if (prim & PRIM_BEGIN) { | ||||
| /*  	 fprintf(stderr, "begin %s\n", _mesa_prim_name[prim&PRIM_MODE_MASK]); */ | ||||
| 	 glBegin(prim & PRIM_MODE_MASK); | ||||
|       } | ||||
|  | ||||
| @@ -606,14 +612,10 @@ static void loopback_compiled_cassette( GLcontext *ctx, struct immediate *IM ) | ||||
| 	 } | ||||
|  | ||||
| 	 if (flags[i] & VERT_NORM) { | ||||
| /*  	       fprintf(stderr, "normal %d: %f %f %f\n", i, */ | ||||
| /*  		       IM->Normal[i][0], IM->Normal[i][1], IM->Normal[i][2]);  */ | ||||
| 	    glNormal3fv(IM->Normal[i]); | ||||
| 	 } | ||||
|  | ||||
| 	 if (flags[i] & VERT_RGBA) { | ||||
| /*  	       fprintf(stderr, "color %d: %f %f %f\n", i, */ | ||||
| /*  		       IM->Color[i][0], IM->Color[i][1], IM->Color[i][2]);  */ | ||||
| 	    glColor4fv( IM->Color[i] ); | ||||
| 	 } | ||||
|  | ||||
| @@ -633,8 +635,6 @@ static void loopback_compiled_cassette( GLcontext *ctx, struct immediate *IM ) | ||||
| 	    emit_material( IM->Material[i], IM->MaterialMask[i] ); | ||||
|  | ||||
| 	 if (flags[i]&VERT_OBJ_234) { | ||||
| /*  	       fprintf(stderr, "vertex %d: %f %f %f\n", i, */ | ||||
| /*  		       IM->Obj[i][0], IM->Obj[i][1], IM->Obj[i][2]); */ | ||||
| 	    vertex( IM->Obj[i] ); | ||||
| 	 } | ||||
| 	 else if (flags[i] & VERT_EVAL_C1) | ||||
| @@ -648,7 +648,6 @@ static void loopback_compiled_cassette( GLcontext *ctx, struct immediate *IM ) | ||||
|       } | ||||
|  | ||||
|       if (prim & PRIM_END) { | ||||
| /*  	 fprintf(stderr, "end\n"); */ | ||||
| 	 glEnd(); | ||||
|       } | ||||
|    } | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: t_imm_exec.c,v 1.29 2001/08/02 22:39:51 keithw Exp $ */ | ||||
| /* $Id: t_imm_exec.c,v 1.29.2.1 2001/11/30 15:42:32 alanh Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -555,6 +555,13 @@ void _tnl_imm_destroy( GLcontext *ctx ) | ||||
|       TNL_CURRENT_IM(ctx)->ref_count--; | ||||
|       if (TNL_CURRENT_IM(ctx)->ref_count == 0) | ||||
| 	 _tnl_free_immediate( TNL_CURRENT_IM(ctx) ); | ||||
|       SET_IMMEDIATE(ctx, 0); | ||||
|       /*  | ||||
|        * Don't use SET_IMMEDIATE here, or else we'll whack the | ||||
|        * _tnl_CurrentInput pointer - not good when another  | ||||
|        * context has already been made current. | ||||
|        * So we just set the context's own tnl immediate pointer | ||||
|        * to 0. | ||||
|        */ | ||||
|       ctx->swtnl_im = 0; | ||||
|    } | ||||
| } | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: t_imm_fixup.c,v 1.26 2001/08/03 00:16:36 keithw Exp $ */ | ||||
| /* $Id: t_imm_fixup.c,v 1.26.2.2 2001/12/03 17:46:57 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -735,7 +735,11 @@ _tnl_get_exec_copy_verts( GLcontext *ctx, struct immediate *IM ) | ||||
|       tnl->ExecCopySource = IM; | ||||
|       tnl->ExecCopyCount = 0; | ||||
|       tnl->ExecCopyTexSize = IM->CopyTexSize; | ||||
|       tnl->ExecParity = IM->PrimitiveLength[IM->LastPrimitive] & 1; | ||||
|  | ||||
|       if (IM->LastPrimitive != IM->CopyStart) | ||||
| 	 tnl->ExecParity = 0; | ||||
| 	  | ||||
|       tnl->ExecParity ^= IM->PrimitiveLength[IM->LastPrimitive] & 1; | ||||
|  | ||||
|       if (pincr != 1 && (IM->Count - last - pintro)) | ||||
| 	 ovf = (IM->Count - last - pintro) % pincr; | ||||
| @@ -761,7 +765,10 @@ _tnl_get_purged_copy_verts( GLcontext *ctx, struct immediate *IM ) | ||||
|       GLuint ovf = 0, i; | ||||
|  | ||||
|       tnl->ExecCopyCount = 0; | ||||
|       tnl->ExecParity = IM->PrimitiveLength[last] & 1; | ||||
|       if (IM->LastPrimitive != IM->CopyStart) | ||||
| 	 tnl->ExecParity = 0; | ||||
| 	  | ||||
|       tnl->ExecParity ^= IM->PrimitiveLength[IM->LastPrimitive] & 1; | ||||
|  | ||||
|       if (pincr != 1 && (IM->Count - last - pintro)) | ||||
| 	 ovf = (IM->Count - last - pintro) % pincr; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: t_vb_lighttmp.h,v 1.19 2001/10/20 00:13:45 keithw Exp $ */ | ||||
| /* $Id: t_vb_lighttmp.h,v 1.19.2.1 2001/12/03 17:40:43 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -560,7 +560,6 @@ static void TAG(light_fast_rgba_single)( GLcontext *ctx, | ||||
|    do { | ||||
|        | ||||
|       if ( CHECK_COLOR_MATERIAL(j) ) { | ||||
| /*  	 fprintf(stderr, "colormaterial at %d (%p)\n", j, CMcolor); */ | ||||
| 	 _mesa_update_color_material( ctx, CMcolor ); | ||||
|       } | ||||
|  | ||||
| @@ -590,13 +589,6 @@ static void TAG(light_fast_rgba_single)( GLcontext *ctx, | ||||
|       do { | ||||
| 	 GLfloat n_dot_VP = DOT3(normal, light->_VP_inf_norm); | ||||
|  | ||||
| /*  	 if (j < 5) */ | ||||
| /*  	    fprintf(stderr, "light normal %d: %f %f %f\n",  */ | ||||
| /*  		    j,  */ | ||||
| /*  		    normal[0], */ | ||||
| /*  		    normal[1], */ | ||||
| /*  		    normal[2]); */ | ||||
|  | ||||
| 	 if (n_dot_VP < 0.0F) { | ||||
| 	    if (IDX & LIGHT_TWOSIDE) { | ||||
| 	       GLfloat n_dot_h = -DOT3(normal, light->_h_inf_norm); | ||||
| @@ -639,14 +631,6 @@ static void TAG(light_fast_rgba_single)( GLcontext *ctx, | ||||
| 	 COPY_CHAN4(Fcolor[j], Fcolor[j-1]); | ||||
| 	 if (IDX & LIGHT_TWOSIDE) | ||||
| 	    COPY_CHAN4(Bcolor[j], Bcolor[j-1]); | ||||
|  | ||||
| /*  	 if (j < 5) */ | ||||
| /*  	    fprintf(stderr, "skip normal %d: %f %f %f\n",  */ | ||||
| /*  		    j,  */ | ||||
| /*  		    normal[0], */ | ||||
| /*  		    normal[1], */ | ||||
| /*  		    normal[2]); */ | ||||
|  | ||||
|       } | ||||
|  | ||||
|    } while (!CHECK_END_VB(j)); | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: t_vb_render.c,v 1.22 2001/07/12 22:09:22 keithw Exp $ */ | ||||
| /* $Id: t_vb_render.c,v 1.22.2.3 2001/12/17 01:46:38 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.5 | ||||
|  * Version:  4.0.1 | ||||
|  * | ||||
|  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -142,7 +142,7 @@ do {							\ | ||||
|  | ||||
| #define TAG(x) clip_##x##_verts | ||||
| #define INIT(x) tnl->Driver.Render.PrimitiveNotify( ctx, x ) | ||||
| #define RESET_STIPPLE if (stipple) tnl->Driver.Render.ResetLineStipple( ctx ) | ||||
| #define RESET_STIPPLE tnl->Driver.Render.ResetLineStipple( ctx ) | ||||
| #define RESET_OCCLUSION ctx->OcclusionResult = GL_TRUE | ||||
| #define PRESERVE_VB_DEFS | ||||
| #include "t_vb_rendertmp.h" | ||||
| @@ -225,8 +225,9 @@ static void clip_elt_triangles( GLcontext *ctx, | ||||
|    const line_func LineFunc = tnl->Driver.Render.Line;		\ | ||||
|    const triangle_func TriangleFunc = tnl->Driver.Render.Triangle;	\ | ||||
|    const quad_func QuadFunc = tnl->Driver.Render.Quad;		\ | ||||
|    const GLboolean stipple = ctx->Line.StippleFlag;		\ | ||||
|    (void) (LineFunc && TriangleFunc && QuadFunc);		\ | ||||
|    (void) elt; | ||||
|    (void) elt; (void) stipple; | ||||
|  | ||||
| #define RESET_STIPPLE tnl->Driver.Render.ResetLineStipple( ctx ) | ||||
| #define RESET_OCCLUSION ctx->OcclusionResult = GL_TRUE | ||||
| @@ -318,7 +319,7 @@ static GLboolean run_render( GLcontext *ctx, | ||||
|    do | ||||
|    { | ||||
|       GLuint i, length, flags = 0; | ||||
|       for (i = 0 ; !(flags & PRIM_LAST) ; i += length) | ||||
|       for (i = VB->FirstPrimitive ; !(flags & PRIM_LAST) ; i += length) | ||||
|       { | ||||
| 	 flags = VB->Primitive[i]; | ||||
| 	 length= VB->PrimitiveLength[i]; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: 3dnow.c,v 1.19 2001/03/30 14:44:43 gareth Exp $ */ | ||||
| /* $Id: 3dnow.c,v 1.19.2.1 2001/11/19 13:50:35 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -80,7 +80,9 @@ void _mesa_init_3dnow_transform_asm( void ) | ||||
|    ASSIGN_XFORM_GROUP( 3dnow, 3 ); | ||||
|    ASSIGN_XFORM_GROUP( 3dnow, 4 ); | ||||
|  | ||||
|    ASSIGN_NORM_GROUP( 3dnow ); | ||||
| /* Normalize function is broken - see demos/morph3d for example. | ||||
|  */ | ||||
| /*     ASSIGN_NORM_GROUP( 3dnow ); */ | ||||
|  | ||||
| #ifdef DEBUG | ||||
|    _math_test_all_transform_functions( "3DNow!" ); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user