Compare commits
	
		
			220 Commits
		
	
	
		
			mesa-22.1.
			...
			mesa_3_2
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 5febd0ce8b | ||
|  | 3d2264b2ce | ||
|  | 486565f88a | ||
|  | 0931339ea8 | ||
|  | 7fbad8f406 | ||
|  | 3382e6e359 | ||
|  | 96cefd6d02 | ||
|  | 8033ed691e | ||
|  | 59aa79ea5e | ||
|  | 5478ccec45 | ||
|  | ba31a93ae5 | ||
|  | 3c5265bf69 | ||
|  | 9c7494fc0c | ||
|  | 9e077508f9 | ||
|  | 95b0d3528a | ||
|  | dcd4ea4746 | ||
|  | e01205dd9e | ||
|  | 198ed1fe93 | ||
|  | 5c2f9bc2de | ||
|  | e4fb0285f2 | ||
|  | 573ab9c964 | ||
|  | 37f4e1fe40 | ||
|  | 4f4a6b4a4f | ||
|  | 884aa6efd8 | ||
|  | ceb817650f | ||
|  | 19ac63ce20 | ||
|  | 1b4c728f77 | ||
|  | 140809c588 | ||
|  | e6df48f9a6 | ||
|  | 31bcf75ce1 | ||
|  | 9818daae60 | ||
|  | 5ade8ed0b4 | ||
|  | 1b539ed613 | ||
|  | 905ad56487 | ||
|  | a16ebe76c9 | ||
|  | 96563ae75f | ||
|  | 11769b9737 | ||
|  | 474363af47 | ||
|  | 99189ad4fb | ||
|  | 361fc66e36 | ||
|  | 0b616332f7 | ||
|  | 4f030d12ad | ||
|  | 792837dafd | ||
|  | 8c77d45b06 | ||
|  | 660f6dec37 | ||
|  | 14e7ab2c4f | ||
|  | 089f713f0d | ||
|  | 53f81339a4 | ||
|  | 2cf228e93d | ||
|  | 4e8ee6840a | ||
|  | 5144d47c54 | ||
|  | 3eaed2527a | ||
|  | 353bd24876 | ||
|  | 473d64f9cc | ||
|  | c21598fb0d | ||
|  | 287abc7aa0 | ||
|  | e6e732c64d | ||
|  | 61cca3827f | ||
|  | 88406455f5 | ||
|  | fb67681366 | ||
|  | ead75d4894 | ||
|  | bd4ba2b85d | ||
|  | 998839109e | ||
|  | a23d3cc054 | ||
|  | 803d5a12ab | ||
|  | 462144c0f0 | ||
|  | a780e6f228 | ||
|  | 7feab37f8a | ||
|  | 091834064c | ||
|  | 9275c62963 | ||
|  | 7166ff0412 | ||
|  | bf69170dff | ||
|  | 3c6dd8791c | ||
|  | 69bc4e01b8 | ||
|  | b2d3b2dbe0 | ||
|  | c508641aec | ||
|  | f008070ad5 | ||
|  | c562884268 | ||
|  | 992795f4c9 | ||
|  | d21f13cb05 | ||
|  | f1b26953e8 | ||
|  | 216244bed8 | ||
|  | b85c3afc01 | ||
|  | e4ee3cc9d1 | ||
|  | 03d7215604 | ||
|  | 82e6fe5e36 | ||
|  | dde5788a44 | ||
|  | 8038f3747d | ||
|  | 0df95816c5 | ||
|  | 3692626805 | ||
|  | b31d01d4a7 | ||
|  | ba8ef5917e | ||
|  | f5d0252282 | ||
|  | 83386c0f7b | ||
|  | 5e8aa8e5d9 | ||
|  | f008ed46d1 | ||
|  | 7b5a65ce28 | ||
|  | 4f4b93d8ae | ||
|  | 81f97580cc | ||
|  | 8de719530c | ||
|  | f0040ae8f5 | ||
|  | ec2425c3b6 | ||
|  | aedc01c850 | ||
|  | 93c528a6d5 | ||
|  | 443d666b9a | ||
|  | d794378dbc | ||
|  | 76dad53903 | ||
|  | e5f8d98410 | ||
|  | 7f8fed5711 | ||
|  | 5ed6197b0a | ||
|  | 609524894a | ||
|  | 553adbb0c2 | ||
|  | 361afca6a4 | ||
|  | 4c6a2f6a33 | ||
|  | 717ec19e30 | ||
|  | 411fb983f7 | ||
|  | 5dbe3d9c98 | ||
|  | fea067dce8 | ||
|  | 1cfc846bf3 | ||
|  | dfa45b9f26 | ||
|  | 6f602ed44d | ||
|  | 34bf1dd293 | ||
|  | 9a7584b062 | ||
|  | d6dfb94059 | ||
|  | b9ee2850cf | ||
|  | 4183bf524d | ||
|  | 1721f447c6 | ||
|  | 46ef216f7f | ||
|  | a171741d65 | ||
|  | 320c2cdb0f | ||
|  | 9ed70db8ea | ||
|  | acbb8cb9dd | ||
|  | 7889a93ff7 | ||
|  | 970a551795 | ||
|  | d7eae31275 | ||
|  | b0294cbbfe | ||
|  | e2ff9be0b6 | ||
|  | 16283fea40 | ||
|  | 82ba9449e1 | ||
|  | 2377ea9c66 | ||
|  | ac3593ada5 | ||
|  | d6dd996e56 | ||
|  | cee556daea | ||
|  | 313f225a2e | ||
|  | 95d565b64c | ||
|  | 32ea1fdc7e | ||
|  | 8d52ee9ae1 | ||
|  | 9a07202f5e | ||
|  | 0f953d69e5 | ||
|  | b3a1034c05 | ||
|  | 8956d5131d | ||
|  | 428cf99956 | ||
|  | 1e5dab20fd | ||
|  | aa5251d170 | ||
|  | 607add71d9 | ||
|  | 074710629d | ||
|  | 7f0b5dd69c | ||
|  | 09b83c889b | ||
|  | 9c416c235b | ||
|  | 6ce3f22ae9 | ||
|  | 32093ccc86 | ||
|  | d5ff1d782b | ||
|  | 2ed8894aca | ||
|  | 33cd8a5490 | ||
|  | dd25e9852a | ||
|  | 05df9bb6e0 | ||
|  | a335bf404f | ||
|  | 783a67260a | ||
|  | e99e126479 | ||
|  | 98fce32683 | ||
|  | 9493e540f9 | ||
|  | 7138d38cc1 | ||
|  | 9e7f0e1f7c | ||
|  | 52345bfa1e | ||
|  | 93070bceca | ||
|  | 5b90676fc7 | ||
|  | 92ad030cb7 | ||
|  | 9afe0e4278 | ||
|  | 3e63be01d1 | ||
|  | c73eedbe96 | ||
|  | 8c54c4d9f7 | ||
|  | 33817940c4 | ||
|  | 7ec2e161ac | ||
|  | fc2e8cd0d0 | ||
|  | a3ea9edfda | ||
|  | 7fa9891de2 | ||
|  | ddd9410a67 | ||
|  | 532dde3e99 | ||
|  | 2a6f393fa7 | ||
|  | 2d1b9e0402 | ||
|  | 19c878467f | ||
|  | 1041d573ff | ||
|  | fda834160b | ||
|  | 7d35435bb6 | ||
|  | 5c191a62bc | ||
|  | eca3b6e47e | ||
|  | aa0a8624fb | ||
|  | f16a627115 | ||
|  | 1d39975c4e | ||
|  | 62d5f4c73e | ||
|  | d42cd99c66 | ||
|  | 03ef882735 | ||
|  | 19d0fcafb3 | ||
|  | cc6e92ff49 | ||
|  | 463c2b6b77 | ||
|  | 09c133e16f | ||
|  | bb1d3c1ad1 | ||
|  | cabb6a91cd | ||
|  | c76ac6b644 | ||
|  | 6842075a09 | ||
|  | b1da189fe5 | ||
|  | 9b635315be | ||
|  | 702baf4cd3 | ||
|  | b27ee886e4 | ||
|  | 276465cec6 | ||
|  | 5428538d65 | ||
|  | ab5d4d6233 | ||
|  | 2450ce124b | ||
|  | cf22eb77a7 | ||
|  | 569802cdb1 | 
							
								
								
									
										164
									
								
								Make-config
									
									
									
									
									
								
							
							
						
						
									
										164
									
								
								Make-config
									
									
									
									
									
								
							| @@ -1,13 +1,13 @@ | ||||
| # $Id: Make-config,v 1.11 1999/11/11 01:28:16 brianp Exp $ | ||||
| # $Id: Make-config,v 1.10.2.3 2000/03/23 00:12:13 brianp Exp $ | ||||
|  | ||||
| MESA_MAJOR=3 | ||||
| MESA_MINOR=3 | ||||
| MESA_MINOR=2 | ||||
| MESA_TINY=0 | ||||
| VERSION=$(MESA_MAJOR).$(MESA_MINOR) | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| #  | ||||
| # Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
| # Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
| #  | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a | ||||
| # copy of this software and associated documentation files (the "Software"), | ||||
| @@ -46,7 +46,7 @@ VERSION=$(MESA_MAJOR).$(MESA_MINOR) | ||||
| # To enable profiling add -DPROFILE to the CFLAGS line.  Be sure to set the | ||||
| # MESA_PROFILE environment variable to enable printing of the profile report. | ||||
| # | ||||
| # If your system supports the X Shared Memory extension add -DUSE_XSHM to the | ||||
| # If your system supports the X Shared Memory extension add -DSHM to the | ||||
| # CFLAGS line and add -lXext to the XLIBS line. | ||||
| # | ||||
| # Some compilers complain about const parameters.  Adding -DNO_CONST to the | ||||
| @@ -183,7 +183,7 @@ freebsd: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O2 -fPIC -pedantic -I/usr/X11R6/include -DUSE_XSHM -DHZ=100" \ | ||||
| 	"CFLAGS = -O2 -fPIC -pedantic -I/usr/X11R6/include -DSHM -DHZ=100" \ | ||||
| 	"MAKELIB = ../bin/mklib.freebsd" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -194,7 +194,7 @@ freebsd-386: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -ffast-math -fPIC -pedantic -I/usr/X11R6/include -DUSE_XSHM -DHZ=100 -DUSE_X86_ASM -DFREEBSD" \ | ||||
| 	"CFLAGS = -O3 -ffast-math -fPIC -pedantic -I/usr/X11R6/include -DSHM -DHZ=100 -DUSE_X86_ASM -DFREEBSD" \ | ||||
| 	"MAKELIB = ../bin/mklib.freebsd" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S" | ||||
| @@ -217,7 +217,7 @@ hpux9: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = +O3 -Aa -D_HPUX_SOURCE -I/usr/include/X11R5 -DUSE_XSHM" \ | ||||
| 	"CFLAGS = +O3 -Aa -D_HPUX_SOURCE -I/usr/include/X11R5 -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/lib/X11R5 -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -228,7 +228,7 @@ hpux9-gcc: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R5 -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R5 -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/lib/X11R5 -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -239,7 +239,7 @@ hpux9-sl: | ||||
| 	"GLUT_LIB = libglut.sl" \ | ||||
| 	"GLW_LIB = libGLw.sl" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = +z +O3 +Olibcalls +ESlit -Aa +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R5 -DUSE_XSHM" \ | ||||
| 	"CFLAGS = +z +O3 +Olibcalls +ESlit -Aa +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R5 -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.hpux" \ | ||||
| 	"XLIBS = -L/usr/lib/X11R5 -s -Wl,+s,-B,nonfatal,-B,immediate -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -250,7 +250,7 @@ hpux9-gcc-sl: | ||||
| 	"GLUT_LIB = libglut.sl" \ | ||||
| 	"GLW_LIB = libGLw.sl" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -fPIC -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R5 -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -fPIC -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R5 -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.hpux" \ | ||||
| 	"XLIBS = -L/usr/lib/X11R5 -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -261,7 +261,7 @@ hpux10: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = +O3 +DAportable -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM" \ | ||||
| 	"CFLAGS = +O3 +DAportable -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -272,7 +272,7 @@ hpux10-sl: | ||||
| 	"GLUT_LIB = libglut" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = +z -Ae +O2 +Onolimit +Oaggressive -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM" \ | ||||
| 	"CFLAGS = +z -Ae +O2 +Onolimit +Oaggressive -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.hpux" \ | ||||
| 	"XLIBS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -283,7 +283,7 @@ hpux10-gcc: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include  -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include  -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -294,7 +294,7 @@ hpux10-gcc-sl: | ||||
| 	"GLUT_LIB = libglut.sl" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -fPIC -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -fPIC -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.hpux" \ | ||||
| 	"XLIBS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -307,7 +307,7 @@ irix4: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -O2 -ansi -prototypes -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -O2 -ansi -prototypes -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-rcv" \ | ||||
| 	"XLIBS = -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -319,7 +319,7 @@ irix5: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -O2 -ansi -fullwarn -DUSE_XSHM -DNO_CONST" \ | ||||
| 	"CFLAGS = -O2 -ansi -fullwarn -DSHM -DNO_CONST" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-rcv" \ | ||||
| 	"XLIBS = -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -331,7 +331,7 @@ irix5-gcc: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O2 -pedantic -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -O2 -pedantic -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-rcv" \ | ||||
| 	"XLIBS = -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -343,7 +343,7 @@ irix5-dso: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -O2 -ansi -fullwarn -DUSE_XSHM -DNO_CONST" \ | ||||
| 	"CFLAGS = -O2 -ansi -fullwarn -DSHM -DNO_CONST" \ | ||||
| 	"MAKELIB = ../bin/mklib.irix5" \ | ||||
| 	"XLIBS = -rpath ../lib -lX11 -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -354,7 +354,7 @@ irix6-o32: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -32 -mips2 -O2 -ansi -DUSE_XSHM -DNO_CONST" \ | ||||
| 	"CFLAGS = -32 -mips2 -O2 -ansi -DSHM -DNO_CONST" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-rcv" \ | ||||
| 	"XLIBS = -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -365,7 +365,7 @@ irix6-o32-dso: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -32 -mips2 -O2 -ansi -DUSE_XSHM -DNO_CONST" \ | ||||
| 	"CFLAGS = -32 -mips2 -O2 -ansi -DSHM -DNO_CONST" \ | ||||
| 	"MAKELIB = ../bin/mklib.irix6-32" \ | ||||
| 	"XLIBS = -rpath ../lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -391,7 +391,7 @@ irix6-n32-dso: | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"LIBDIR = ../lib32" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -n32 -mips3 -O3 -ansi -DUSE_XSHM -woff 1185,1521" \ | ||||
| 	"CFLAGS = -n32 -mips3 -O3 -ansi -DSHM -woff 1185,1521" \ | ||||
| 	"MAKELIB = ../bin/mklib.irix6-n32" \ | ||||
| 	"XLIBS = -rpath ../lib32 -lX11 -lXmu -lXi -lfpe -lm" | ||||
|  | ||||
| @@ -403,7 +403,7 @@ irix6-gcc-n32-sl: | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"LIBDIR = ../lib32" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -mabi=n32 -mips3 -O3 -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -mabi=n32 -mips3 -O3 -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.irix6-n32" \ | ||||
| 	"XLIBS = -rpath ../lib32 -lX11 -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -423,7 +423,7 @@ irix6-64: | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"LIBDIR = ../lib64" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -64 -O3 -ansi -woff 1068,1069,1174,1185,1209,1474,1552 -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -64 -O3 -ansi -woff 1068,1069,1174,1185,1209,1474,1552 -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-rcv" \ | ||||
| 	"XLIBS = -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -435,12 +435,12 @@ irix6-64-dso: | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"LIBDIR = ../lib64" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -64 -O3 -ansi -woff 1068,1069,1174,1185,1209,1474,1552 -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -64 -O3 -ansi -woff 1068,1069,1174,1185,1209,1474,1552 -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.irix6-64" \ | ||||
| 	"XLIBS = -rpath ../lib64 -lX11 -lXmu -lXi -lm" | ||||
|  | ||||
| # May want to try these CFLAGS for better performance under Linux and GCC: | ||||
| # -fPIC -O2 -ansi -pedantic -mieee-fp -DUSE_XSHM -funroll-loops | ||||
| # -fPIC -O2 -ansi -pedantic -mieee-fp -DSHM -funroll-loops | ||||
| # -fexpensive-optimizations -fomit-frame-pointer -ffast-math | ||||
| # and  -malign-loops=2 -malign-jumps=2 -malign-functions=2 for Pentium | ||||
|  | ||||
| @@ -451,7 +451,7 @@ linux: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O2 -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -I/usr/X11R6/include" \ | ||||
| 	"CFLAGS = -O3 -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -I/usr/X11R6/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" | ||||
|  | ||||
| @@ -465,7 +465,7 @@ linux-elf: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -I/usr/X11R6/include" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -I/usr/X11R6/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" | ||||
|  | ||||
| @@ -476,7 +476,7 @@ linux-glide: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -DFX -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm" | ||||
|  | ||||
| @@ -488,7 +488,7 @@ linux-386: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O2 -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -I/usr/X11R6/include" \ | ||||
| 	"CFLAGS = -O3 -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -DUSE_X86_ASM -I/usr/X11R6/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -500,7 +500,7 @@ linux-386-elf: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -I/usr/X11R6/include" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -DUSE_X86_ASM -I/usr/X11R6/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -512,7 +512,7 @@ linux-386-glide: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_XSHM -DFX -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DSHM -DFX -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -524,7 +524,7 @@ linux-386-glide-mits: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -D_REENTRANT -DMITS -DUSE_X86_ASM -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -DFX -D_REENTRANT -DMITS -DUSE_X86_ASM -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -536,7 +536,7 @@ linux-386-opt-V2-glide: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DFX_V2 -DUSE_X86_ASM -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include"\ | ||||
| 	"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -DFX -DFX_V2 -DUSE_X86_ASM -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include"\ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -548,7 +548,7 @@ linux-386-opt-glide: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DUSE_X86_ASM -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"CFLAGS = -O3 -m486 -fomit-frame-pointer -pipe -ansi -pedantic -ffast-math -fexpensive-optimizations -malign-loops=2 -malign-jumps=2 -malign-functions=2 -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -DFX -DUSE_X86_ASM -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -560,7 +560,7 @@ linux-3dnow: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc -malign-loops=2 -malign-jumps=2 -malign-functions=2" \ | ||||
| 	"CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -I/usr/X11R6/include" \ | ||||
| 	"CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -I/usr/X11R6/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S \ | ||||
| @@ -578,7 +578,7 @@ linux-3dnow-glide: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc -malign-loops=2 -malign-jumps=2 -malign-functions=2" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_XSHM -DFX -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include -I/usr/src/mesa-glx/src/FX/X86" \ | ||||
| 	"CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DSHM -DFX -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include -I/usr/src/mesa-glx/src/FX/X86" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -L/usr/local/glide/lib -lglide2x -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S \ | ||||
| @@ -598,7 +598,7 @@ linux-386-pthread-shared-glide: | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -fPIC -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DUSE_X86_ASM -D_REENTRANT -DTHREADS -DPTHREADS -DFX -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"CFLAGS = -O3 -fPIC -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DSHM -DUSE_X86_ASM -D_REENTRANT -DTHREADS -DPTHREADS -DFX -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../mklib.glide" \ | ||||
| 	"XLIBS = -L/usr/X11/lib -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lpthread -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S \ | ||||
| @@ -612,7 +612,7 @@ linux-ggi: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc"  \ | ||||
| 	"CFLAGS = -O3 -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DGGI -DCDECL=" \ | ||||
| 	"CFLAGS = -O3 -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DSHM -DGGI -DCDECL=" \ | ||||
| 	"MAKELIB = ../bin/mklib.ggi" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lggi -lm" | ||||
|  | ||||
| @@ -624,7 +624,7 @@ linux-386-ggi: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc"  \ | ||||
| 	"CFLAGS = -O3 -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DUSE_X86_ASM -DGGI -DCDECL=" \ | ||||
| 	"CFLAGS = -O3 -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DSHM -DUSE_X86_ASM -DGGI -DCDECL=" \ | ||||
| 	"MAKELIB = ../bin/mklib.ggi" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lggi -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -637,7 +637,7 @@ linux-alpha: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O2 -mieee -pedantic -L/usr/X11R6/lib -D_XOPEN_SOURCE -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -O3 -mieee -pedantic -L/usr/X11R6/lib -D_XOPEN_SOURCE -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lm" | ||||
|  | ||||
| @@ -648,7 +648,7 @@ linux-alpha-elf: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -ansi -mieee -pedantic -fPIC -D_XOPEN_SOURCE -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -ansi -mieee -pedantic -fPIC -D_XOPEN_SOURCE -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -664,7 +664,7 @@ linux-ppc: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -mcpu=603 -ansi -pedantic -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -O3 -mcpu=603 -ansi -pedantic -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" | ||||
|  | ||||
| @@ -676,7 +676,7 @@ linux-ppc-so: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -mcpu=603 -ansi -pedantic -fPIC -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -O3 -mcpu=603 -ansi -pedantic -fPIC -fsigned-char -ffast-math -funroll-loops -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" | ||||
|  | ||||
| @@ -687,7 +687,7 @@ linux-386-pthread: | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O2 -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R\6/include -DUSE_XSHM -DUSE_X86_ASM -D_REENTRANT -DTHREADS -DPTHREADS" \ | ||||
| 	"CFLAGS = -O3 -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R\6/include -DSHM -DUSE_X86_ASM -D_REENTRANT -DTHREADS -DPTHREADS" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lpthread -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -699,7 +699,7 @@ linux-386-pthread-shared: | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -fPIC -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/us\r/X11R6/include -DUSE_XSHM -DUSE_X86_ASM -D_REENTRANT -DTHREADS -DPTHREADS" \ | ||||
| 	"CFLAGS = -O3 -fPIC -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/us\r/X11R6/include -DSHM -DUSE_X86_ASM -D_REENTRANT -DTHREADS -DPTHREADS" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lpthread -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -711,7 +711,7 @@ linux-sparc: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -pedantic -funroll-loops -O3 -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -pedantic -funroll-loops -O3 -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXt -lSM -lICE -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -723,7 +723,7 @@ linux-sparc5-elf: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -mv8 -O2 -ffast-math -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -mv8 -O3 -ffast-math -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" | ||||
|  | ||||
| @@ -735,12 +735,12 @@ linux-sparc-ultra: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -mv8 -O2 -mtune=ultrasparc -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -mv8 -O3 -mtune=ultrasparc -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" | ||||
|  | ||||
| # May want to add these CFLAGS for better performance under LynxOS and GCC: | ||||
| # -fPIC -O2 -ansi -pedantic -mieee-fp -DUSE_XSHM -funroll-loops | ||||
| # -fPIC -O2 -ansi -pedantic -mieee-fp -DSHM -funroll-loops | ||||
| # -fexpensive-optimizations -fomit-frame-pointer -ffast-math | ||||
| # and  -malign-loops=2 -malign-jumps=2 -malign-functions=2 for Pentium | ||||
|  | ||||
| @@ -751,7 +751,7 @@ lynxos: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O2 -ansi -pedantic -funroll-loops -ffast-math -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -O2 -ansi -pedantic -funroll-loops -ffast-math -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/X11/lib -lXext -lXi -lXmu -lX11 -lbsd -lm" | ||||
|  | ||||
| @@ -795,7 +795,7 @@ netbsd: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O2 -fPIC -DUSE_XSHM -I/usr/X11R6/include -DHZ=100"  \ | ||||
| 	"CFLAGS = -O3 -fPIC -DSHM -I/usr/X11R6/include -DHZ=100"  \ | ||||
| 	"MAKELIB = ../bin/mklib.netbsd" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm" | ||||
|  | ||||
| @@ -815,7 +815,7 @@ openbsd: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -O2 -fPIC -I/usr/X11R6/include -DUSE_XSHM -DHZ=100" \ | ||||
| 	"CFLAGS = -O2 -fPIC -I/usr/X11R6/include -DSHM -DHZ=100" \ | ||||
| 	"MAKELIB = ../bin/mklib.openbsd" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -856,7 +856,7 @@ osf1: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -O2 -std1 -ieee_with_no_inexact -DUSE_XSHM -DNO_CONST" \ | ||||
| 	"CFLAGS = -O2 -std1 -ieee_with_no_inexact -DSHM -DNO_CONST" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -867,7 +867,7 @@ osf1-sl: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -O2 -std1 -ieee_with_no_inexact -DUSE_XSHM -DNO_CONST" \ | ||||
| 	"CFLAGS = -O2 -std1 -ieee_with_no_inexact -DSHM -DNO_CONST" \ | ||||
| 	"MAKELIB = ../bin/mklib.osf1" \ | ||||
| 	"XLIBS = -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -934,7 +934,7 @@ solaris-x86: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -Xa -xO3 -xpentium -KPIC -I/usr/openwin/include -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -Xa -xO3 -xpentium -KPIC -I/usr/openwin/include -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.solaris" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -945,7 +945,7 @@ solaris-x86-gcc: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -m486 -fPIC -I/usr/openwin/include -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -O3 -m486 -fPIC -I/usr/openwin/include -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.solaris" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -956,7 +956,7 @@ sunos4: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = acc" \ | ||||
| 	"CFLAGS = -O -DUSE_XSHM -DSUNOS4" \ | ||||
| 	"CFLAGS = -O -DSHM -DSUNOS4" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -967,7 +967,7 @@ sunos4-sl: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = acc" \ | ||||
| 	"CFLAGS = -Kpic -O -I/usr/include/X11R5 -DUSE_XSHM -DSUNOS4" \ | ||||
| 	"CFLAGS = -Kpic -O -I/usr/include/X11R5 -DSHM -DSUNOS4" \ | ||||
| 	"MAKELIB = ld -assert pure-text -o" \ | ||||
| 	"XLIBS = -L/usr/lib/X11R5 -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -978,7 +978,7 @@ sunos4-gcc: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -DUSE_XSHM -DSUNOS4 -I/usr/openwin/include" \ | ||||
| 	"CFLAGS = -O3 -DSHM -DSUNOS4 -I/usr/openwin/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -989,7 +989,7 @@ sunos4-gcc-sl: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -fPIC -O3 -I/usr/openwin/include -I/usr/include/X11R5 -I/usr/include/X11R5 -DUSE_XSHM -DSUNOS4 -DSOLARIS_2_4_BUG" \ | ||||
| 	"CFLAGS = -fPIC -O3 -I/usr/openwin/include -I/usr/include/X11R5 -I/usr/include/X11R5 -DSHM -DSUNOS4 -DSOLARIS_2_4_BUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.sunos4" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -1000,7 +1000,7 @@ sunos4-gcc-x11r6-sl: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -fPIC -O3 -I/usr/X11R6.3/include -DUSE_XSHM -DSUNOS4 -DSOLARIS_2_4_BUG" \ | ||||
| 	"CFLAGS = -fPIC -O3 -I/usr/X11R6.3/include -DSHM -DSUNOS4 -DSOLARIS_2_4_BUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.sunos4" \ | ||||
| 	"XLIBS = -L/usr/X11R6.3/lib/X11 -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -1011,7 +1011,7 @@ sunos5: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -Xa -fast -xO4 -native -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"CFLAGS = -Xa -fast -xO4 -native -I/usr/openwin/include -I/usr/dt/include -DSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -1022,7 +1022,7 @@ sunos5-sl: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -KPIC -Xa -O -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"CFLAGS = -KPIC -Xa -O -I/usr/openwin/include -I/usr/dt/include -DSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.sunos5" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -1033,7 +1033,7 @@ sunos5-ultra: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -Xa -fast -xO5 -xtarget=ultra -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"CFLAGS = -Xa -fast -xO5 -xtarget=ultra -I/usr/openwin/include -I/usr/dt/include -DSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -1044,7 +1044,7 @@ sunos5-ultra-sl: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -KPIC -Xa -fast -xO5 -xtarget=ultra -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"CFLAGS = -KPIC -Xa -fast -xO5 -xtarget=ultra -I/usr/openwin/include -I/usr/dt/include -DSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.sunos5" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -1055,7 +1055,7 @@ sunos5-gcc: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -I/usr/openwin/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"CFLAGS = -O3 -I/usr/openwin/include -DSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -1066,7 +1066,7 @@ sunos5-gcc-sl: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -fPIC -O3 -I/usr/openwin/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"CFLAGS = -fPIC -O3 -I/usr/openwin/include -DSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.sunos5" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -1077,7 +1077,7 @@ sunos5-x11r6-gcc-sl: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -fPIC -O3 -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"CFLAGS = -fPIC -O3 -DSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.sunos5" \ | ||||
| 	"XLIBS = -lSM -lICE -lX11 -lXext -lXmu -lXi -lnsl -lsocket -lm" | ||||
|  | ||||
| @@ -1088,7 +1088,7 @@ sunos5-pthread: | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -mt -Xa -fast -xO4 -native -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4\_BUG -DTHREADS -DPTHREADS" \ | ||||
| 	"CFLAGS = -mt -Xa -fast -xO4 -native -I/usr/openwin/include -I/usr/dt/include -DSHM -DSOLARIS_2_4\_BUG -DTHREADS -DPTHREADS" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lpthread -lm" | ||||
|  | ||||
| @@ -1099,7 +1099,7 @@ sunos5-thread: | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -mt -Xa -fast -xO4 -native -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4\_BUG -DTHREADS -DSOLARIS_THREADS" \ | ||||
| 	"CFLAGS = -mt -Xa -fast -xO4 -native -I/usr/openwin/include -I/usr/dt/include -DSHM -DSOLARIS_2_4\_BUG -DTHREADS -DSOLARIS_THREADS" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -L/usr/dt/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lthread -lm" | ||||
|  | ||||
| @@ -1110,7 +1110,7 @@ sunos5-gcc-thread: | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -I/usr/openwin/include -DUSE_XSHM -DSOLARIS_2_4_BUG -D_REENTRANT -DTHREADS -DSOLARIS_THREADS" \ | ||||
| 	"CFLAGS = -O3 -I/usr/openwin/include -DSHM -DSOLARIS_2_4_BUG -D_REENTRANT -DTHREADS -DSOLARIS_THR\EADS" \ | ||||
|       	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lthread -lm" | ||||
|  | ||||
| @@ -1121,7 +1121,7 @@ sunos5-gcc-pthread: | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -I/usr/openwin/include -DUSE_XSHM -DSOLARIS_2_4_BUG -D_REENTRANT -DTHREADS -DPTHREADS" \ | ||||
| 	"CFLAGS = -O3 -I/usr/openwin/include -DSHM -DSOLARIS_2_4_BUG -D_REENTRANT -DTHREADS -DPTHREADS" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lpthread -lm" | ||||
|  | ||||
| @@ -1133,7 +1133,7 @@ sunSolaris-CC: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = CC" \ | ||||
| 	"CFLAGS = -O -I/usr/openwin/include -DUSE_XSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"CFLAGS = -O -I/usr/openwin/include -DSHM -DSOLARIS_2_4_BUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -1179,7 +1179,7 @@ unixware: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -O -I/usr/X/include -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -O -I/usr/X/include -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -lX11 -lXext -lXmu -lXi -lsocket -lnsl -lm" | ||||
|  | ||||
| @@ -1190,7 +1190,7 @@ unixware-shared: | ||||
| 	"GLUT_LIB = libglut" \ | ||||
| 	"GLW_LIB = libGLw" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -O -I/usr/X/include -KPIC,inline -DUSE_XSHM" \ | ||||
| 	"CFLAGS = -O -I/usr/X/include -KPIC,inline -DSHM" \ | ||||
| 	"MAKELIB = ../bin/mklib.solaris" \ | ||||
| 	"XLIBS = -lX11 -lXext -lXmu -lXi -lsocket -lnsl -lm" | ||||
|  | ||||
| @@ -1230,7 +1230,7 @@ irix-debug: | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"LIBDIR = ../lib32" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -g -n32 -ansi -fullwarn -DUSE_XSHM -DDEBUG -woff 1209,1210,1506,1521,3496" \ | ||||
| 	"CFLAGS = -g -n32 -ansi -fullwarn -DSHM -DDEBUG -woff 1209,1210,1506,1521,3496" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-rcv" \ | ||||
| 	"XLIBS = -rpath ../lib32 -lX11 -lXext -lXmu -lXi -lfpe -lXext -lXmu -lXi -lm" | ||||
|  | ||||
| @@ -1241,7 +1241,7 @@ DEBUG: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = cc" \ | ||||
| 	"CFLAGS = -g -ansi -prototypes -fullwarn -DUSE_XSHM -DDEBUG" \ | ||||
| 	"CFLAGS = -g -ansi -prototypes -fullwarn -DSHM -DDEBUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-rcv" \ | ||||
| 	"XLIBS = -lX11 -lXext -lXmu -lXi -lfpe -lm" | ||||
|  | ||||
| @@ -1253,7 +1253,7 @@ linux-debug: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -DUSE_XSHM -DDEBUG -DSVGA -DFX -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM_not -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -DSHM -DDEBUG -DSVGA -DFX -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM_not -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/local/glide/lib -lglide2x -ltexus -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lvga -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -1265,9 +1265,9 @@ linux-elf-debug: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DDEBUG" \ | ||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DSHM -DDEBUG -DSVGA -DFX -I/usr/X11R6/include -I/usr/include/glide" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lvga -lm" \ | ||||
| 	"XLIBS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lvga -lm -lvga -L/usr/local/lib -L/usr/local/glide/lib -lglide2x" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
|  | ||||
| linux-glide-debug: | ||||
| @@ -1277,7 +1277,7 @@ linux-glide-debug: | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DFX -DDEBUG -I/usr/local/glide/include -I/usr/include/glide" \ | ||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DSHM -DFX -DDEBUG -I/usr/local/glide/include -I/usr/include/glide" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"XLIBS = -L/usr/local/glide/lib -lglide2x -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lvga -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/vertex.S" | ||||
| @@ -1290,7 +1290,7 @@ linux-prof: | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O2 -pg -ansi -pedantic -Wall -DUSE_XSHM -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"CFLAGS = -O2 -pg -ansi -pedantic -Wall -DSHM -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"XLIBS = -L/usr/local/glide/lib -lglide2x -L/usr/X11/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S \ | ||||
|   | ||||
							
								
								
									
										321
									
								
								Makefile.X11
									
									
									
									
									
								
							
							
						
						
									
										321
									
								
								Makefile.X11
									
									
									
									
									
								
							| @@ -1,9 +1,9 @@ | ||||
| # $Id: Makefile.X11,v 1.12 1999/11/04 03:57:28 gareth Exp $ | ||||
| # $Id: Makefile.X11,v 1.12.2.9 2000/04/24 14:47:11 brianp Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.1 | ||||
| # Version:  3.2 | ||||
| #  | ||||
| # Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
| # Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
| #  | ||||
| # Permission is hereby granted, free of charge, to any person obtaining a | ||||
| # copy of this software and associated documentation files (the "Software"), | ||||
| @@ -169,6 +169,7 @@ sunos5-x11r6-gcc-sl ultrix-gcc unicos unixware uwin vistra: | ||||
| 	if [ -d xdemos ]   ; then cd xdemos   ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d samples ]  ; then cd samples  ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d book ]     ; then cd book     ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
|  | ||||
|  | ||||
| irix6-n32 irix6-n32-dso irix6-gcc-n32-sl irix-debug: | ||||
| @@ -183,6 +184,7 @@ irix6-n32 irix6-n32-dso irix6-gcc-n32-sl irix-debug: | ||||
| 	if [ -d xdemos ]   ; then cd xdemos   ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d samples ]  ; then cd samples  ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d book ]     ; then cd book     ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
|  | ||||
|  | ||||
| irix6-64 irix6-64-dso: | ||||
| @@ -197,6 +199,7 @@ irix6-64 irix6-64-dso: | ||||
| 	if [ -d xdemos ]   ; then cd xdemos   ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d samples ]  ; then cd samples  ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d book ]     ; then cd book     ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
|  | ||||
|  | ||||
| amiwin: | ||||
| @@ -225,9 +228,10 @@ cygnus cygnus-linux: | ||||
| 	touch src-glu/depend | ||||
| 	cd src ; $(MAKE) -f Makefile.X11 $@ | ||||
| 	cd src-glu ; $(MAKE) -f Makefile.X11 $@ | ||||
| 	cd src-glut ; $(MAKE) -f Makefile.X11 $@ | ||||
| 	cd demos ; $(MAKE) -f Makefile.X11 $@ | ||||
| 	if [ -d src-glut ] ; then cd src-glut ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d demos ]    ; then cd demos    ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d xdemos ]  ; then cd xdemos  ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
|  | ||||
| macintosh: | ||||
| 	@echo "See the README file for Macintosh intallation information" | ||||
| @@ -272,6 +276,7 @@ linux-ggi linux-386-ggi: | ||||
| 	if [ -d xdemos ]   ; then cd xdemos   ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d samples ]  ; then cd samples  ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d book ]     ; then cd book     ; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
| 	if [ -d widgets-sgi ] ; then cd widgets-sgi; $(MAKE) -f Makefile.X11 $@ ; fi | ||||
|  | ||||
| # if you change GGI_DEST please change it in ggimesa.conf, too. | ||||
| DESTDIR=/usr/local | ||||
| @@ -314,103 +319,106 @@ realclean: clean | ||||
|  | ||||
|  | ||||
|  | ||||
| DIRECTORY = Mesa-3.1 | ||||
| LIB_NAME = MesaLib-3.1beta3 | ||||
| DEMO_NAME = MesaDemos-3.1beta3 | ||||
| DIRECTORY = Mesa-3.2 | ||||
| LIB_NAME = MesaLib-3.2 | ||||
| DEMO_NAME = MesaDemos-3.2 | ||||
|  | ||||
|  | ||||
| LIB_FILES =	\ | ||||
| 	$(DIRECTORY)/Makefile*			\ | ||||
| 	$(DIRECTORY)/Make-config		\ | ||||
| 	$(DIRECTORY)/acconfig.h			\ | ||||
| 	$(DIRECTORY)/acinclude.m4		\ | ||||
| 	$(DIRECTORY)/aclocal.m4			\ | ||||
| 	$(DIRECTORY)/conf.h.in			\ | ||||
| 	$(DIRECTORY)/config.guess		\ | ||||
| 	$(DIRECTORY)/config.sub			\ | ||||
| 	$(DIRECTORY)/configure			\ | ||||
| 	$(DIRECTORY)/configure.in		\ | ||||
| 	$(DIRECTORY)/install-sh			\ | ||||
| 	$(DIRECTORY)/ltconfig			\ | ||||
| 	$(DIRECTORY)/ltmain.sh			\ | ||||
| 	$(DIRECTORY)/missing			\ | ||||
| 	$(DIRECTORY)/mkinstalldirs		\ | ||||
| 	$(DIRECTORY)/stamp-h.in			\ | ||||
| 	$(DIRECTORY)/configure			\ | ||||
| 	$(DIRECTORY)/docs/CONFIG		\ | ||||
| 	$(DIRECTORY)/docs/CONFORM		\ | ||||
| 	$(DIRECTORY)/docs/COPYING		\ | ||||
| 	$(DIRECTORY)/docs/COPYRIGHT		\ | ||||
| 	$(DIRECTORY)/docs/DEVINFO		\ | ||||
| 	$(DIRECTORY)/docs/IAFA-PACKAGE		\ | ||||
| 	$(DIRECTORY)/docs/INSTALL		\ | ||||
| 	$(DIRECTORY)/docs/INSTALL.GNU		\ | ||||
| 	$(DIRECTORY)/docs/README		\ | ||||
| 	$(DIRECTORY)/docs/README.*		\ | ||||
| 	$(DIRECTORY)/docs/RELNOTES		\ | ||||
| 	$(DIRECTORY)/docs/VERSIONS		\ | ||||
| 	$(DIRECTORY)/docs/*.spec		\ | ||||
| 	$(DIRECTORY)/bin/README			\ | ||||
| 	$(DIRECTORY)/bin/mklib*			\ | ||||
| 	$(DIRECTORY)/*.BAT			\ | ||||
| 	$(DIRECTORY)/*.bat			\ | ||||
| 	$(DIRECTORY)/descrip.mms		\ | ||||
| 	$(DIRECTORY)/mms-config			\ | ||||
| 	$(DIRECTORY)/xlib.opt			\ | ||||
| 	$(DIRECTORY)/STARTUP.MK			\ | ||||
| 	$(DIRECTORY)/mesawin32.mak		\ | ||||
| 	$(DIRECTORY)/Names.win			\ | ||||
| 	$(DIRECTORY)/win32-openstep.sh		\ | ||||
| 	$(DIRECTORY)/*.dja			\ | ||||
| 	$(DIRECTORY)/include/GL/Makefile.in	\ | ||||
| 	$(DIRECTORY)/include/GL/Makefile.am	\ | ||||
| 	$(DIRECTORY)/include/GL/dosmesa.h	\ | ||||
| 	$(DIRECTORY)/include/GL/foomesa.h	\ | ||||
| 	$(DIRECTORY)/include/GL/fxmesa.h	\ | ||||
| 	$(DIRECTORY)/include/GL/ggimesa.h	\ | ||||
| 	$(DIRECTORY)/include/GL/gl.h		\ | ||||
| 	$(DIRECTORY)/include/GL/gl_mangle.h	\ | ||||
| 	$(DIRECTORY)/include/GL/glu.h		\ | ||||
| 	$(DIRECTORY)/include/GL/glu_mangle.h	\ | ||||
| 	$(DIRECTORY)/include/GL/glx.h		\ | ||||
| 	$(DIRECTORY)/include/GL/glx_mangle.h	\ | ||||
| 	$(DIRECTORY)/include/GL/mglmesa.h	\ | ||||
| 	$(DIRECTORY)/include/GL/osmesa.h	\ | ||||
| 	$(DIRECTORY)/include/GL/svgamesa.h	\ | ||||
| 	$(DIRECTORY)/include/GL/wmesa.h		\ | ||||
| 	$(DIRECTORY)/include/GL/xmesa.h		\ | ||||
| 	$(DIRECTORY)/include/GL/xmesa_x.h	\ | ||||
| 	$(DIRECTORY)/include/GL/xmesa_xf86.h	\ | ||||
| 	$(DIRECTORY)/include/GLView.h		\ | ||||
| 	$(DIRECTORY)/include/Makefile.in	\ | ||||
| 	$(DIRECTORY)/include/Makefile.am	\ | ||||
| 	$(DIRECTORY)/src/Makefile*		\ | ||||
| 	$(DIRECTORY)/src/descrip.mms		\ | ||||
| 	$(DIRECTORY)/src/mms_depend		\ | ||||
| 	$(DIRECTORY)/src/mesa.conf		\ | ||||
| 	$(DIRECTORY)/src/*.def			\ | ||||
| 	$(DIRECTORY)/src/depend			\ | ||||
| 	$(DIRECTORY)/src/*.[chS]		\ | ||||
| 	$(DIRECTORY)/src/Allegro/*.[ch]		\ | ||||
| 	$(DIRECTORY)/src/BeOS/*.cpp		\ | ||||
| 	$(DIRECTORY)/src/D3D/*.cpp		\ | ||||
| 	$(DIRECTORY)/src/D3D/*.CPP		\ | ||||
| 	$(DIRECTORY)/src/D3D/*.h		\ | ||||
| 	$(DIRECTORY)/src/D3D/*.H		\ | ||||
| 	$(DIRECTORY)/src/D3D/*.c		\ | ||||
| 	$(DIRECTORY)/src/D3D/*.C		\ | ||||
| 	$(DIRECTORY)/src/D3D/MAKEFILE		\ | ||||
| 	$(DIRECTORY)/src/D3D/*bat		\ | ||||
| 	$(DIRECTORY)/src/D3D/*DEF		\ | ||||
| 	$(DIRECTORY)/src/DOS/DEPEND.DOS		\ | ||||
| 	$(DIRECTORY)/src/DOS/*.c		\ | ||||
| 	$(DIRECTORY)/src/FX/Makefile.am		\ | ||||
| 	$(DIRECTORY)/src/FX/Makefile.in		\ | ||||
| 	$(DIRECTORY)/src/FX/*.[ch]		\ | ||||
| 	$(DIRECTORY)/src/FX/*.def		\ | ||||
| 	$(DIRECTORY)/src/FX/X86/Makefile.am	\ | ||||
| 	$(DIRECTORY)/src/FX/X86/Makefile.in	\ | ||||
| 	$(DIRECTORY)/src/FX/X86/*.[Shc]		\ | ||||
| 	$(DIRECTORY)/Makefile*					\ | ||||
| 	$(DIRECTORY)/Make-config				\ | ||||
| 	$(DIRECTORY)/acconfig.h					\ | ||||
| 	$(DIRECTORY)/acinclude.m4				\ | ||||
| 	$(DIRECTORY)/aclocal.m4					\ | ||||
| 	$(DIRECTORY)/conf.h.in					\ | ||||
| 	$(DIRECTORY)/config.guess				\ | ||||
| 	$(DIRECTORY)/config.sub					\ | ||||
| 	$(DIRECTORY)/configure					\ | ||||
| 	$(DIRECTORY)/configure.in				\ | ||||
| 	$(DIRECTORY)/install-sh					\ | ||||
| 	$(DIRECTORY)/ltconfig					\ | ||||
| 	$(DIRECTORY)/ltmain.sh					\ | ||||
| 	$(DIRECTORY)/missing					\ | ||||
| 	$(DIRECTORY)/mkinstalldirs				\ | ||||
| 	$(DIRECTORY)/stamp-h.in					\ | ||||
| 	$(DIRECTORY)/configure					\ | ||||
| 	$(DIRECTORY)/docs/CONFIG				\ | ||||
| 	$(DIRECTORY)/docs/CONFORM				\ | ||||
| 	$(DIRECTORY)/docs/COPYING				\ | ||||
| 	$(DIRECTORY)/docs/COPYRIGHT				\ | ||||
| 	$(DIRECTORY)/docs/DEVINFO				\ | ||||
| 	$(DIRECTORY)/docs/IAFA-PACKAGE				\ | ||||
| 	$(DIRECTORY)/docs/INSTALL				\ | ||||
| 	$(DIRECTORY)/docs/INSTALL.GNU				\ | ||||
| 	$(DIRECTORY)/docs/README				\ | ||||
| 	$(DIRECTORY)/docs/README.*				\ | ||||
| 	$(DIRECTORY)/docs/RELNOTES*				\ | ||||
| 	$(DIRECTORY)/docs/VERSIONS				\ | ||||
| 	$(DIRECTORY)/docs/*.spec				\ | ||||
| 	$(DIRECTORY)/bin/README					\ | ||||
| 	$(DIRECTORY)/bin/mklib*					\ | ||||
| 	$(DIRECTORY)/*.BAT					\ | ||||
| 	$(DIRECTORY)/*.bat					\ | ||||
| 	$(DIRECTORY)/descrip.mms				\ | ||||
| 	$(DIRECTORY)/mms-config					\ | ||||
| 	$(DIRECTORY)/xlib.opt					\ | ||||
| 	$(DIRECTORY)/STARTUP.MK					\ | ||||
| 	$(DIRECTORY)/mesawin32.mak				\ | ||||
| 	$(DIRECTORY)/Names.win					\ | ||||
| 	$(DIRECTORY)/win32-openstep.sh				\ | ||||
| 	$(DIRECTORY)/Makefile.dja				\ | ||||
| 	$(DIRECTORY)/common.dja					\ | ||||
| 	$(DIRECTORY)/include/GL/Makefile.in			\ | ||||
| 	$(DIRECTORY)/include/GL/Makefile.am			\ | ||||
| 	$(DIRECTORY)/include/GL/amesa.h				\ | ||||
| 	$(DIRECTORY)/include/GL/dosmesa.h			\ | ||||
| 	$(DIRECTORY)/include/GL/foomesa.h			\ | ||||
| 	$(DIRECTORY)/include/GL/fxmesa.h			\ | ||||
| 	$(DIRECTORY)/include/GL/ggimesa.h			\ | ||||
| 	$(DIRECTORY)/include/GL/gl.h				\ | ||||
| 	$(DIRECTORY)/include/GL/gl_mangle.h			\ | ||||
| 	$(DIRECTORY)/include/GL/glu.h				\ | ||||
| 	$(DIRECTORY)/include/GL/glu_mangle.h			\ | ||||
| 	$(DIRECTORY)/include/GL/glx.h				\ | ||||
| 	$(DIRECTORY)/include/GL/glx_mangle.h			\ | ||||
| 	$(DIRECTORY)/include/GL/mesa_wgl.h			\ | ||||
| 	$(DIRECTORY)/include/GL/mglmesa.h			\ | ||||
| 	$(DIRECTORY)/include/GL/osmesa.h			\ | ||||
| 	$(DIRECTORY)/include/GL/svgamesa.h			\ | ||||
| 	$(DIRECTORY)/include/GL/wmesa.h				\ | ||||
| 	$(DIRECTORY)/include/GL/xmesa.h				\ | ||||
| 	$(DIRECTORY)/include/GL/xmesa_x.h			\ | ||||
| 	$(DIRECTORY)/include/GL/xmesa_xf86.h			\ | ||||
| 	$(DIRECTORY)/include/GLView.h				\ | ||||
| 	$(DIRECTORY)/include/Makefile.in			\ | ||||
| 	$(DIRECTORY)/include/Makefile.am			\ | ||||
| 	$(DIRECTORY)/src/Makefile*				\ | ||||
| 	$(DIRECTORY)/src/descrip.mms				\ | ||||
| 	$(DIRECTORY)/src/mms_depend				\ | ||||
| 	$(DIRECTORY)/src/mesa.conf				\ | ||||
| 	$(DIRECTORY)/src/*.def					\ | ||||
| 	$(DIRECTORY)/src/depend					\ | ||||
| 	$(DIRECTORY)/src/*.[chS]				\ | ||||
| 	$(DIRECTORY)/src/Allegro/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/BeOS/*.cpp				\ | ||||
| 	$(DIRECTORY)/src/D3D/*.cpp				\ | ||||
| 	$(DIRECTORY)/src/D3D/*.CPP				\ | ||||
| 	$(DIRECTORY)/src/D3D/*.h				\ | ||||
| 	$(DIRECTORY)/src/D3D/*.H				\ | ||||
| 	$(DIRECTORY)/src/D3D/*.c				\ | ||||
| 	$(DIRECTORY)/src/D3D/*.C				\ | ||||
| 	$(DIRECTORY)/src/D3D/MAKEFILE				\ | ||||
| 	$(DIRECTORY)/src/D3D/*bat				\ | ||||
| 	$(DIRECTORY)/src/D3D/*DEF				\ | ||||
| 	$(DIRECTORY)/src/DOS/DEPEND.DOS				\ | ||||
| 	$(DIRECTORY)/src/DOS/*.c				\ | ||||
| 	$(DIRECTORY)/src/FX/Makefile.am				\ | ||||
| 	$(DIRECTORY)/src/FX/Makefile.in				\ | ||||
| 	$(DIRECTORY)/src/FX/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/FX/*.def				\ | ||||
| 	$(DIRECTORY)/src/FX/X86/Makefile.am			\ | ||||
| 	$(DIRECTORY)/src/FX/X86/Makefile.in			\ | ||||
| 	$(DIRECTORY)/src/FX/X86/*.[Shc]				\ | ||||
| 	$(DIRECTORY)/src/GGI/Makefile.am			\ | ||||
| 	$(DIRECTORY)/src/GGI/Makefile.in			\ | ||||
| 	$(DIRECTORY)/src/GGI/*.[ch]				\ | ||||
| @@ -430,55 +438,68 @@ LIB_FILES =	\ | ||||
| 	$(DIRECTORY)/src/GGI/include/ggi/mesa/Makefile.am	\ | ||||
| 	$(DIRECTORY)/src/GGI/include/ggi/mesa/Makefile.in	\ | ||||
| 	$(DIRECTORY)/src/GGI/include/ggi/mesa/*.h		\ | ||||
| 	$(DIRECTORY)/src/KNOWN_BUGS		\ | ||||
| 	$(DIRECTORY)/src/MGL/*.[ch]		\ | ||||
| 	$(DIRECTORY)/src/MGL/*.txt		\ | ||||
| 	$(DIRECTORY)/src/OSmesa/Makefile.am	\ | ||||
| 	$(DIRECTORY)/src/OSmesa/Makefile.in	\ | ||||
| 	$(DIRECTORY)/src/OSmesa/*.[ch]		\ | ||||
| 	$(DIRECTORY)/src/S3/*.[ch]		\ | ||||
| 	$(DIRECTORY)/src/S3/*.def		\ | ||||
| 	$(DIRECTORY)/src/S3/*.mak		\ | ||||
| 	$(DIRECTORY)/src/S3/*.rc		\ | ||||
| 	$(DIRECTORY)/src/SVGA/Makefile.am	\ | ||||
| 	$(DIRECTORY)/src/SVGA/Makefile.in	\ | ||||
| 	$(DIRECTORY)/src/SVGA/*.[ch]		\ | ||||
| 	$(DIRECTORY)/src/Windows/*.[ch]		\ | ||||
| 	$(DIRECTORY)/src/Windows/*.def		\ | ||||
| 	$(DIRECTORY)/src/X/Makefile.am		\ | ||||
| 	$(DIRECTORY)/src/X/Makefile.in		\ | ||||
| 	$(DIRECTORY)/src/X/*.[ch]		\ | ||||
| 	$(DIRECTORY)/src/X86/*.[ch]		\ | ||||
| 	$(DIRECTORY)/src/X86/Makefile.am	\ | ||||
| 	$(DIRECTORY)/src/X86/Makefile.in	\ | ||||
| 	$(DIRECTORY)/src/X86/*.m4		\ | ||||
| 	$(DIRECTORY)/src/X86/*.S		\ | ||||
| 	$(DIRECTORY)/src/*.dja			\ | ||||
| 	$(DIRECTORY)/src-glu/README[12]		\ | ||||
| 	$(DIRECTORY)/src-glu/Makefile*		\ | ||||
| 	$(DIRECTORY)/src-glu/descrip.mms	\ | ||||
| 	$(DIRECTORY)/src-glu/mms_depend		\ | ||||
| 	$(DIRECTORY)/src-glu/*.def		\ | ||||
| 	$(DIRECTORY)/src-glu/*.dja		\ | ||||
| 	$(DIRECTORY)/src-glu/depend		\ | ||||
| 	$(DIRECTORY)/src-glu/*.[ch]		\ | ||||
| 	$(DIRECTORY)/widgets-mesa		\ | ||||
| 	$(DIRECTORY)/widgets-sgi		\ | ||||
| 	$(DIRECTORY)/util/README		\ | ||||
| 	$(DIRECTORY)/util/Makefile.am		\ | ||||
| 	$(DIRECTORY)/util/Makefile.in		\ | ||||
| 	$(DIRECTORY)/util/*.[ch]		\ | ||||
| 	$(DIRECTORY)/util/sampleMakefile	\ | ||||
| 	$(DIRECTORY)/BeOS/Makefile		\ | ||||
| 	$(DIRECTORY)/BeOS/*.cpp			 | ||||
|  | ||||
| # old stuff | ||||
| #	$(DIRECTORY)/Win32			\ | ||||
| #	$(DIRECTORY)/win32 | ||||
|  | ||||
| #	$(DIRECTORY)/OpenStep			\ | ||||
| # | ||||
| # | ||||
| 	$(DIRECTORY)/src/KNOWN_BUGS				\ | ||||
| 	$(DIRECTORY)/src/MGL/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/MGL/*.txt				\ | ||||
| 	$(DIRECTORY)/src/OSmesa/Makefile.am			\ | ||||
| 	$(DIRECTORY)/src/OSmesa/Makefile.in			\ | ||||
| 	$(DIRECTORY)/src/OSmesa/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/S3/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/S3/*.def				\ | ||||
| 	$(DIRECTORY)/src/S3/*.mak				\ | ||||
| 	$(DIRECTORY)/src/S3/*.rc				\ | ||||
| 	$(DIRECTORY)/src/SVGA/Makefile.am			\ | ||||
| 	$(DIRECTORY)/src/SVGA/Makefile.in			\ | ||||
| 	$(DIRECTORY)/src/SVGA/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/Windows/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/Windows/*.def				\ | ||||
| 	$(DIRECTORY)/src/X/Makefile.am				\ | ||||
| 	$(DIRECTORY)/src/X/Makefile.in				\ | ||||
| 	$(DIRECTORY)/src/X/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/X86/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/X86/Makefile.am			\ | ||||
| 	$(DIRECTORY)/src/X86/Makefile.in			\ | ||||
| 	$(DIRECTORY)/src/X86/*.m4				\ | ||||
| 	$(DIRECTORY)/src/X86/*.S				\ | ||||
| 	$(DIRECTORY)/src/*.dja					\ | ||||
| 	$(DIRECTORY)/src-glu/README[12]				\ | ||||
| 	$(DIRECTORY)/src-glu/Makefile*				\ | ||||
| 	$(DIRECTORY)/src-glu/descrip.mms			\ | ||||
| 	$(DIRECTORY)/src-glu/mms_depend				\ | ||||
| 	$(DIRECTORY)/src-glu/*.def				\ | ||||
| 	$(DIRECTORY)/src-glu/*.dja				\ | ||||
| 	$(DIRECTORY)/src-glu/depend				\ | ||||
| 	$(DIRECTORY)/src-glu/*.[ch]				\ | ||||
| 	$(DIRECTORY)/widgets-mesa				\ | ||||
| 	$(DIRECTORY)/widgets-sgi				\ | ||||
| 	$(DIRECTORY)/util/README				\ | ||||
| 	$(DIRECTORY)/util/Makefile.am				\ | ||||
| 	$(DIRECTORY)/util/Makefile.in				\ | ||||
| 	$(DIRECTORY)/util/*.[ch]				\ | ||||
| 	$(DIRECTORY)/util/sampleMakefile			\ | ||||
| 	$(DIRECTORY)/BeOS/Makefile				\ | ||||
| 	$(DIRECTORY)/BeOS/*.cpp					\ | ||||
| 	$(DIRECTORY)/WIN32/NMAKE.MAK				\ | ||||
| 	$(DIRECTORY)/WIN32/NMAKE.MIF				\ | ||||
| 	$(DIRECTORY)/WIN32/RES/*rc				\ | ||||
| 	$(DIRECTORY)/WIN32/RES/*def				\ | ||||
| 	$(DIRECTORY)/WIN32/RULES/lib.*				\ | ||||
| 	$(DIRECTORY)/WIN32/RULES/progs.*			\ | ||||
| 	$(DIRECTORY)/macos/README				\ | ||||
| 	$(DIRECTORY)/macos/gli_api/*.h				\ | ||||
| 	$(DIRECTORY)/macos/include-mac/*.h			\ | ||||
| 	$(DIRECTORY)/macos/libraries/*.stub			\ | ||||
| 	$(DIRECTORY)/macos/libraries/*Stub			\ | ||||
| 	$(DIRECTORY)/macos/projects/*.mcp			\ | ||||
| 	$(DIRECTORY)/macos/projects/*.exp			\ | ||||
| 	$(DIRECTORY)/macos/projects/*.h				\ | ||||
| 	$(DIRECTORY)/macos/resources/*.c			\ | ||||
| 	$(DIRECTORY)/macos/resources/*.r			\ | ||||
| 	$(DIRECTORY)/macos/resources/*.rsrc			\ | ||||
| 	$(DIRECTORY)/macos/src-agl/*.exp			\ | ||||
| 	$(DIRECTORY)/macos/src-agl/*.[ch]			\ | ||||
| 	$(DIRECTORY)/macos/src-gli/*.[ch]			\ | ||||
| 	$(DIRECTORY)/OpenStep					\ | ||||
|  | ||||
|  | ||||
| DEMO_FILES =	\ | ||||
| @@ -517,13 +538,13 @@ DEMO_FILES =	\ | ||||
|  | ||||
| lib_tar: | ||||
| 	cd .. ; \ | ||||
| 	tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \ | ||||
| 	tar --exclude CVS -c -v -f $(LIB_NAME).tar $(LIB_FILES) ; \ | ||||
| 	gzip $(LIB_NAME).tar ; \ | ||||
| 	mv $(LIB_NAME).tar.gz $(DIRECTORY) | ||||
|  | ||||
| demo_tar: | ||||
| 	cd .. ; \ | ||||
| 	tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) ; \ | ||||
| 	tar --exclude CVS -c -v -f $(DEMO_NAME).tar $(DEMO_FILES) ; \ | ||||
| 	gzip $(DEMO_NAME).tar ; \ | ||||
| 	mv $(DEMO_NAME).tar.gz $(DIRECTORY) | ||||
|  | ||||
|   | ||||
| @@ -16,11 +16,11 @@ Status | ||||
|  | ||||
| Version | ||||
|  | ||||
|     $Id: MESA_resize_buffers.spec,v 1.1 1999/07/20 00:30:41 brianp Exp $ | ||||
|     $Id: MESA_resize_buffers.spec,v 1.1.2.1 2000/04/04 23:28:00 brianp Exp $ | ||||
|  | ||||
| Number | ||||
|  | ||||
|     XXX none assigned | ||||
|     196 | ||||
|  | ||||
| Dependencies | ||||
|  | ||||
|   | ||||
| @@ -16,11 +16,11 @@ Status | ||||
|  | ||||
| Version | ||||
|  | ||||
|     $Id: MESA_window_pos.spec,v 1.1 1999/07/20 00:30:41 brianp Exp $ | ||||
|     $Id: MESA_window_pos.spec,v 1.1.2.1 2000/04/04 23:28:00 brianp Exp $ | ||||
|  | ||||
| Number | ||||
|  | ||||
|     XXX non assigned | ||||
|     197 | ||||
|  | ||||
| Dependencies | ||||
|  | ||||
|   | ||||
| @@ -1,13 +1,8 @@ | ||||
|  | ||||
|                      3Dfx Glide device driver for Mesa 3.1 | ||||
|                      3Dfx Glide device driver for Mesa 3.2 | ||||
| 				(see below for FAQ) | ||||
|  | ||||
|  | ||||
| This software is distributed under the terms of the GNU Library | ||||
| General Public License, see the LICENSE file for details. | ||||
|  | ||||
|  | ||||
|  | ||||
| What do you need ? | ||||
| ------------------ | ||||
|  | ||||
| @@ -327,6 +322,11 @@ The Mesa/Voodoo Environment Variables: | ||||
| 		export MESA_FX_INFO=1 | ||||
|           you will get some useful statistic. | ||||
|  | ||||
|         - If you define the env. var. MESA_FX_NO_SIGNALS: | ||||
| 		export MESA_FX_NO_SIGNALS=1 | ||||
|           Mesa/FX will not install atexit() or signal() handlers. | ||||
|  | ||||
|  | ||||
|  | ||||
| Know BUGS and Problems: | ||||
| ----------------------- | ||||
| @@ -541,9 +541,7 @@ No because the Linux Glide doesn't (yet) support the Voodoo Rush. | ||||
| a binary copy of the Mesa in order to make the software | ||||
| working out of the box ? | ||||
|  | ||||
| Yes, you have simply to include some informations about authors | ||||
| and where the library sources are available (check the LICENSE | ||||
| file for more informations about the GNU GPL). | ||||
| Yes. | ||||
|  | ||||
|  | ||||
| 11. Which is the best make target for compiling the Mesa for | ||||
|   | ||||
| @@ -28,7 +28,7 @@ working.  No optimizations have been made at this time. | ||||
|  | ||||
| Compiling | ||||
|  | ||||
| Simply cd to the Mesa-3.x directory and type "make beos-r4". | ||||
| In the Mesa-3.x directory type "make -f Makefile.X11 beos-r4". | ||||
| When it finishes the libMesaGL.so and libMesaGLU.so libraries for | ||||
| BeOS will be in the Mesa-3.x/lib/ directory. | ||||
|  | ||||
| @@ -99,4 +99,4 @@ of February, 1999. | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| $Id: README.BEOS,v 1.5 1999/03/03 02:34:04 brianp Exp $ | ||||
| $Id: README.BEOS,v 1.5.6.1 1999/11/27 01:39:50 brianp Exp $ | ||||
|   | ||||
| @@ -1,120 +1,50 @@ | ||||
| August 30, 1998 -- Paul Garceau (pgarceau@teleport.com) | ||||
| August 30, 1998 -- Paul Garceau | ||||
| Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com) | ||||
|  | ||||
| DISCLAIMER:  I make this extension to the Mesa 3-D Graphics Library as a service | ||||
| DISCLAIMER:  I make this port of the Mesa 3-D Graphics Library as a service | ||||
| to the general public.  I can, in no way support or make any guarantee that the | ||||
| EGCS-Mingw32 build or any Gnu-Win32 build will work for your system. The | ||||
| associated packages and batch files I have included as part of the EGCS-Mingw32 | ||||
| extension are provided "As-is" with out any guarantee of support or functionality | ||||
| from the author of this EGCS-Mingw32 native windows port of the Mesa 3-D Graphics | ||||
| Library. | ||||
| build will work for your system. | ||||
|  | ||||
| 	The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author. | ||||
|  | ||||
| 	Feel free to modify or change things as you see fit, just remember that | ||||
| I can't support any modifications you might want to make to the files which I | ||||
| have included OR the lgpl protected Mesa 3-D Graphics Library. | ||||
|  | ||||
| 	I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site: | ||||
|  | ||||
| 	EGCS-Mingw32 Beta 3.08 Archive Manifest: | ||||
| 		mingw32.bat | ||||
| 		src/makefile.nt4 | ||||
| 		src/wmesa.c | ||||
| 		src-glu/makefile.nt4 | ||||
| 		(ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/) | ||||
|  | ||||
| ############### | ||||
| 	This build has been tested under WinNT4/SP6.  Win9x and WinNT5 remain untested by me.  I have not tested any of the demos included with Mesa3d. | ||||
|  | ||||
| Greetings, | ||||
| 	I recommend using the GCC-2.95.2/Mingw32. | ||||
|  | ||||
| 	In order to build the Mingw32 set of Mesa 3-D Graphics Library for Beta3.08 | ||||
| it will be necessary for you to use the Dos or Command Prompt that is available | ||||
| on most of the i86 based MS Windows machines.  Also, I believe that this build | ||||
| will run on Win95, Win98, WinNT4 and WinNT5. | ||||
|  | ||||
| 	I haven't tested Win95/98 or WinNT5.  This build was generated under | ||||
| WinNT4 with SP3 installed. | ||||
|  | ||||
| 	This has not been tested under any systems outside of | ||||
| a WinNT4 Workstation with EGCS-Mingw32 toolchain, v.1.0.2 installed. | ||||
|  | ||||
| 	EGCS-Mingw32 uses a variation of gcc to handle its build.  The Mesa 3-D | ||||
| Graphics Library build that I have generated is based, in small part, on the | ||||
| Cygwin32 build and associated makefiles that Stephane Rehel (rehel@worldnet.fr) | ||||
| defined back in 1997.  The EGCS-Mingw32 toolchain is capable of generating | ||||
| native windows code and, as of the date of this readme, can be obtained from: | ||||
|  | ||||
| 	http://www.xraylith.wisc.edu/~khan/software/gnu-win32/egcs-mingw32-102.html | ||||
| 	ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2 | ||||
|  | ||||
| 	Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen | ||||
| and Colin Peters for making it possible for the EGCS-Mingw32 toolchain to exist. | ||||
| and Colin Peters for making it possible for the Mingw32 toolchain to exist.  Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build. | ||||
|  | ||||
| Installing EGCS-Mingw32 Build Revisions: | ||||
| Installing GCC-2.95.2/Mingw32 Build: | ||||
|  | ||||
| 	To install the makefile and source revisions incorporated with this build | ||||
| of the Mesa 3-D Graphics Library, you'll have to use a version of winzip.  I am | ||||
| in the process of finding a suitable Win32 compatible tar executable so that if | ||||
| you don't have winzip, you can still decompress the files into their respective | ||||
| folders/directories. | ||||
| 	a) Open the file archive (either tar.gz or .zip extensions) | ||||
|  | ||||
| 	a) Move the mingw32.zip file to the top level of the hard drive on your | ||||
| system. | ||||
| 	b) Decide the directory you want to move the archived files to. | ||||
|  | ||||
| 	b) Copy all of the Beta 3.08 src/windows files to the src/ directory. | ||||
| 	d) Extract the files from the archive. | ||||
| 	 | ||||
| 	e) Edit the mingw32.bat file to accomodate your choice of directory structure. | ||||
|  | ||||
| 	b) Open the Winzip file | ||||
|  | ||||
| 	c) Verify that the files will be properly extracted. | ||||
|  | ||||
| 	d) Extract the files with the Winzip "Overwrite" and "Use Folder Names" | ||||
| 	   options enabled. | ||||
|  | ||||
| 	The zip file directory structure extraction defaults to the top level of | ||||
| the hard drive where the mingw32.zip file exists unless otherwise instructed by | ||||
| you. | ||||
|  | ||||
| 	The version of wmesa.c included with the mingw32 archive needs to replace | ||||
| the current version of the Beta 3.08 wmesa.c file in order for the egcs-mingw32 | ||||
| build to work.  This is because the original Win32 stuff assumes that the glut | ||||
| utilities are to be installed.  The Glut utilities are not part of the | ||||
| egcs-mingw32 build for Beta 3.08. | ||||
|  | ||||
|  | ||||
| Build Considerations: | ||||
|  | ||||
| 	In order to get the build to work, I needed to create a special makefile | ||||
| for each library which the Mesa 3-D Graphics Library requires since there is no | ||||
| comparable make-config/config on a native windows platform. | ||||
|  | ||||
| 	Since I was only creating a few of the possible libraries for  | ||||
| Mesa (gl, glu), I only created the new make files in their respective libraries | ||||
| src, src-glu).  For libMesaaux.a. you will find a makefile for it in the | ||||
| src-aux directory.  libMesatk.a and libglut.a were not ported. | ||||
|  | ||||
| 	The build itself is a .bat based build and uses Gnu Make,Version 3.76.1 to | ||||
| process the makefiles noted above.  The build must be run from the directory | ||||
| where the mingw32.bat file is.  You can get the binary version of Make 3.76.1 | ||||
| from Jan-Jaap van der Heijden's site in Germany: | ||||
|  | ||||
| 	http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/download.html | ||||
|  | ||||
| 	It was necessary to modify some source code, specifically the source code | ||||
| in the src-glu directory.  I needed to modify nurbs.c, quadric.c and tess.c in | ||||
| order to get them to work using the EGCS-Mingw32 toolchain. | ||||
|  | ||||
| 	The original EGCS-Mingw32 Toolchain, is available from: | ||||
|  | ||||
| 	http://www.xraylith.wisc.edu/~khan/software/gnu-win32/egcs-mingw32-102.html	 | ||||
| 		%mesaroot%:	This is your root directory (Mesa-3.2) | ||||
| 		%mesasrc%:	This is the Mesa-3.2 src directory (Mesa-3.2\src) | ||||
| 		%mesalib%:	This is where the build will put libGL.a and libGLU.a | ||||
|  | ||||
| Running the Build: | ||||
|  | ||||
| 	Ok, now that we've got the basics out of the way, follows is all you need | ||||
| to do in order to build the EGCS-Mingw32 version of libMesaGL.a and libMesaGLU.a: | ||||
|  | ||||
| 	Open your Command Prompt/Dos prompt. | ||||
| 	Go to your Mesa-3.0 beta 'root' directory. | ||||
| 		This is the same directory that the Mesa mingw32.zip file was | ||||
| 		originally stored in if you've installed the Mesa-3.0 beta 3-D | ||||
| 		Graphics Library source as outlined in the "readme" file included | ||||
| 		with the Mesa-3.0 beta distribution. | ||||
| 	Open your Command Prompt or MS-DOS prompt. | ||||
| 	Go to your Mesa-3.2 'root' directory | ||||
| 	At the command line type: mingw32 | ||||
| 		mingw32 is the .bat file that actually does the build. | ||||
|  | ||||
| 	That's all there is to it. | ||||
|  | ||||
| 	Enjoy! | ||||
|  | ||||
|   | ||||
| @@ -1,9 +1,7 @@ | ||||
|  | ||||
| 			Mesa 3.0 MITS Information | ||||
|  | ||||
|  | ||||
| This software is distributed under the terms of the GNU Library | ||||
| General Public License, see the LICENSE file for details. | ||||
| [The MITS code hasn't been update for Mesa 3.1 and may no longer work] | ||||
|  | ||||
|  | ||||
| This document is a preliminary introduction to help you get | ||||
|   | ||||
| @@ -1,33 +1,54 @@ | ||||
|  | ||||
|                          Mesa 3.0 Unix/X11 Information | ||||
|                          Mesa 3.2 Unix/X11 Information | ||||
|  | ||||
|  | ||||
|  | ||||
| Installation | ||||
| ============ | ||||
|  | ||||
| To compile the library, first type 'make' alone to see the list of system | ||||
| configurations currently supported.  If you see your configuration on the | ||||
| list, type 'make <config>'.  Most popular Unix/X workstations are currently | ||||
| supported. | ||||
| There are two ways to compile Mesa on Unix/X11 systems: | ||||
|  | ||||
| 1. The old way: | ||||
|     First type 'make' alone to see the list of system | ||||
|     configurations currently supported.  If you see your configuration on the | ||||
|     list, type 'make <config>'.  Most popular Unix/X workstations are currently | ||||
|     supported. | ||||
|  | ||||
|     If your system configuration is not listed by 'make', you'll have to modify | ||||
|     the top-level Makefile and Make-config files.  There are instructions in | ||||
|     each file. | ||||
|  | ||||
|  | ||||
| 2. The new way: | ||||
|     Type './configure' and then 'make'.  This uses GNU autoconfig. | ||||
|     See docs/INSTALL for more details. | ||||
|  | ||||
|  | ||||
| The top-level makefile will execute the makefiles in a number of sub- | ||||
| directories.  When finished, the Mesa libraries will be in the Mesa-2.6/lib/ | ||||
| directories.  When finished, the Mesa libraries will be in the Mesa-3.2/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 | ||||
| in the "xdemos/", "samples/", and "book/" directories for you to try out. | ||||
| If you only want to compile the contents of one subdirectory you can 'cd' | ||||
| to that directory and type 'make <config>' there. | ||||
|  | ||||
| If your system configuration is not listed by 'make', you'll have to modify | ||||
| the top-level Makefile and Make-config files.  There are instructions in | ||||
| each file. | ||||
|  | ||||
| If you have compilation problems you should try to fix them and return the | ||||
| patches to the author. | ||||
|  | ||||
|  | ||||
| Notes on assembly language optimizations: | ||||
|  | ||||
|    When using the old-style Makefiles, you can specify a configuration | ||||
|    that uses X86 assembly language optimizations (linux-3dnow for example). | ||||
|  | ||||
|    The detection of MMX, 3DNow!, PIII/SSE, etc capability is done at | ||||
|    runtime.  That means you can compile Mesa for 3DNow! optimizations | ||||
|    even if you don't have an AMD CPU. | ||||
|  | ||||
|    However, your Linux binutils and assembler must understand the | ||||
|    special instructions in order to compile them.  If you have | ||||
|    compilation problems, try upgrading your binutils. | ||||
|  | ||||
|  | ||||
| Header and library files: | ||||
|    After you've compiled Mesa and tried the demos I recommend the following | ||||
|    procedure for "installing" Mesa. | ||||
| @@ -120,7 +141,7 @@ Xt/Motif Widgets: | ||||
|  | ||||
| Togl: | ||||
|    Togl is an OpenGL/Mesa widget for Tcl/Tk. | ||||
|    See http://www.ssec.wisc.edu/~brianp/Togl.html for more information. | ||||
|    See http://togl.sourceforge.net for more information. | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -239,6 +260,7 @@ Extensions: | ||||
|    The following OpenGL GLX extensions are currently implemented: | ||||
|  | ||||
|       GLX_EXT_visual_info - GLX visual and transparent pixel extension | ||||
|       GLX_EXT_visual_rating - GLX visual caveats | ||||
|  | ||||
|    For detailed information about the extensions see www.opengl.org | ||||
|  | ||||
| @@ -301,4 +323,4 @@ Summary of X-related environment variables: | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| $Id: README.X11,v 3.3 1999/09/15 16:39:01 brianp Exp $ | ||||
| $Id: README.X11,v 3.3.2.4 2000/04/04 15:13:41 brianp Exp $ | ||||
|   | ||||
							
								
								
									
										146
									
								
								docs/RELNOTES-3.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								docs/RELNOTES-3.1
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,146 @@ | ||||
|  | ||||
|                          Mesa 3.1 release notes | ||||
|  | ||||
|                              PLEASE READ!!!! | ||||
|  | ||||
|  | ||||
| New copyright | ||||
| ------------- | ||||
|  | ||||
| Mesa 3.1 will be distributed under an XFree86-style copyright instead | ||||
| of the GNU LGPL. | ||||
|  | ||||
|  | ||||
| New directories | ||||
| --------------- | ||||
|  | ||||
| All documentation files are now in the docs/ directory. | ||||
| All shell scripts are now in the bin/ directory. | ||||
|  | ||||
|  | ||||
| New library names | ||||
| ----------------- | ||||
|  | ||||
| Formerly, the main Mesa library was named libMesaGL.so (or libMesaGL.a) | ||||
| and the GLU library was named libMesaGLU.so (or libMesaGLU.a). | ||||
|  | ||||
| Now, the main library is named libGL.so (or libGL.a) and the GLU library | ||||
| is named libGLU.so (or libGLU.a). | ||||
|  | ||||
| The change allows Mesa to be more easily substituted for OpenGL. | ||||
| Specifically, the linker/loader on some Unix-like systems won't | ||||
| allow libMesaGL.so to be used instead of libGL.so if the application | ||||
| was linked with the former. | ||||
|  | ||||
| Warning: if you have another OpenGL implementation installed on your | ||||
| system (i.e. you have another OpenGL libGL.so) you'll have to be | ||||
| carefull about which library (OpenGL or Mesa) you link against.  Be | ||||
| aware of -L linker flags and the value of the LD_LIBRARY_PATH environment | ||||
| variable. | ||||
|  | ||||
|  | ||||
| New library versioning | ||||
| ---------------------- | ||||
|  | ||||
| Previously, the Mesa GL library was named libMesaGL.so.3.0 | ||||
| To better support Linux/OpenGL standards, the Mesa GL library is now | ||||
| named libGL.so.1.2.030100  This indicates version 1.2 of the OpenGL spec | ||||
| and Mesa implementation 3.1.0 | ||||
|  | ||||
| In the long term this will allow better interoperability with other | ||||
| OpenGL implementations, especially on Linux.  In the short term, | ||||
| OpenGL apps may have to be relinked to use the new library naming. | ||||
|  | ||||
|  | ||||
|  | ||||
| New makefiles | ||||
| ------------- | ||||
|  | ||||
| The old Makefiles found in the various directories have been renamed | ||||
| to Makefile.X11 in order to prevent filename collisions with autoconfig- | ||||
| generated Makefiles. | ||||
|  | ||||
| The top-level Makefile simply includes Makefile.X11 | ||||
| If your top-level Makefile get's overwritten/destroyed you can restore | ||||
| it by copying Makefile.X11 to Makefile | ||||
|  | ||||
|  | ||||
| New extensions | ||||
| -------------- | ||||
|  | ||||
| GL_EXT_stencil_wrap | ||||
| 	Implements two new stencil operations: GL_INCR_WRAP_EXT and | ||||
| 	GL_DECR_WRAP_EXT which allow stencil increment and decrement | ||||
| 	without clamping. | ||||
|  | ||||
| GL_INGR_blend_func_separate | ||||
| 	Allows specification of blend factors for RGB and Alpha independently. | ||||
| 	(INGR = Intergraph) | ||||
|  | ||||
| GL_ARB_multitexture | ||||
| 	Multiple simultaneous textures.  (ARB = Architecture Review Board) | ||||
|  | ||||
| GL_NV_texgen_reflection | ||||
| 	nVidia texgen extension for better reflection mapping. | ||||
|  | ||||
| GL_PGI_misc_hints | ||||
| 	Assorted transformation hints. | ||||
|  | ||||
| GL_EXT_compiled_vertex_array | ||||
| 	Compiled vertex arrays. | ||||
|  | ||||
| GL_EXT_clip_volume_hint | ||||
| 	Allows one to disable clip volume (frustum) testing. | ||||
|  | ||||
|  | ||||
|  | ||||
| Extensions removed | ||||
| ------------------ | ||||
|  | ||||
| GL_EXT_multitexture - obsolete in favor of GL_ARB_multitexture | ||||
|  | ||||
|  | ||||
|  | ||||
| Config file | ||||
| ----------- | ||||
|  | ||||
| By default, /etc/mesa.conf will be read when Mesa starts.  This | ||||
| file controls default hints, enable/disable of extensions, and | ||||
| more.  See the CONFIG file for documentation. | ||||
|  | ||||
|  | ||||
|  | ||||
| Optimizations | ||||
| ------------- | ||||
|  | ||||
| Keith Whitwell has contributed significant optimizations to Mesa's | ||||
| vertex transformation code.  Basically, the whole transformation | ||||
| stage of Mesa has been rewritten. | ||||
|  | ||||
| It's impossible to give a speedup factor.  You'll just have to | ||||
| try your app and see how it performs. | ||||
|  | ||||
|  | ||||
|  | ||||
| Device Driver changes | ||||
| --------------------- | ||||
|  | ||||
| A bunch of new device driver functions have been added.  See src/dd.h | ||||
| Keith Harrison contributed many of them.  I've been planning on adding | ||||
| a bunch of functions like these to make writing hardware drivers easier. | ||||
| More such function will probably be added in the near future. | ||||
|  | ||||
|  | ||||
|  | ||||
| Miscellaneous | ||||
| ------------- | ||||
|  | ||||
| util/glstate.c has some handy functions for debugging.  Basically, it | ||||
| offers a simple function for printing GL state variables.  It's not | ||||
| finished yet.  There's a LOT more GLenum records to be added (see the | ||||
| code).  Anyone want to help? | ||||
|  | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| $Id: RELNOTES-3.1,v 1.1.2.1 2000/02/22 17:56:56 brianp Exp $ | ||||
							
								
								
									
										12
									
								
								docs/RELNOTES-3.2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								docs/RELNOTES-3.2
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
|  | ||||
|                          Mesa 3.2 release notes | ||||
|  | ||||
|                              PLEASE READ!!!! | ||||
|  | ||||
|  | ||||
| Mesa 3.2 is a stabilization of the Mesa 3.1 release.  No new features | ||||
| have been added.  For a list of bug fixes please read the VERSIONS file. | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| $Id: RELNOTES-3.2,v 1.1.2.1 2000/04/06 02:34:31 brianp Exp $ | ||||
| @@ -1,4 +1,4 @@ | ||||
| $Id: VERSIONS,v 1.13 1999/09/19 20:09:00 tanner Exp $ | ||||
| $Id: VERSIONS,v 1.13.2.34 2000/04/24 14:47:45 brianp Exp $ | ||||
|  | ||||
|  | ||||
| Mesa Version History | ||||
| @@ -659,3 +659,66 @@ Mesa Version History | ||||
| 	- New library numbering: libGL.so.1.2.310 | ||||
| 	- New subdirectories:  docs/ and bin/ | ||||
| 	- New Makefile-system (autoconf,automake,libtool) | ||||
|  | ||||
|  | ||||
| 3.1 final  December 14, 1999 | ||||
|     New: | ||||
| 	- added demos/gloss.c | ||||
| 	- added xdemos/glxdpyinfo.c | ||||
| 	- added GLX_ARB_get_proc_address extension | ||||
|     Bug fixes: | ||||
| 	- several vertex array bug fixes | ||||
| 	- overlapping glCopyPixels with pixel zooming now works | ||||
| 	- glXUseXFont() bitmaps were vertically shifted by one pixel | ||||
|  | ||||
|  | ||||
| 3.2 beta 1  March 23, 2000 | ||||
|     Bug fixes: | ||||
| 	- mixed drawing of lines and bitmaps sometimes had wrong colors | ||||
| 	- added missing glHintPGI() function | ||||
| 	- fixed a polygon culling bug | ||||
| 	- fixed bugs in gluPartialDisk() | ||||
| 	- Z values in selection mode were wrong | ||||
| 	- added missing tokens: | ||||
| 		GL_SMOOTH_POINT_SIZE_RANGE | ||||
| 		GL_SMOOTH_POINT_SIZE_GRANULARITY | ||||
| 		GL_SMOOTH_LINE_WIDTH_RANGE | ||||
| 		GL_SMOOTH_LINE_WIDTH_GRANULARITY | ||||
| 		GL_ALIASED_POINT_SIZE_RANGE | ||||
| 		GL_ALIASED_LINE_WIDTH_RANGE | ||||
| 	- fixed glCopyPixels when copying from back to front buffer | ||||
| 	- GL_EXT_compiled_vertex_array tokens had _SGI suffix instead of _EXT | ||||
| 	- glDrawRangeElements(GL_LINES, 0, 1, 2, type, indices) was broken | ||||
| 	- glDeleteTextures() didn't decrement reference count correctly | ||||
| 	- GL_SRCA_ALPHA_SATURATE blend mode didn't work correctly | ||||
| 	- Actual depth of transformation matrix stacks was off by one | ||||
| 	- 24bpp visuals didn't address pixels correctly | ||||
| 	- mipmap level of detail (lambda) calculation simplified, more accurate | ||||
| 	- 101691 - Polygon clipping and GL_LINE | ||||
| 	- 101928 - Polygon clipping and GL_LINE (same fix as above) | ||||
| 	- 101808 - Non-glVertexArrays tristrip bug | ||||
| 	- 101971 - find_last_3f on Dec OSF (worked around) | ||||
| 	- 102369 - segv on dec osf (possibly a duplicate of the above) | ||||
| 	- 102893 - orientations of modelview cause segfault | ||||
|     New: | ||||
| 	- updated SVGA Linux driver | ||||
| 	- added the MESA_FX_NO_SIGNALS env var, see docs/README.3DFX | ||||
| 	- build libGLw.a (Xt/OpenGL drawing area widget) library by default | ||||
| 	- changed -O2 to -O3 for a number of gcc configs | ||||
|     Changes: | ||||
|         - glXCopyContext's mask parameter is now unsigned long, per GLX spec | ||||
|  | ||||
|  | ||||
| 3.2 final  April 24, 2000 | ||||
|     Bug fixes: | ||||
| 	- fixed memcpy bugs in span.c | ||||
| 	- fixed missing glEnd problem in demos/tessdemo.c | ||||
| 	- fixed bug when clearing 24bpp Ximages | ||||
| 	- fixed clipping problem found in Unreal Tournament | ||||
| 	- fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2 | ||||
| 	- fixed Loki's 3dfx RGB vs BGR bug | ||||
| 	- fixed Loki's 3dfx smooth/flat shading bug in SoF | ||||
|     Changes: | ||||
| 	- updated docs/README file | ||||
| 	- use bcopy() optimizations on FreeBSD | ||||
| 	- re-enabled the optimized persp_textured_triangle() function | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| /* $Id: amesa.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */ | ||||
| /* $Id: amesa.h,v 1.1.1.1.2.1 2000/02/09 18:53:54 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Version:  3.2 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
| @@ -25,25 +25,17 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: amesa.h,v $ | ||||
|  * Revision 1.1  1999/08/19 00:55:40  jtg | ||||
|  * Initial revision | ||||
|  * | ||||
|  * Revision 1.1  1999/03/16 01:24:13  brianp | ||||
|  * initial check-in | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* Allegro (DJGPP) driver by Bernhard Tschirren (bernie-t@geocities.com) */ | ||||
|  | ||||
|  | ||||
|  | ||||
| #ifndef AMESA_H | ||||
| #define AMESA_H | ||||
|  | ||||
|  | ||||
| #define AMESA_MAJOR_VERSION 3 | ||||
| #define AMESA_MINOR_VERSION 2 | ||||
|  | ||||
|  | ||||
| typedef struct amesa_visual  *AMesaVisual; | ||||
| typedef struct amesa_buffer  *AMesaBuffer; | ||||
| typedef struct amesa_context *AMesaContext; | ||||
|   | ||||
| @@ -1,40 +1,27 @@ | ||||
| /* $Id: fxmesa.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */ | ||||
| /* $Id: fxmesa.h,v 1.1.1.1.2.2 2000/02/09 18:53:55 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Copyright (C) 1995-1999  Brian Paul | ||||
|  * Version:  3.2 | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: fxmesa.h,v $ | ||||
|  * Revision 1.1  1999/08/19 00:55:40  jtg | ||||
|  * Initial revision | ||||
|  * | ||||
|  * Revision 3.2  1999/01/03 02:46:31  brianp | ||||
|  * now using GLAPI and GLAPIENTRY keywords (Ted Jump) | ||||
|  * | ||||
|  * Revision 3.1  1998/04/01 03:00:28  brianp | ||||
|  * updated for v0.24 of 3Dfx/Glide driver | ||||
|  * | ||||
|  * Revision 3.0  1998/02/20 05:04:45  brianp | ||||
|  * initial rev | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| @@ -58,7 +45,7 @@ extern "C" { | ||||
|  | ||||
|  | ||||
| #define FXMESA_MAJOR_VERSION 3 | ||||
| #define FXMESA_MINOR_VERSION 0 | ||||
| #define FXMESA_MINOR_VERSION 2 | ||||
|  | ||||
|  | ||||
| /* | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: ggimesa.h,v 1.2 1999/08/23 22:34:08 jtaylor Exp $ */ | ||||
| /* $Id: ggimesa.h,v 1.2.2.1 2000/02/09 18:53:55 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-1998  Brian Paul | ||||
|  * Copyright (C) 1998  Uwe Maurer | ||||
|  * | ||||
| @@ -22,23 +22,14 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: ggimesa.h,v $ | ||||
|  * Revision 1.2  1999/08/23 22:34:08  jtaylor | ||||
|  * Misc small cleanups | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:40  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 1.2  1998/09/29 01:46:40  brianp | ||||
|  * applied Emmanuel Marty's patches for latest GGI | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef GGIMESA_H | ||||
| #define GGIMESA_H | ||||
|  | ||||
|  | ||||
| #define GGIMESA_MAJOR_VERSION 3 | ||||
| #define GGIMESA_MINOR_VERSION 2 | ||||
|  | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|   | ||||
							
								
								
									
										2485
									
								
								include/GL/gl.h
									
									
									
									
									
								
							
							
						
						
									
										2485
									
								
								include/GL/gl.h
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,8 +1,8 @@ | ||||
| /* $Id: gl_mangle.h,v 1.3 1999/11/04 00:43:09 miklos Exp $ */ | ||||
| /* $Id: gl_mangle.h,v 1.3.2.1 2000/01/04 08:08:28 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Version:  3.2 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -396,6 +396,8 @@ | ||||
| #define glTexSubImage3DEXT mglTexSubImage3DEXT | ||||
| #define glCopyTexSubImage3DEXT mglCopyTexSubImage3DEXT | ||||
| #define glColorTable mglColorTable | ||||
| #define glColorTableParameteriv mglColorTableParameteriv | ||||
| #define glColorTableParameterfv mglColorTableParameterfv | ||||
| #define glColorSubTable mglColorSubTable | ||||
| #define glGetColorTable mglGetColorTable | ||||
| #define glGetColorTableParameteriv mglGetColorTableParameteriv  | ||||
|   | ||||
							
								
								
									
										381
									
								
								include/GL/glu.h
									
									
									
									
									
								
							
							
						
						
									
										381
									
								
								include/GL/glu.h
									
									
									
									
									
								
							| @@ -1,10 +1,9 @@ | ||||
| /* $Id: glu.h,v 1.16 1999/11/11 03:21:43 kendallb Exp $ */ | ||||
| /* $Id: glu.h,v 1.14.2.1 2000/03/31 20:07:56 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * | ||||
|  * Copyright (C) 1995-1999  Brian Paul | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
| @@ -71,149 +70,151 @@ extern "C" { | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #define GLU_VERSION_1_1			1 | ||||
| #define GLU_VERSION_1_2			1 | ||||
| #define GLU_VERSION_1_1		1 | ||||
| #define GLU_VERSION_1_2		1 | ||||
|  | ||||
|  | ||||
| #define GLU_TRUE			1 | ||||
| #define GLU_FALSE			0 | ||||
| #define GLU_TRUE   GL_TRUE | ||||
| #define GLU_FALSE  GL_FALSE | ||||
|  | ||||
|  | ||||
| /* Normal vectors */ | ||||
| #define GLU_SMOOTH			100000 | ||||
| #define GLU_FLAT			100001 | ||||
| #define GLU_NONE			100002 | ||||
| enum { | ||||
| 	/* Normal vectors */ | ||||
| 	GLU_SMOOTH	= 100000, | ||||
| 	GLU_FLAT	= 100001, | ||||
| 	GLU_NONE	= 100002, | ||||
|  | ||||
| /* Quadric draw styles */ | ||||
| #define GLU_POINT			100010 | ||||
| #define GLU_LINE			100011 | ||||
| #define GLU_FILL			100012 | ||||
| #define GLU_SILHOUETTE			100013 | ||||
| 	/* Quadric draw styles */ | ||||
| 	GLU_POINT	= 100010, | ||||
| 	GLU_LINE	= 100011, | ||||
| 	GLU_FILL	= 100012, | ||||
| 	GLU_SILHOUETTE	= 100013, | ||||
|  | ||||
| /* Quadric orientation */ | ||||
| #define GLU_OUTSIDE			100020 | ||||
| #define GLU_INSIDE			100021 | ||||
| 	/* Quadric orientation */ | ||||
| 	GLU_OUTSIDE	= 100020, | ||||
| 	GLU_INSIDE	= 100021, | ||||
|  | ||||
| /* Tessellator */ | ||||
| #define GLU_TESS_BEGIN			100100 | ||||
| #define GLU_TESS_VERTEX			100101 | ||||
| #define GLU_TESS_END			100102 | ||||
| #define GLU_TESS_ERROR			100103 | ||||
| #define GLU_TESS_EDGE_FLAG		100104 | ||||
| #define GLU_TESS_COMBINE		100105 | ||||
| 	/* Tessellator */ | ||||
| 	GLU_TESS_BEGIN		= 100100, | ||||
| 	GLU_TESS_VERTEX		= 100101, | ||||
| 	GLU_TESS_END		= 100102, | ||||
| 	GLU_TESS_ERROR		= 100103, | ||||
| 	GLU_TESS_EDGE_FLAG	= 100104, | ||||
| 	GLU_TESS_COMBINE	= 100105, | ||||
|  | ||||
| #define GLU_TESS_BEGIN_DATA		100106 | ||||
| #define GLU_TESS_VERTEX_DATA		100107 | ||||
| #define GLU_TESS_END_DATA		100108 | ||||
| #define GLU_TESS_ERROR_DATA		100109 | ||||
| #define GLU_TESS_EDGE_FLAG_DATA		100110 | ||||
| #define GLU_TESS_COMBINE_DATA		100111 | ||||
| 	GLU_TESS_BEGIN_DATA	= 100106, | ||||
| 	GLU_TESS_VERTEX_DATA	= 100107, | ||||
| 	GLU_TESS_END_DATA	= 100108, | ||||
| 	GLU_TESS_ERROR_DATA	= 100109, | ||||
| 	GLU_TESS_EDGE_FLAG_DATA	= 100110, | ||||
| 	GLU_TESS_COMBINE_DATA	= 100111, | ||||
|  | ||||
| /* Winding rules */ | ||||
| #define GLU_TESS_WINDING_ODD		100130 | ||||
| #define GLU_TESS_WINDING_NONZERO	100131 | ||||
| #define GLU_TESS_WINDING_POSITIVE	100132 | ||||
| #define GLU_TESS_WINDING_NEGATIVE	100133 | ||||
| #define GLU_TESS_WINDING_ABS_GEQ_TWO	100134 | ||||
| 	/* Winding rules */ | ||||
| 	GLU_TESS_WINDING_ODD		= 100130, | ||||
| 	GLU_TESS_WINDING_NONZERO	= 100131, | ||||
| 	GLU_TESS_WINDING_POSITIVE	= 100132, | ||||
| 	GLU_TESS_WINDING_NEGATIVE	= 100133, | ||||
| 	GLU_TESS_WINDING_ABS_GEQ_TWO	= 100134, | ||||
|  | ||||
| /* Tessellation properties */ | ||||
| #define GLU_TESS_WINDING_RULE		100140 | ||||
| #define GLU_TESS_BOUNDARY_ONLY		100141 | ||||
| #define GLU_TESS_TOLERANCE		100142 | ||||
| 	/* Tessellation properties */ | ||||
| 	GLU_TESS_WINDING_RULE	= 100140, | ||||
| 	GLU_TESS_BOUNDARY_ONLY	= 100141, | ||||
| 	GLU_TESS_TOLERANCE	= 100142, | ||||
|  | ||||
| /* Tessellation errors */ | ||||
| #define GLU_TESS_ERROR1			100151  /* Missing gluBeginPolygon */ | ||||
| #define GLU_TESS_ERROR2			100152  /* Missing gluBeginContour */ | ||||
| #define GLU_TESS_ERROR3			100153  /* Missing gluEndPolygon */ | ||||
| #define GLU_TESS_ERROR4			100154  /* Missing gluEndContour */ | ||||
| #define GLU_TESS_ERROR5			100155  /* */ | ||||
| #define GLU_TESS_ERROR6			100156  /* */ | ||||
| #define GLU_TESS_ERROR7			100157  /* */ | ||||
| #define GLU_TESS_ERROR8			100158  /* */ | ||||
| 	/* Tessellation errors */ | ||||
| 	GLU_TESS_ERROR1	= 100151,  /* Missing gluBeginPolygon */ | ||||
| 	GLU_TESS_ERROR2 = 100152,  /* Missing gluBeginContour */ | ||||
| 	GLU_TESS_ERROR3 = 100153,  /* Missing gluEndPolygon */ | ||||
| 	GLU_TESS_ERROR4 = 100154,  /* Missing gluEndContour */ | ||||
| 	GLU_TESS_ERROR5 = 100155,  /* */ | ||||
| 	GLU_TESS_ERROR6 = 100156,  /* */ | ||||
| 	GLU_TESS_ERROR7 = 100157,  /* */ | ||||
| 	GLU_TESS_ERROR8 = 100158,  /* */ | ||||
|  | ||||
| /* NURBS */ | ||||
| #define GLU_AUTO_LOAD_MATRIX		100200 | ||||
| #define GLU_CULLING			100201 | ||||
| #define GLU_PARAMETRIC_TOLERANCE	100202 | ||||
| #define GLU_SAMPLING_TOLERANCE		100203 | ||||
| #define GLU_DISPLAY_MODE		100204 | ||||
| #define GLU_SAMPLING_METHOD		100205 | ||||
| #define GLU_U_STEP			100206 | ||||
| #define GLU_V_STEP			100207 | ||||
| 	/* NURBS */ | ||||
| 	GLU_AUTO_LOAD_MATRIX	= 100200, | ||||
| 	GLU_CULLING		= 100201, | ||||
| 	GLU_PARAMETRIC_TOLERANCE= 100202, | ||||
| 	GLU_SAMPLING_TOLERANCE	= 100203, | ||||
| 	GLU_DISPLAY_MODE	= 100204, | ||||
| 	GLU_SAMPLING_METHOD	= 100205, | ||||
| 	GLU_U_STEP		= 100206, | ||||
| 	GLU_V_STEP		= 100207, | ||||
|  | ||||
| #define GLU_PATH_LENGTH			100215 | ||||
| #define GLU_PARAMETRIC_ERROR		100216 | ||||
| #define GLU_DOMAIN_DISTANCE		100217 | ||||
| 	GLU_PATH_LENGTH		= 100215, | ||||
| 	GLU_PARAMETRIC_ERROR	= 100216, | ||||
| 	GLU_DOMAIN_DISTANCE	= 100217, | ||||
|  | ||||
| #define GLU_MAP1_TRIM_2			100210 | ||||
| #define GLU_MAP1_TRIM_3			100211 | ||||
| 	GLU_MAP1_TRIM_2		= 100210, | ||||
| 	GLU_MAP1_TRIM_3		= 100211, | ||||
|  | ||||
| #define GLU_OUTLINE_POLYGON		100240 | ||||
| #define GLU_OUTLINE_PATCH		100241 | ||||
| 	GLU_OUTLINE_POLYGON	= 100240, | ||||
| 	GLU_OUTLINE_PATCH	= 100241, | ||||
|  | ||||
| #define GLU_NURBS_ERROR1	100251   /* spline order un-supported */ | ||||
| #define GLU_NURBS_ERROR2	100252   /* too few knots */ | ||||
| #define GLU_NURBS_ERROR3	100253   /* valid knot range is empty */ | ||||
| #define GLU_NURBS_ERROR4	100254   /* decreasing knot sequence */ | ||||
| #define GLU_NURBS_ERROR5	100255   /* knot multiplicity > spline order */ | ||||
| #define GLU_NURBS_ERROR6	100256   /* endcurve() must follow bgncurve() */ | ||||
| #define GLU_NURBS_ERROR7	100257   /* bgncurve() must precede endcurve() */ | ||||
| #define GLU_NURBS_ERROR8	100258   /* ctrlarray or knot vector is NULL */ | ||||
| #define GLU_NURBS_ERROR9 	100259   /* can't draw pwlcurves */ | ||||
| #define GLU_NURBS_ERROR10	100260   /* missing gluNurbsCurve() */ | ||||
| #define GLU_NURBS_ERROR11	100261   /* missing gluNurbsSurface() */ | ||||
| #define GLU_NURBS_ERROR12	100262   /* endtrim() must precede endsurface() */ | ||||
| #define GLU_NURBS_ERROR13	100263   /* bgnsurface() must precede endsurface() */ | ||||
| #define GLU_NURBS_ERROR14	100264   /* curve of improper type passed as trim curve */ | ||||
| #define GLU_NURBS_ERROR15	100265   /* bgnsurface() must precede bgntrim() */ | ||||
| #define GLU_NURBS_ERROR16	100266   /* endtrim() must follow bgntrim() */ | ||||
| #define GLU_NURBS_ERROR17	100267   /* bgntrim() must precede endtrim()*/ | ||||
| #define GLU_NURBS_ERROR18	100268   /* invalid or missing trim curve*/ | ||||
| #define GLU_NURBS_ERROR19	100269   /* bgntrim() must precede pwlcurve() */ | ||||
| #define GLU_NURBS_ERROR20	100270   /* pwlcurve referenced twice*/ | ||||
| #define GLU_NURBS_ERROR21	100271   /* pwlcurve and nurbscurve mixed */ | ||||
| #define GLU_NURBS_ERROR22	100272   /* improper usage of trim data type */ | ||||
| #define GLU_NURBS_ERROR23	100273   /* nurbscurve referenced twice */ | ||||
| #define GLU_NURBS_ERROR24	100274   /* nurbscurve and pwlcurve mixed */ | ||||
| #define GLU_NURBS_ERROR25	100275   /* nurbssurface referenced twice */ | ||||
| #define GLU_NURBS_ERROR26	100276   /* invalid property */ | ||||
| #define GLU_NURBS_ERROR27	100277   /* endsurface() must follow bgnsurface() */ | ||||
| #define GLU_NURBS_ERROR28	100278   /* intersecting or misoriented trim curves */ | ||||
| #define GLU_NURBS_ERROR29	100279   /* intersecting trim curves */ | ||||
| #define GLU_NURBS_ERROR30	100280   /* UNUSED */ | ||||
| #define GLU_NURBS_ERROR31	100281   /* unconnected trim curves */ | ||||
| #define GLU_NURBS_ERROR32	100282   /* unknown knot error */ | ||||
| #define GLU_NURBS_ERROR33	100283   /* negative vertex count encountered */ | ||||
| #define GLU_NURBS_ERROR34	100284   /* negative byte-stride */ | ||||
| #define GLU_NURBS_ERROR35	100285   /* unknown type descriptor */ | ||||
| #define GLU_NURBS_ERROR36	100286   /* null control point reference */ | ||||
| #define GLU_NURBS_ERROR37	100287   /* duplicate point on pwlcurve */ | ||||
| 	GLU_NURBS_ERROR1  = 100251,   /* spline order un-supported */ | ||||
| 	GLU_NURBS_ERROR2  = 100252,   /* too few knots */ | ||||
| 	GLU_NURBS_ERROR3  = 100253,   /* valid knot range is empty */ | ||||
| 	GLU_NURBS_ERROR4  = 100254,   /* decreasing knot sequence */ | ||||
| 	GLU_NURBS_ERROR5  = 100255,   /* knot multiplicity > spline order */ | ||||
| 	GLU_NURBS_ERROR6  = 100256,   /* endcurve() must follow bgncurve() */ | ||||
| 	GLU_NURBS_ERROR7  = 100257,   /* bgncurve() must precede endcurve() */ | ||||
| 	GLU_NURBS_ERROR8  = 100258,   /* ctrlarray or knot vector is NULL */ | ||||
| 	GLU_NURBS_ERROR9  = 100259,   /* can't draw pwlcurves */ | ||||
| 	GLU_NURBS_ERROR10 = 100260,   /* missing gluNurbsCurve() */ | ||||
| 	GLU_NURBS_ERROR11 = 100261,   /* missing gluNurbsSurface() */ | ||||
| 	GLU_NURBS_ERROR12 = 100262,   /* endtrim() must precede endsurface() */ | ||||
| 	GLU_NURBS_ERROR13 = 100263,   /* bgnsurface() must precede endsurface() */ | ||||
| 	GLU_NURBS_ERROR14 = 100264,   /* curve of improper type passed as trim curve */ | ||||
| 	GLU_NURBS_ERROR15 = 100265,   /* bgnsurface() must precede bgntrim() */ | ||||
| 	GLU_NURBS_ERROR16 = 100266,   /* endtrim() must follow bgntrim() */ | ||||
| 	GLU_NURBS_ERROR17 = 100267,   /* bgntrim() must precede endtrim()*/ | ||||
| 	GLU_NURBS_ERROR18 = 100268,   /* invalid or missing trim curve*/ | ||||
| 	GLU_NURBS_ERROR19 = 100269,   /* bgntrim() must precede pwlcurve() */ | ||||
| 	GLU_NURBS_ERROR20 = 100270,   /* pwlcurve referenced twice*/ | ||||
| 	GLU_NURBS_ERROR21 = 100271,   /* pwlcurve and nurbscurve mixed */ | ||||
| 	GLU_NURBS_ERROR22 = 100272,   /* improper usage of trim data type */ | ||||
| 	GLU_NURBS_ERROR23 = 100273,   /* nurbscurve referenced twice */ | ||||
| 	GLU_NURBS_ERROR24 = 100274,   /* nurbscurve and pwlcurve mixed */ | ||||
| 	GLU_NURBS_ERROR25 = 100275,   /* nurbssurface referenced twice */ | ||||
| 	GLU_NURBS_ERROR26 = 100276,   /* invalid property */ | ||||
| 	GLU_NURBS_ERROR27 = 100277,   /* endsurface() must follow bgnsurface() */ | ||||
| 	GLU_NURBS_ERROR28 = 100278,   /* intersecting or misoriented trim curves */ | ||||
| 	GLU_NURBS_ERROR29 = 100279,   /* intersecting trim curves */ | ||||
| 	GLU_NURBS_ERROR30 = 100280,   /* UNUSED */ | ||||
| 	GLU_NURBS_ERROR31 = 100281,   /* unconnected trim curves */ | ||||
| 	GLU_NURBS_ERROR32 = 100282,   /* unknown knot error */ | ||||
| 	GLU_NURBS_ERROR33 = 100283,   /* negative vertex count encountered */ | ||||
| 	GLU_NURBS_ERROR34 = 100284,   /* negative byte-stride */ | ||||
| 	GLU_NURBS_ERROR35 = 100285,   /* unknown type descriptor */ | ||||
| 	GLU_NURBS_ERROR36 = 100286,   /* null control point reference */ | ||||
| 	GLU_NURBS_ERROR37 = 100287,   /* duplicate point on pwlcurve */ | ||||
|  | ||||
| /* Errors */ | ||||
| #define GLU_INVALID_ENUM		100900 | ||||
| #define GLU_INVALID_VALUE		100901 | ||||
| #define GLU_OUT_OF_MEMORY		100902 | ||||
| #define GLU_INCOMPATIBLE_GL_VERSION	100903 | ||||
| 	/* Errors */ | ||||
| 	GLU_INVALID_ENUM		= 100900, | ||||
| 	GLU_INVALID_VALUE		= 100901, | ||||
| 	GLU_OUT_OF_MEMORY		= 100902, | ||||
| 	GLU_INCOMPATIBLE_GL_VERSION	= 100903, | ||||
|  | ||||
| /* New in GLU 1.1 */ | ||||
| #define GLU_VERSION			100800 | ||||
| #define GLU_EXTENSIONS			100801 | ||||
| 	/* New in GLU 1.1 */ | ||||
| 	GLU_VERSION	= 100800, | ||||
| 	GLU_EXTENSIONS	= 100801, | ||||
|  | ||||
| /*** GLU 1.0 tessellation - obsolete! ***/ | ||||
| 	/*** GLU 1.0 tessellation - obsolete! ***/ | ||||
|  | ||||
| /* Contour types */ | ||||
| #define GLU_CW				100120 | ||||
| #define GLU_CCW				100121 | ||||
| #define GLU_INTERIOR			100122 | ||||
| #define GLU_EXTERIOR			100123 | ||||
| #define GLU_UNKNOWN			100124 | ||||
| 	/* Contour types */ | ||||
| 	GLU_CW		= 100120, | ||||
| 	GLU_CCW		= 100121, | ||||
| 	GLU_INTERIOR	= 100122, | ||||
| 	GLU_EXTERIOR	= 100123, | ||||
| 	GLU_UNKNOWN	= 100124, | ||||
|  | ||||
| /* Tessellator */ | ||||
| #define GLU_BEGIN			GLU_TESS_BEGIN | ||||
| #define GLU_VERTEX			GLU_TESS_VERTEX | ||||
| #define GLU_END				GLU_TESS_END | ||||
| #define GLU_ERROR			GLU_TESS_ERROR | ||||
| #define GLU_EDGE_FLAG			GLU_TESS_EDGE_FLAG | ||||
| 	/* Tessellator */ | ||||
| 	GLU_BEGIN	= GLU_TESS_BEGIN, | ||||
| 	GLU_VERTEX	= GLU_TESS_VERTEX, | ||||
| 	GLU_END		= GLU_TESS_END, | ||||
| 	GLU_ERROR	= GLU_TESS_ERROR, | ||||
| 	GLU_EDGE_FLAG	= GLU_TESS_EDGE_FLAG | ||||
| }; | ||||
|  | ||||
|  | ||||
| /* | ||||
| @@ -246,37 +247,37 @@ extern "C" { | ||||
|  */ | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluLookAt( GLdouble eyex, GLdouble eyey, GLdouble eyez, | ||||
|                                   GLdouble centerx, GLdouble centery, | ||||
|                                   GLdouble centerz, | ||||
|                                   GLdouble upx, GLdouble upy, GLdouble upz ); | ||||
|                                 GLdouble centerx, GLdouble centery, | ||||
|                                 GLdouble centerz, | ||||
|                                 GLdouble upx, GLdouble upy, GLdouble upz ); | ||||
|  | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluOrtho2D( GLdouble left, GLdouble right, | ||||
|                                    GLdouble bottom, GLdouble top ); | ||||
|                                  GLdouble bottom, GLdouble top ); | ||||
|  | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluPerspective( GLdouble fovy, GLdouble aspect, | ||||
|                                        GLdouble zNear, GLdouble zFar ); | ||||
|                                      GLdouble zNear, GLdouble zFar ); | ||||
|  | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluPickMatrix( GLdouble x, GLdouble y, | ||||
|                                       GLdouble width, GLdouble height, | ||||
|                                       const GLint viewport[4] ); | ||||
|                                     GLdouble width, GLdouble height, | ||||
|                                     const GLint viewport[4] ); | ||||
|  | ||||
| GLUAPI GLint GLAPIENTRY gluProject( GLdouble objx, GLdouble objy, GLdouble objz, | ||||
|                                   const GLdouble modelMatrix[16], | ||||
|                                   const GLdouble projMatrix[16], | ||||
|                                   const GLint viewport[4], | ||||
|                                   GLdouble *winx, GLdouble *winy, | ||||
|                                   GLdouble *winz ); | ||||
|  | ||||
| GLUAPI GLint GLAPIENTRY gluUnProject( GLdouble winx, GLdouble winy, | ||||
|                                     GLdouble winz, | ||||
|                                     const GLdouble modelMatrix[16], | ||||
|                                     const GLdouble projMatrix[16], | ||||
|                                     const GLint viewport[4], | ||||
|                                     GLdouble *winx, GLdouble *winy, | ||||
|                                     GLdouble *winz ); | ||||
|  | ||||
| GLUAPI GLint GLAPIENTRY gluUnProject( GLdouble winx, GLdouble winy, | ||||
|                                       GLdouble winz, | ||||
|                                       const GLdouble modelMatrix[16], | ||||
|                                       const GLdouble projMatrix[16], | ||||
|                                       const GLint viewport[4], | ||||
|                                       GLdouble *objx, GLdouble *objy, | ||||
|                                       GLdouble *objz ); | ||||
|                                     GLdouble *objx, GLdouble *objy, | ||||
|                                     GLdouble *objz ); | ||||
|  | ||||
| GLUAPI const GLubyte* GLAPIENTRY gluErrorString( GLenum errorCode ); | ||||
|  | ||||
| @@ -289,19 +290,19 @@ GLUAPI const GLubyte* GLAPIENTRY gluErrorString( GLenum errorCode ); | ||||
|  */ | ||||
|  | ||||
| GLUAPI GLint GLAPIENTRY gluScaleImage( GLenum format, | ||||
|                                        GLint widthin, GLint heightin, | ||||
|                                        GLenum typein, const void *datain, | ||||
|                                        GLint widthout, GLint heightout, | ||||
|                                        GLenum typeout, void *dataout ); | ||||
|                                      GLsizei widthin, GLsizei heightin, | ||||
|                                      GLenum typein, const void *datain, | ||||
|                                      GLsizei widthout, GLsizei heightout, | ||||
|                                      GLenum typeout, void *dataout ); | ||||
|  | ||||
| GLUAPI GLint GLAPIENTRY gluBuild1DMipmaps( GLenum target, GLint components, | ||||
|                                            GLint width, GLenum format, | ||||
|                                            GLenum type, const void *data ); | ||||
|                                          GLsizei width, GLenum format, | ||||
|                                          GLenum type, const void *data ); | ||||
|  | ||||
| GLUAPI GLint GLAPIENTRY gluBuild2DMipmaps( GLenum target, GLint components, | ||||
|                                            GLint width, GLint height, | ||||
|                                            GLenum format, | ||||
|                                            GLenum type, const void *data ); | ||||
|                                          GLsizei width, GLsizei height, | ||||
|                                          GLenum format, | ||||
|                                          GLenum type, const void *data ); | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -316,39 +317,37 @@ GLUAPI GLUquadricObj* GLAPIENTRY gluNewQuadric( void ); | ||||
| GLUAPI void GLAPIENTRY gluDeleteQuadric( GLUquadricObj *state ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluQuadricDrawStyle( GLUquadricObj *quadObject, | ||||
|                                             GLenum drawStyle ); | ||||
|                                           GLenum drawStyle ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluQuadricOrientation( GLUquadricObj *quadObject, | ||||
|                                               GLenum orientation ); | ||||
|                                             GLenum orientation ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluQuadricNormals( GLUquadricObj *quadObject, | ||||
|                                           GLenum normals ); | ||||
|                                         GLenum normals ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluQuadricTexture( GLUquadricObj *quadObject, | ||||
|                                           GLboolean textureCoords ); | ||||
|                                         GLboolean textureCoords ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluQuadricCallback( GLUquadricObj *qobj, | ||||
|                                            GLenum which, | ||||
|                                            void (GLCALLBACK *fn)() ); | ||||
|                                          GLenum which, void (GLCALLBACK *fn)() ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluCylinder( GLUquadricObj *qobj, | ||||
|                                     GLdouble baseRadius, | ||||
|                                     GLdouble topRadius, | ||||
|                                     GLdouble height, | ||||
|                                     GLint slices, GLint stacks ); | ||||
|                                   GLdouble baseRadius, | ||||
|                                   GLdouble topRadius, | ||||
|                                   GLdouble height, | ||||
|                                   GLint slices, GLint stacks ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluSphere( GLUquadricObj *qobj, | ||||
|                                   GLdouble radius, GLint slices, | ||||
|                                   GLint stacks ); | ||||
|                                 GLdouble radius, GLint slices, GLint stacks ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluDisk( GLUquadricObj *qobj, | ||||
|                                 GLdouble innerRadius, GLdouble outerRadius, | ||||
|                                 GLint slices, GLint loops ); | ||||
|                               GLdouble innerRadius, GLdouble outerRadius, | ||||
|                               GLint slices, GLint loops ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluPartialDisk( GLUquadricObj *qobj, GLdouble innerRadius, | ||||
|                                        GLdouble outerRadius, GLint slices, | ||||
|                                        GLint loops, GLdouble startAngle, | ||||
|                                        GLdouble sweepAngle ); | ||||
|                                      GLdouble outerRadius, GLint slices, | ||||
|                                      GLint loops, GLdouble startAngle, | ||||
|                                      GLdouble sweepAngle ); | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -363,47 +362,46 @@ GLUAPI GLUnurbsObj* GLAPIENTRY gluNewNurbsRenderer( void ); | ||||
| GLUAPI void GLAPIENTRY gluDeleteNurbsRenderer( GLUnurbsObj *nobj ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluLoadSamplingMatrices( GLUnurbsObj *nobj, | ||||
|                                                 const GLfloat modelMatrix[16], | ||||
|                                                 const GLfloat projMatrix[16], | ||||
|                                                 const GLint viewport[4] ); | ||||
|                                               const GLfloat modelMatrix[16], | ||||
|                                               const GLfloat projMatrix[16], | ||||
|                                               const GLint viewport[4] ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluNurbsProperty( GLUnurbsObj *nobj, GLenum property, | ||||
|                                          GLfloat value ); | ||||
|                                        GLfloat value ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluGetNurbsProperty( GLUnurbsObj *nobj, GLenum property, | ||||
|                                             GLfloat *value ); | ||||
|                                           GLfloat *value ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluBeginCurve( GLUnurbsObj *nobj ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluEndCurve( GLUnurbsObj * nobj ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluNurbsCurve( GLUnurbsObj *nobj, GLint nknots, | ||||
|                                       GLfloat *knot, GLint stride, | ||||
|                                       GLfloat *ctlarray, GLint order, | ||||
|                                       GLenum type ); | ||||
|                                     GLfloat *knot, GLint stride, | ||||
|                                     GLfloat *ctlarray, GLint order, | ||||
|                                     GLenum type ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluBeginSurface( GLUnurbsObj *nobj ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluEndSurface( GLUnurbsObj * nobj ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluNurbsSurface( GLUnurbsObj *nobj, | ||||
|                                         GLint sknot_count, GLfloat *sknot, | ||||
|                                         GLint tknot_count, GLfloat *tknot, | ||||
|                                         GLint s_stride, GLint t_stride, | ||||
|                                         GLfloat *ctlarray, | ||||
|                                         GLint sorder, GLint torder, | ||||
|                                         GLenum type ); | ||||
|                                       GLint sknot_count, GLfloat *sknot, | ||||
|                                       GLint tknot_count, GLfloat *tknot, | ||||
|                                       GLint s_stride, GLint t_stride, | ||||
|                                       GLfloat *ctlarray, | ||||
|                                       GLint sorder, GLint torder, | ||||
|                                       GLenum type ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluBeginTrim( GLUnurbsObj *nobj ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluEndTrim( GLUnurbsObj *nobj ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluPwlCurve( GLUnurbsObj *nobj, GLint count, | ||||
|                                     GLfloat *array, GLint stride, | ||||
|                                     GLenum type ); | ||||
|                                   GLfloat *array, GLint stride, GLenum type ); | ||||
|  | ||||
| GLUAPI void GLAPIENTRY gluNurbsCallback( GLUnurbsObj *nobj, GLenum which, | ||||
|                                          void (GLCALLBACK *fn)() ); | ||||
|                                        void (GLCALLBACK *fn)() ); | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -465,6 +463,17 @@ GLUAPI const GLubyte* GLAPIENTRY gluGetString( GLenum name ); | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * | ||||
|  * GLU 1.3 functions | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| GLUAPI GLboolean GLAPIENTRY | ||||
| gluCheckExtension( const char *extName, const GLubyte *extString ); | ||||
|  | ||||
|  | ||||
|  | ||||
| #if defined(__BEOS__) || defined(__QUICKDRAW__) | ||||
| #pragma export off | ||||
| #endif | ||||
|   | ||||
| @@ -108,7 +108,7 @@ extern _CRTIMP void __cdecl exit(int); | ||||
|    and redifinition of Windows system defs, also removes requirement of | ||||
|    pretty much any standard windows header from this file */ | ||||
|  | ||||
| #if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) | ||||
| #if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__CYGWIN32__) | ||||
| #	define GLUTAPIENTRY __stdcall | ||||
| #else | ||||
| #	define GLUTAPIENTRY | ||||
| @@ -152,7 +152,7 @@ typedef unsigned long COLORREF; | ||||
| #		define wglUseFontOutlines  wglUseFontOutlinesA | ||||
| #	endif /* !UNICODE */ | ||||
| typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR; | ||||
| typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT | ||||
| typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT; | ||||
| #  pragma warning( push ) | ||||
| #  pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */ | ||||
| #  define WGLAPI __declspec(dllimport) | ||||
| @@ -183,7 +183,7 @@ WGLAPI int   GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, u | ||||
| WGLAPI int   GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); | ||||
| WGLAPI int   GLAPIENTRY SwapBuffers(HDC); | ||||
| WGLAPI int   GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *); | ||||
| WGLAPI int   GLAPIENTRY DescribePixelFormat(HDC,int,unsigned long,LPPIXELFORMATDESCRIPTOR); | ||||
| WGLAPI int   GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR); | ||||
| WGLAPI int   GLAPIENTRY GetPixelFormat(HDC); | ||||
| WGLAPI int   GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *); | ||||
| #  undef WGLAPI | ||||
| @@ -739,7 +739,6 @@ GLUTAPI int GLUTAPIENTRY glutGameModeGet(GLenum mode); | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #if 0 | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| /* $Id: glx.h,v 1.6 1999/11/11 01:27:17 brianp Exp $ */ | ||||
| /* $Id: glx.h,v 1.5.2.3 2000/02/23 23:05:07 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.2 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
| @@ -50,41 +50,38 @@ extern "C" { | ||||
|  | ||||
| #define GLX_VERSION_1_1		1 | ||||
|  | ||||
| #define GLX_EXTENSION_NAME   "GLX" | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Tokens for glXChooseVisual and glXGetConfig: | ||||
|  */ | ||||
| #define GLX_USE_GL		1 | ||||
| #define GLX_BUFFER_SIZE		2 | ||||
| #define GLX_LEVEL		3 | ||||
| #define GLX_RGBA		4 | ||||
| #define GLX_DOUBLEBUFFER	5 | ||||
| #define GLX_STEREO		6 | ||||
| #define GLX_AUX_BUFFERS		7 | ||||
| #define GLX_RED_SIZE		8 | ||||
| #define GLX_GREEN_SIZE		9 | ||||
| #define GLX_BLUE_SIZE		10 | ||||
| #define GLX_ALPHA_SIZE		11 | ||||
| #define GLX_DEPTH_SIZE		12 | ||||
| #define GLX_STENCIL_SIZE	13 | ||||
| #define GLX_ACCUM_RED_SIZE	14 | ||||
| #define GLX_ACCUM_GREEN_SIZE	15 | ||||
| #define GLX_ACCUM_BLUE_SIZE	16 | ||||
| #define GLX_ACCUM_ALPHA_SIZE	17 | ||||
|  | ||||
|  | ||||
| /* GLX_EXT_visual_info extension */ | ||||
| #define GLX_X_VISUAL_TYPE_EXT		0x22 | ||||
| #define GLX_TRANSPARENT_TYPE_EXT	0x23 | ||||
| #define GLX_TRANSPARENT_INDEX_VALUE_EXT	0x24 | ||||
| #define GLX_TRANSPARENT_RED_VALUE_EXT	0x25 | ||||
| #define GLX_TRANSPARENT_GREEN_VALUE_EXT	0x26 | ||||
| #define GLX_TRANSPARENT_BLUE_VALUE_EXT	0x27 | ||||
| #define GLX_TRANSPARENT_ALPHA_VALUE_EXT	0x28 | ||||
| enum _GLX_CONFIGS { | ||||
| 	GLX_USE_GL		= 1, | ||||
| 	GLX_BUFFER_SIZE		= 2, | ||||
| 	GLX_LEVEL		= 3, | ||||
| 	GLX_RGBA		= 4, | ||||
| 	GLX_DOUBLEBUFFER	= 5,  | ||||
| 	GLX_STEREO		= 6, | ||||
| 	GLX_AUX_BUFFERS		= 7, | ||||
| 	GLX_RED_SIZE		= 8, | ||||
| 	GLX_GREEN_SIZE		= 9, | ||||
| 	GLX_BLUE_SIZE		= 10, | ||||
| 	GLX_ALPHA_SIZE		= 11, | ||||
| 	GLX_DEPTH_SIZE		= 12, | ||||
| 	GLX_STENCIL_SIZE	= 13, | ||||
| 	GLX_ACCUM_RED_SIZE	= 14, | ||||
| 	GLX_ACCUM_GREEN_SIZE	= 15, | ||||
| 	GLX_ACCUM_BLUE_SIZE	= 16, | ||||
| 	GLX_ACCUM_ALPHA_SIZE	= 17, | ||||
|  | ||||
| 	/* GLX_EXT_visual_info extension */ | ||||
| 	GLX_X_VISUAL_TYPE_EXT		= 0x22, | ||||
| 	GLX_TRANSPARENT_TYPE_EXT	= 0x23, | ||||
| 	GLX_TRANSPARENT_INDEX_VALUE_EXT	= 0x24, | ||||
| 	GLX_TRANSPARENT_RED_VALUE_EXT	= 0x25, | ||||
| 	GLX_TRANSPARENT_GREEN_VALUE_EXT	= 0x26, | ||||
| 	GLX_TRANSPARENT_BLUE_VALUE_EXT	= 0x27, | ||||
| 	GLX_TRANSPARENT_ALPHA_VALUE_EXT	= 0x28 | ||||
| }; | ||||
|  | ||||
|  | ||||
| /* | ||||
| @@ -125,12 +122,12 @@ extern "C" { | ||||
|  * Compile-time extension tests | ||||
|  */ | ||||
| #define GLX_EXT_visual_info		1 | ||||
| #define GLX_EXT_get_proc_address	1 | ||||
| #define GLX_MESA_pixmap_colormap	1 | ||||
| #define GLX_MESA_release_buffers	1 | ||||
| #define GLX_MESA_copy_sub_buffer	1 | ||||
| #define GLX_MESA_set_3dfx_mode		1 | ||||
| #define GLX_SGI_video_sync		1 | ||||
| #define GLX_ARB_get_proc_address	1 | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -159,7 +156,7 @@ extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable, | ||||
| 			    GLXContext ctx); | ||||
|  | ||||
| extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, | ||||
| 			    GLuint mask ); | ||||
| 			    unsigned long mask ); | ||||
|  | ||||
| extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable ); | ||||
|  | ||||
| @@ -222,6 +219,10 @@ extern int glXWaitVideoSyncSGI(int divisor, int remainder, | ||||
|                                unsigned int *count); | ||||
|  | ||||
|  | ||||
| /* GLX_ARB_get_proc_address */ | ||||
| extern void (*glXGetProcAddressARB(const GLubyte *procName))(); | ||||
|  | ||||
|  | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
|   | ||||
| @@ -1,11 +1,46 @@ | ||||
| /* $Id: mesa_wgl.h,v 1.2.2.2 1999/11/22 14:05:15 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* prototypes for the Mesa WGL functions */ | ||||
| /* relocated here so that I could make GLUT get them properly */ | ||||
|  | ||||
| #ifndef GL_H | ||||
| #   include <gl/gl.h> | ||||
| #ifndef _mesa_wgl_h_ | ||||
| #define _mesa_wgl_h_ | ||||
|  | ||||
|  | ||||
| #include <gl/gl.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #ifdef _MSC_VER | ||||
| #  pragma warning( disable : 4615 ) /* pragma warning : unknown user warning type*/ | ||||
| #  pragma warning( push ) | ||||
| #  pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */ | ||||
| #endif | ||||
| @@ -37,10 +72,17 @@ WGLAPI int   GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, u | ||||
| WGLAPI int   GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); | ||||
| WGLAPI int   GLAPIENTRY SwapBuffers(HDC); | ||||
| WGLAPI int   GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *); | ||||
| WGLAPI int   GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,PIXELFORMATDESCRIPTOR *); | ||||
| WGLAPI int   GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR); | ||||
| WGLAPI int   GLAPIENTRY GetPixelFormat(HDC); | ||||
| WGLAPI int   GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *); | ||||
|  | ||||
| #ifdef _MSC_VER | ||||
| #  pragma warning( pop ) | ||||
| #endif | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #endif /* _mesa_wgl_h_ */ | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| /* $Id: osmesa.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */ | ||||
| /* $Id: osmesa.h,v 1.1.1.1.2.2 2000/02/09 18:53:55 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Version:  3.2 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
| @@ -25,26 +25,6 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: osmesa.h,v $ | ||||
|  * Revision 1.1  1999/08/19 00:55:40  jtg | ||||
|  * Initial revision | ||||
|  * | ||||
|  * Revision 1.4  1999/02/14 03:39:09  brianp | ||||
|  * new copyright | ||||
|  * | ||||
|  * Revision 1.3  1999/01/03 02:52:30  brianp | ||||
|  * now using GLAPI and GLAPIENTRY keywords (Ted Jump) | ||||
|  * | ||||
|  * Revision 1.2  1998/07/26 01:33:51  brianp | ||||
|  * added WINGDIAPI and APIENTRY keywords per Ted Jump | ||||
|  * | ||||
|  * Revision 1.1  1998/02/13 03:17:50  brianp | ||||
|  * Initial revision | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Mesa Off-Screen rendering interface. | ||||
|  * | ||||
| @@ -86,7 +66,7 @@ extern "C" { | ||||
|  | ||||
|  | ||||
| #define OSMESA_MAJOR_VERSION 3 | ||||
| #define OSMESA_MINOR_VERSION 0 | ||||
| #define OSMESA_MINOR_VERSION 2 | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| /* $Id: svgamesa.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */ | ||||
| /* $Id: svgamesa.h,v 1.1.1.1.2.2 2000/01/22 19:58:02 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.0 | ||||
|  * Copyright (C) 1995-1998  Brian Paul | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
| @@ -21,18 +21,6 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: svgamesa.h,v $ | ||||
|  * Revision 1.1  1999/08/19 00:55:40  jtg | ||||
|  * Initial revision | ||||
|  * | ||||
|  * Revision 3.0  1998/02/20 05:07:24  brianp | ||||
|  * initial rev | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA/Mesa interface for Linux. | ||||
|  */ | ||||
| @@ -65,7 +53,7 @@ | ||||
|  | ||||
|  | ||||
| #define SVGAMESA_MAJOR_VERSION 3 | ||||
| #define SVGAMESA_MINOR_VERSION 0 | ||||
| #define SVGAMESA_MINOR_VERSION 2 | ||||
|  | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| @@ -87,16 +75,21 @@ typedef struct svgamesa_context *SVGAMesaContext; | ||||
| /* | ||||
|  * doubleBuffer flag new in version 2.4 | ||||
|  */ | ||||
| extern int SVGAMesaInit( int GraphMode ); | ||||
|  | ||||
| extern int SVGAMesaClose( void ); | ||||
|  | ||||
| extern SVGAMesaContext SVGAMesaCreateContext( GLboolean doubleBuffer ); | ||||
|  | ||||
| extern void SVGAMesaDestroyContext( SVGAMesaContext ctx ); | ||||
|  | ||||
| extern void SVGAMesaMakeCurrent( SVGAMesaContext ctx ); | ||||
|  | ||||
| extern SVGAMesaContext SVGAMesaGetCurrentContext( void ); | ||||
|  | ||||
| extern void SVGAMesaSwapBuffers( void ); | ||||
|  | ||||
| extern void SVGAMesaSetCI(int ndx, GLubyte red, GLubyte green, GLubyte blue); | ||||
|  | ||||
| extern SVGAMesaContext SVGAMesaGetCurrentContext( void ); | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| /* $Id: xmesa.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */ | ||||
| /* $Id: xmesa.h,v 1.1.1.1.2.3 2000/02/09 18:53:55 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Version:  3.2 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
| @@ -25,23 +25,6 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: xmesa.h,v $ | ||||
|  * Revision 1.1  1999/08/19 00:55:40  jtg | ||||
|  * Initial revision | ||||
|  * | ||||
|  * Revision 1.3  1999/02/24 22:43:27  jens | ||||
|  * Name changes to get XMesa to compile standalone inside XFree86 | ||||
|  * | ||||
|  * Revision 1.2  1999/02/14 03:39:09  brianp | ||||
|  * new copyright | ||||
|  * | ||||
|  * Revision 1.1  1998/02/13 03:17:32  brianp | ||||
|  * Initial revision | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Mesa/X11 interface.  This header file serves as the documentation for | ||||
|  * the Mesa/X11 interface functions. | ||||
| @@ -96,6 +79,9 @@ extern "C" { | ||||
| #include <X11/Xlib.h> | ||||
| #include <X11/Xutil.h> | ||||
| #include "xmesa_x.h" | ||||
| #ifdef GLX_DIRECT_RENDERING | ||||
| #include "dri_mesa.h" | ||||
| #endif | ||||
| #endif | ||||
| #include "GL/gl.h" | ||||
|  | ||||
| @@ -106,7 +92,7 @@ extern struct Library *XLibBase; | ||||
|  | ||||
|  | ||||
| #define XMESA_MAJOR_VERSION 3 | ||||
| #define XMESA_MINOR_VERSION 0 | ||||
| #define XMESA_MINOR_VERSION 2 | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -131,7 +117,17 @@ typedef struct xmesa_visual *XMesaVisual; | ||||
|  | ||||
| typedef struct xmesa_buffer *XMesaBuffer; | ||||
|  | ||||
| #if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server) | ||||
| /* | ||||
|  * Initialize the XMesa driver. | ||||
|  */ | ||||
| extern GLboolean XMesaInitDriver( __DRIscreenPrivate *driScrnPriv ); | ||||
|  | ||||
| /* | ||||
|  * Reset the XMesa driver when the X server resets. | ||||
|  */ | ||||
| extern void XMesaResetDriver( __DRIscreenPrivate *driScrnPriv ); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* | ||||
| @@ -179,7 +175,11 @@ extern void XMesaDestroyVisual( XMesaVisual v ); | ||||
|  * Return:  an XMesaContext or NULL if error. | ||||
|  */ | ||||
| extern XMesaContext XMesaCreateContext( XMesaVisual v, | ||||
| 					XMesaContext share_list ); | ||||
| 					XMesaContext share_list | ||||
| #if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server) | ||||
| 					, __DRIcontextPrivate *driContextPriv | ||||
| #endif | ||||
| 				      ); | ||||
|  | ||||
|  | ||||
| /* | ||||
| @@ -192,7 +192,12 @@ extern void XMesaDestroyContext( XMesaContext c ); | ||||
|  * Create an XMesaBuffer from an X window. | ||||
|  */ | ||||
| extern XMesaBuffer XMesaCreateWindowBuffer( XMesaVisual v, | ||||
| 					    XMesaWindow w ); | ||||
| 					    XMesaWindow w | ||||
| #if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server) | ||||
| 					    , __DRIdrawablePrivate *driDrawPriv | ||||
| #endif | ||||
| 					  ); | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
| @@ -200,7 +205,12 @@ extern XMesaBuffer XMesaCreateWindowBuffer( XMesaVisual v, | ||||
|  */ | ||||
| extern XMesaBuffer XMesaCreatePixmapBuffer( XMesaVisual v, | ||||
| 					    XMesaPixmap p, | ||||
| 					    XMesaColormap cmap ); | ||||
| 					    XMesaColormap cmap | ||||
| #if defined(GLX_DIRECT_RENDERING) && !defined(XFree86Server) | ||||
| 					    , __DRIdrawablePrivate *driDrawPriv | ||||
| #endif | ||||
| 					  ); | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|   | ||||
| @@ -30,7 +30,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  * Authors: | ||||
|  *   Kevin E. Martin <kevin@precisioninsight.com> | ||||
|  * | ||||
|  * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/include/GL/xmesa_xf86.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ | ||||
|  * $Header: /home/krh/git/sync/mesa-cvs-repo/Mesa/include/GL/xmesa_xf86.h,v 1.1.1.1.2.1 1999/12/13 21:54:19 brianp Exp $ | ||||
|  */ | ||||
|  | ||||
| #ifndef _XMESA_XF86_H_ | ||||
| @@ -52,29 +52,29 @@ typedef DDXPointRec XMesaPoint; | ||||
| typedef xColorItem  XMesaColor; | ||||
|  | ||||
| #define XMesaSetGeneric(__d,__gc,__val,__mask) \ | ||||
| { \ | ||||
| do { \ | ||||
|     CARD32 __v[1]; \ | ||||
|     (void) __d; \ | ||||
|     __v[0] = __val; \ | ||||
|     dixChangeGC(NullClient, __gc, __mask, __v, NULL); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define XMesaSetGenericPtr(__d,__gc,__pval,__mask) \ | ||||
| { \ | ||||
| do { \ | ||||
|     ChangeGCVal __v[1]; \ | ||||
|     (void) __d; \ | ||||
|     __v[0].ptr = __pval; \ | ||||
|     dixChangeGC(NullClient, __gc, __mask, NULL, __v); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define XMesaSetDashes(__d,__gc,__do,__dl,__n) \ | ||||
| { \ | ||||
| do { \ | ||||
|     (void) __d; \ | ||||
|     SetDashes(__gc, __do, __n, (unsigned char *)__dl); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define XMesaSetLineAttributes(__d,__gc,__lw,__ls,__cs,__js) \ | ||||
| { \ | ||||
| do { \ | ||||
|     CARD32 __v[4]; \ | ||||
|     (void) __d; \ | ||||
|     __v[0] = __lw; \ | ||||
| @@ -84,7 +84,7 @@ typedef xColorItem  XMesaColor; | ||||
|     dixChangeGC(NullClient, __gc, \ | ||||
| 		GCLineWidth|GCLineStyle|GCCapStyle|GCJoinStyle, \ | ||||
| 		__v, NULL); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define XMesaSetForeground(d,gc,v) XMesaSetGeneric(d,gc,v,GCForeground) | ||||
| #define XMesaSetBackground(d,gc,v) XMesaSetGeneric(d,gc,v,GCBackground) | ||||
| @@ -96,24 +96,24 @@ typedef xColorItem  XMesaColor; | ||||
| #define XMesaSetStipple(d,gc,v)    XMesaSetGenericPtr(d,gc,v,GCStipple) | ||||
|  | ||||
| #define XMesaDrawPoint(__d,__b,__gc,__x,__y) \ | ||||
| { \ | ||||
| do { \ | ||||
|     XMesaPoint __p[1]; \ | ||||
|     (void) __d; \ | ||||
|     __p[0].x = __x; \ | ||||
|     __p[0].y = __y; \ | ||||
|     ValidateGC(__b, __gc); \ | ||||
|     (*gc->ops->PolyPoint)(__b, __gc, CoordModeOrigin, 1, __p); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define XMesaDrawPoints(__d,__b,__gc,__p,__n,__m) \ | ||||
| { \ | ||||
| do { \ | ||||
|     (void) __d; \ | ||||
|     ValidateGC(__b, __gc); \ | ||||
|     (*gc->ops->PolyPoint)(__b, __gc, __m, __n, __p); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define XMesaDrawLine(__d,__b,__gc,__x0,__y0,__x1,__y1) \ | ||||
| { \ | ||||
| do { \ | ||||
|     XMesaPoint __p[2]; \ | ||||
|     (void) __d; \ | ||||
|     ValidateGC(__b, __gc); \ | ||||
| @@ -122,10 +122,10 @@ typedef xColorItem  XMesaColor; | ||||
|     __p[1].x = __x1; \ | ||||
|     __p[1].y = __y1; \ | ||||
|     (*__gc->ops->Polylines)(__b, __gc, CoordModeOrigin, 2, __p); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define XMesaFillRectangle(__d,__b,__gc,__x,__y,__w,__h) \ | ||||
| { \ | ||||
| do { \ | ||||
|     xRectangle __r[1]; \ | ||||
|     (void) __d; \ | ||||
|     ValidateGC(__b, __gc); \ | ||||
| @@ -134,10 +134,10 @@ typedef xColorItem  XMesaColor; | ||||
|     __r[0].width = __w; \ | ||||
|     __r[0].height = __h; \ | ||||
|     (*__gc->ops->PolyFillRect)(__b, __gc, 1, __r); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define XMesaPutImage(__d,__b,__gc,__i,__sx,__sy,__x,__y,__w,__h) \ | ||||
| { \ | ||||
| do { \ | ||||
|     /* Assumes: Images are always in ZPixmap format */ \ | ||||
|     (void) __d; \ | ||||
|     if (__sx || __sy) /* The non-trivial case */ \ | ||||
| @@ -146,22 +146,22 @@ typedef xColorItem  XMesaColor; | ||||
|     (*__gc->ops->PutImage)(__b, __gc, ((XMesaDrawable)(__b))->depth, \ | ||||
| 			   __x, __y, __w, __h, 0, ZPixmap, \ | ||||
| 			   ((XMesaImage *)(__i))->data); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define XMesaCopyArea(__d,__sb,__db,__gc,__sx,__sy,__w,__h,__x,__y) \ | ||||
| { \ | ||||
| do { \ | ||||
|     (void) __d; \ | ||||
|     ValidateGC(__db, __gc); \ | ||||
|     (*__gc->ops->CopyArea)((DrawablePtr)__sb, __db, __gc, \ | ||||
| 			   __sx, __sy, __w, __h, __x, __y); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define XMesaFillPolygon(__d,__b,__gc,__p,__n,__s,__m) \ | ||||
| { \ | ||||
| do { \ | ||||
|     (void) __d; \ | ||||
|     ValidateGC(__b, __gc); \ | ||||
|     (*__gc->ops->FillPolygon)(__b, __gc, __s, __m, __n, __p); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| /* CreatePixmap returns a PixmapPtr; so, it cannot be inside braces */ | ||||
| #define XMesaCreatePixmap(__d,__b,__w,__h,__depth) \ | ||||
| @@ -170,10 +170,10 @@ typedef xColorItem  XMesaColor; | ||||
|     (*__d->DestroyPixmap)(__b) | ||||
|  | ||||
| #define XMesaFreeGC(__d,__gc) \ | ||||
| { \ | ||||
| do { \ | ||||
|     (void) __d; \ | ||||
|     FreeScratchGC(__gc); \ | ||||
| } | ||||
| } while (0) | ||||
|  | ||||
| #define GET_COLORMAP_SIZE(__v)  __v->visinfo->ColormapEntries | ||||
| #define GET_REDMASK(__v)        __v->visinfo->redMask | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| # $Id: Makefile.X11,v 1.3 1999/10/27 10:09:53 brianp Exp $ | ||||
| # $Id: Makefile.X11,v 1.3.2.1 2000/04/24 15:29:02 brianp Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.1 | ||||
| # Copyright (C) 1995-1998  Brian Paul | ||||
| # Version:  3.2 | ||||
| # Copyright (C) 1995-2000  Brian Paul | ||||
|  | ||||
|  | ||||
| # Makefile for GLUT-based demo programs for Unix/X11 | ||||
| @@ -19,7 +19,7 @@ LIB_DEP = $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(GLU_LIB) $(LIBDIR)/$(GLUT_LIB) | ||||
|  | ||||
| PROGS = bounce clearspd drawpix gamma gears glinfo gloss glutfx isosurf \ | ||||
| 	morph3d multiarb osdemo paltex pointblast reflect \ | ||||
| 	renormal spectex stex3d tessdemo texcyl texobj trispd winpos \ | ||||
| 	renormal spectex stex3d tessdemo texcyl texobj trispd winpos | ||||
|  | ||||
|  | ||||
| ##### RULES ##### | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
|  | ||||
| /* $Id: gamma.c,v 1.1 1999/08/19 00:55:40 jtg Exp $ */ | ||||
| /* $Id: gamma.c,v 1.1.1.1.2.1 2000/03/18 01:14:01 brianp Exp $ */ | ||||
|  | ||||
| /* Draw test patterns to help determine correct gamma value for a display. | ||||
|    When the intensities of the inner squares nearly match the intensities | ||||
| @@ -25,8 +25,14 @@ | ||||
|  | ||||
| /* | ||||
|  * $Log: gamma.c,v $ | ||||
|  * Revision 1.1  1999/08/19 00:55:40  jtg | ||||
|  * Initial revision | ||||
|  * Revision 1.1.1.1.2.1  2000/03/18 01:14:01  brianp | ||||
|  * colors were computed incorrectly (Hans Nelles) | ||||
|  * | ||||
|  * Revision 1.2  2000/03/18 01:13:29  brianp | ||||
|  * colors were computed incorrectly (Hans Nelles) | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:40  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 3.1  1999/06/19 01:35:38  brianp | ||||
|  * merged in Kai Schuetz's RGB changes | ||||
| @@ -130,8 +136,9 @@ gamma_ramp(GLfloat yoffs, GLfloat r, GLfloat g, GLfloat b) | ||||
|  | ||||
|   for(d = 1; d < 4; d++) {  /* increasing density from 25% to 75% */ | ||||
|     GLfloat xcoord = (-1.0 + d*0.4); | ||||
|     GLfloat t = d * 0.25; | ||||
|  | ||||
|     glColor3f(r*d / 5.0, g*d / 5.0, b*d / 5.0); /* draw outer rect */ | ||||
|     glColor3f(r*t, g*t, b*t); /* draw outer rect */ | ||||
|     glRectf(xcoord, yoffs, xcoord+0.4, yoffs + 0.5); | ||||
|  | ||||
|     glColor3f(0.0, 0.0, 0.0);   /* "clear" inner rect */ | ||||
|   | ||||
| @@ -1,7 +1,10 @@ | ||||
| /* $Id: morph3d.c,v 1.2 1999/09/17 12:27:01 brianp Exp $ */ | ||||
| /* $Id: morph3d.c,v 1.2.2.1 1999/12/15 13:00:24 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * $Log: morph3d.c,v $ | ||||
|  * Revision 1.2.2.1  1999/12/15 13:00:24  brianp | ||||
|  * moved #define to column 0 | ||||
|  * | ||||
|  * Revision 1.2  1999/09/17 12:27:01  brianp | ||||
|  * silenced some warnings | ||||
|  * | ||||
| @@ -498,7 +501,7 @@ static void draw_dodeca( void ) | ||||
| { | ||||
|   GLuint list; | ||||
|  | ||||
|   #define TAU ((SQRT5+1)/2) | ||||
| #define TAU ((SQRT5+1)/2) | ||||
|  | ||||
|   list = glGenLists( 1 ); | ||||
|   glNewList( list, GL_COMPILE ); | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: multiarb.c,v 1.3 1999/10/21 16:40:32 brianp Exp $ */ | ||||
| /* $Id: multiarb.c,v 1.3.2.2 2000/02/02 17:32:15 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * GL_ARB_multitexture demo | ||||
| @@ -12,6 +12,12 @@ | ||||
|  | ||||
| /* | ||||
|  * $Log: multiarb.c,v $ | ||||
|  * Revision 1.3.2.2  2000/02/02 17:32:15  brianp | ||||
|  * changed > to >= | ||||
|  * | ||||
|  * Revision 1.3.2.1  2000/02/02 01:08:09  brianp | ||||
|  * limit Drift to [0, 1] | ||||
|  * | ||||
|  * Revision 1.3  1999/10/21 16:40:32  brianp | ||||
|  * added -info command line option | ||||
|  * | ||||
| @@ -61,6 +67,8 @@ static void Idle( void ) | ||||
| { | ||||
|    if (Animate) { | ||||
|       Drift += 0.05; | ||||
|       if (Drift >= 1.0) | ||||
|          Drift = 0.0; | ||||
|  | ||||
| #ifdef GL_ARB_multitexture | ||||
|       glActiveTextureARB(GL_TEXTURE0_ARB); | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: stex3d.c,v 1.2 1999/09/17 12:27:01 brianp Exp $ */ | ||||
| /* $Id: stex3d.c,v 1.2.2.1 1999/12/16 08:53:51 brianp Exp $ */ | ||||
|  | ||||
| /*-----------------------------  | ||||
|  * stex3d.c GL example of the mesa 3d-texture extention to simulate procedural | ||||
| @@ -17,6 +17,9 @@ | ||||
|  | ||||
| /* | ||||
|  * $Log: stex3d.c,v $ | ||||
|  * Revision 1.2.2.1  1999/12/16 08:53:51  brianp | ||||
|  * added a cast to malloc call | ||||
|  * | ||||
|  * Revision 1.2  1999/09/17 12:27:01  brianp | ||||
|  * silenced some warnings | ||||
|  * | ||||
| @@ -230,7 +233,7 @@ void create3Dtexture() | ||||
|  int tmp; | ||||
|  | ||||
|  printf("creating 3d textures...\n"); | ||||
|  voxels = (unsigned char  *) malloc((4*tex_width*tex_height*tex_depth)); | ||||
|  voxels = (unsigned char  *) malloc((size_t) (4*tex_width*tex_height*tex_depth)); | ||||
|  vp=voxels; | ||||
|  for (i=0;i<tex_width;i++){ | ||||
|     vec[0]=i; | ||||
|   | ||||
| @@ -1,50 +1,10 @@ | ||||
| /* $Id: tessdemo.c,v 1.3 1999/11/04 04:00:42 gareth Exp $ */ | ||||
| /* $Id: tessdemo.c,v 1.3.2.2 2000/03/27 15:47:08 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * A demo of the GLU polygon tesselation functions written by Bogdan Sikorski. | ||||
|  * This demo isn't built by the Makefile because it needs GLUT.  After you've | ||||
|  * installed GLUT you can try this demo. | ||||
|  * Here's the command for IRIX, for example: | ||||
|    cc -g -ansi -prototypes -fullwarn -float -I../include -DSHM tess_demo.c -L../lib -lglut -lMesaGLU -lMesaGL -lm -lX11 -lXext -lXmu -lfpe -lXext -o tess_demo | ||||
|  */ | ||||
|  | ||||
| /* | ||||
|  * Updated for GLU 1.3 tessellation by Gareth Hughes <garethh@bell-labs.com> | ||||
|  */ | ||||
|  | ||||
| /* | ||||
|  * $Log: tessdemo.c,v $ | ||||
|  * Revision 1.3  1999/11/04 04:00:42  gareth | ||||
|  * Updated demo for new GLU 1.3 tessellation.  Added optimized rendering | ||||
|  * by saving the output of the tessellation into display lists. | ||||
|  * | ||||
|  * Revision 1.2  1999/09/19 20:09:00  tanner | ||||
|  * | ||||
|  * lots of autoconf updates | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:40  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 3.5  1999/03/28 18:24:37  brianp | ||||
|  * minor clean-up | ||||
|  * | ||||
|  * Revision 3.4  1999/02/14 03:37:07  brianp | ||||
|  * fixed callback problem | ||||
|  * | ||||
|  * Revision 3.3  1998/07/26 01:25:26  brianp | ||||
|  * removed include of gl.h and glu.h | ||||
|  * | ||||
|  * Revision 3.2  1998/06/29 02:37:30  brianp | ||||
|  * minor changes for Windows (Ted Jump) | ||||
|  * | ||||
|  * Revision 3.1  1998/06/09 01:53:49  brianp | ||||
|  * main() should return an int | ||||
|  * | ||||
|  * Revision 3.0  1998/02/14 18:42:29  brianp | ||||
|  * initial rev | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #include <GL/glut.h> | ||||
| #include <stdio.h> | ||||
| @@ -79,20 +39,20 @@ static GLfloat		edge_color[3]; | ||||
|  | ||||
| static struct | ||||
| { | ||||
|    GLint	p[MAX_POINTS][2]; | ||||
|    GLfloat	p[MAX_POINTS][2]; | ||||
|    GLuint	point_cnt; | ||||
| } contours[MAX_CONTOURS]; | ||||
|  | ||||
| static struct | ||||
| { | ||||
|    GLsizei	no; | ||||
|    GLint	p[3][2]; | ||||
|    GLfloat	p[3][2]; | ||||
|    GLclampf	color[3][3]; | ||||
| } triangles[MAX_TRIANGLES]; | ||||
|  | ||||
|  | ||||
|  | ||||
| void GLCALLBACK my_error( GLenum err ) | ||||
| void GLCALLBACK error_callback( GLenum err ) | ||||
| { | ||||
|    int		len, i; | ||||
|    char const	*str; | ||||
| @@ -146,22 +106,22 @@ void GLCALLBACK end_callback() | ||||
| 		 triangles[i].color[0][1], | ||||
| 		 triangles[i].color[0][2] ); | ||||
|  | ||||
|       glVertex2i( triangles[i].p[0][0], triangles[i].p[0][1] ); | ||||
|       glVertex2i( triangles[i].p[1][0], triangles[i].p[1][1] ); | ||||
|       glVertex2f( triangles[i].p[0][0], triangles[i].p[0][1] ); | ||||
|       glVertex2f( triangles[i].p[1][0], triangles[i].p[1][1] ); | ||||
|  | ||||
|       glColor3f( triangles[i].color[1][0], | ||||
| 		 triangles[i].color[1][1], | ||||
| 		 triangles[i].color[1][2] ); | ||||
|  | ||||
|       glVertex2i( triangles[i].p[1][0], triangles[i].p[1][1] ); | ||||
|       glVertex2i( triangles[i].p[2][0], triangles[i].p[2][1] ); | ||||
|       glVertex2f( triangles[i].p[1][0], triangles[i].p[1][1] ); | ||||
|       glVertex2f( triangles[i].p[2][0], triangles[i].p[2][1] ); | ||||
|  | ||||
|       glColor3f( triangles[i].color[2][0], | ||||
| 		 triangles[i].color[2][1], | ||||
| 		 triangles[i].color[2][2] ); | ||||
|  | ||||
|       glVertex2i( triangles[i].p[2][0], triangles[i].p[2][1] ); | ||||
|       glVertex2i( triangles[i].p[0][0], triangles[i].p[0][1] ); | ||||
|       glVertex2f( triangles[i].p[2][0], triangles[i].p[2][1] ); | ||||
|       glVertex2f( triangles[i].p[0][0], triangles[i].p[0][1] ); | ||||
|    } | ||||
|  | ||||
|    glEnd(); | ||||
| @@ -170,9 +130,9 @@ void GLCALLBACK end_callback() | ||||
| void GLCALLBACK vertex_callback( void *data ) | ||||
| { | ||||
|    GLsizei	no; | ||||
|    GLint	*p; | ||||
|    GLfloat	*p; | ||||
|  | ||||
|    p = (GLint *) data; | ||||
|    p = (GLfloat *) data; | ||||
|    no = triangles[triangle_cnt].no; | ||||
|  | ||||
|    triangles[triangle_cnt].p[no][0] = p[0]; | ||||
| @@ -190,6 +150,22 @@ void GLCALLBACK vertex_callback( void *data ) | ||||
|    } | ||||
| } | ||||
|  | ||||
| void GLCALLBACK combine_callback( GLdouble coords[3], | ||||
| 				  GLdouble *vertex_data[4], | ||||
| 				  GLfloat weight[4], void **data ) | ||||
| { | ||||
|    GLfloat	*vertex; | ||||
|    int		i; | ||||
|  | ||||
|    vertex = (GLfloat *) malloc( 2 * sizeof(GLfloat) ); | ||||
|  | ||||
|    vertex[0] = (GLfloat) coords[0]; | ||||
|    vertex[1] = (GLfloat) coords[1]; | ||||
|  | ||||
|    *data = vertex; | ||||
| } | ||||
|  | ||||
|  | ||||
| void set_screen_wh( GLsizei w, GLsizei h ) | ||||
| { | ||||
|    width = w; | ||||
| @@ -208,10 +184,11 @@ void tesse( void ) | ||||
|  | ||||
|    if ( tobj != NULL ) | ||||
|    { | ||||
|       gluTessCallback( tobj, GLU_BEGIN, glBegin ); | ||||
|       gluTessCallback( tobj, GLU_VERTEX, glVertex2iv ); | ||||
|       gluTessCallback( tobj, GLU_END, glEnd ); | ||||
|       gluTessCallback( tobj, GLU_ERROR, my_error ); | ||||
|       gluTessCallback( tobj, GLU_TESS_BEGIN, glBegin ); | ||||
|       gluTessCallback( tobj, GLU_TESS_VERTEX, glVertex2fv ); | ||||
|       gluTessCallback( tobj, GLU_TESS_END, glEnd ); | ||||
|       gluTessCallback( tobj, GLU_TESS_ERROR, error_callback ); | ||||
|       gluTessCallback( tobj, GLU_TESS_COMBINE, combine_callback ); | ||||
|  | ||||
|       glNewList( list_start, GL_COMPILE ); | ||||
|       gluBeginPolygon( tobj ); | ||||
| @@ -233,10 +210,10 @@ void tesse( void ) | ||||
|       gluEndPolygon( tobj ); | ||||
|       glEndList(); | ||||
|  | ||||
|       gluTessCallback( tobj, GLU_BEGIN, begin_callback ); | ||||
|       gluTessCallback( tobj, GLU_VERTEX, vertex_callback ); | ||||
|       gluTessCallback( tobj, GLU_END, end_callback ); | ||||
|       gluTessCallback( tobj, GLU_EDGE_FLAG, edge_callback ); | ||||
|       gluTessCallback( tobj, GLU_TESS_BEGIN, begin_callback ); | ||||
|       gluTessCallback( tobj, GLU_TESS_VERTEX, vertex_callback ); | ||||
|       gluTessCallback( tobj, GLU_TESS_END, end_callback ); | ||||
|       gluTessCallback( tobj, GLU_TESS_EDGE_FLAG, edge_callback ); | ||||
|  | ||||
|       glNewList( list_start + 1, GL_COMPILE ); | ||||
|       gluBeginPolygon( tobj ); | ||||
| @@ -267,7 +244,7 @@ void tesse( void ) | ||||
|  | ||||
| void left_down( int x1, int y1 ) | ||||
| { | ||||
|    GLint	P[2]; | ||||
|    GLfloat	P[2]; | ||||
|    GLuint	point_cnt; | ||||
|  | ||||
|    /* translate GLUT into GL coordinates */ | ||||
| @@ -284,13 +261,13 @@ void left_down( int x1, int y1 ) | ||||
|  | ||||
|    if ( point_cnt ) | ||||
|    { | ||||
|       glVertex2iv( contours[contour_cnt].p[point_cnt-1] ); | ||||
|       glVertex2iv( P ); | ||||
|       glVertex2fv( contours[contour_cnt].p[point_cnt-1] ); | ||||
|       glVertex2fv( P ); | ||||
|    } | ||||
|    else | ||||
|    { | ||||
|       glVertex2iv( P ); | ||||
|       glVertex2iv( P ); | ||||
|       glVertex2fv( P ); | ||||
|       glVertex2fv( P ); | ||||
|    } | ||||
|  | ||||
|    glEnd(); | ||||
| @@ -311,8 +288,8 @@ void middle_down( int x1, int y1 ) | ||||
|    { | ||||
|       glBegin( GL_LINES ); | ||||
|  | ||||
|       glVertex2iv( contours[contour_cnt].p[0] ); | ||||
|       glVertex2iv( contours[contour_cnt].p[point_cnt-1] ); | ||||
|       glVertex2fv( contours[contour_cnt].p[0] ); | ||||
|       glVertex2fv( contours[contour_cnt].p[point_cnt-1] ); | ||||
|  | ||||
|       contours[contour_cnt].p[point_cnt][0] = -1; | ||||
|  | ||||
| @@ -370,6 +347,8 @@ void display( void ) | ||||
| 	 } | ||||
|       } | ||||
|  | ||||
|       glEnd(); | ||||
|  | ||||
|       glColor3f( 1.0, 1.0, 0.0 ); | ||||
|  | ||||
|       for ( i = 0 ; i <= contour_cnt ; i++ ) | ||||
| @@ -383,24 +362,24 @@ void display( void ) | ||||
| 	 case 0: | ||||
| 	    break; | ||||
| 	 case 1: | ||||
| 	    glVertex2iv( contours[i].p[0] ); | ||||
| 	    glVertex2iv( contours[i].p[0] ); | ||||
| 	    glVertex2fv( contours[i].p[0] ); | ||||
| 	    glVertex2fv( contours[i].p[0] ); | ||||
| 	    break; | ||||
| 	 case 2: | ||||
| 	    glVertex2iv( contours[i].p[0] ); | ||||
| 	    glVertex2iv( contours[i].p[1] ); | ||||
| 	    glVertex2fv( contours[i].p[0] ); | ||||
| 	    glVertex2fv( contours[i].p[1] ); | ||||
| 	    break; | ||||
| 	 default: | ||||
| 	    --point_cnt; | ||||
| 	    for ( j = 0 ; j < point_cnt ; j++ ) | ||||
| 	    { | ||||
| 	       glVertex2iv( contours[i].p[j] ); | ||||
| 	       glVertex2iv( contours[i].p[j+1] ); | ||||
| 	       glVertex2fv( contours[i].p[j] ); | ||||
| 	       glVertex2fv( contours[i].p[j+1] ); | ||||
| 	    } | ||||
| 	    if ( contours[i].p[j+1][0] == -1 ) | ||||
| 	    { | ||||
| 	       glVertex2iv( contours[i].p[0] ); | ||||
| 	       glVertex2iv( contours[i].p[j] ); | ||||
| 	       glVertex2fv( contours[i].p[0] ); | ||||
| 	       glVertex2fv( contours[i].p[j] ); | ||||
| 	    } | ||||
| 	    break; | ||||
| 	 } | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: texobj.c,v 1.1 1999/08/19 00:55:40 jtg Exp $ */ | ||||
| /* $Id: texobj.c,v 1.1.1.1.2.2 2000/03/01 03:36:35 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Example of using the 1.1 texture object functions. | ||||
| @@ -10,8 +10,14 @@ | ||||
|  | ||||
| /* | ||||
|  * $Log: texobj.c,v $ | ||||
|  * Revision 1.1  1999/08/19 00:55:40  jtg | ||||
|  * Initial revision | ||||
|  * Revision 1.1.1.1.2.2  2000/03/01 03:36:35  brianp | ||||
|  * test for GL 1.2 | ||||
|  * | ||||
|  * Revision 1.1.1.1.2.1  2000/02/25 23:24:28  brianp | ||||
|  * fixed bug when using display lists | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:40  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 3.1  1999/03/28 18:24:37  brianp | ||||
|  * minor clean-up | ||||
| @@ -34,7 +40,7 @@ static GLfloat Angle = 0.0f; | ||||
| static GLboolean HaveTexObj = GL_FALSE; | ||||
|  | ||||
|  | ||||
| #if defined(GL_VERSION_1_1) | ||||
| #if defined(GL_VERSION_1_1) || defined(GL_VERSION_1_2) | ||||
| #  define TEXTURE_OBJECT 1 | ||||
| #elif defined(GL_EXT_texture_object) | ||||
| #  define TEXTURE_OBJECT 1 | ||||
| @@ -84,7 +90,7 @@ static void draw( void ) | ||||
| #endif | ||||
|    } | ||||
|    else { | ||||
|       glCallList( TexObj[0] ); | ||||
|       glCallList( TexObj[1] ); | ||||
|    } | ||||
|    glBegin( GL_POLYGON ); | ||||
|    glTexCoord2f( 0.0, 0.0 );   glVertex2f( -1.0, -1.0 ); | ||||
| @@ -272,7 +278,8 @@ int main( int argc, char *argv[] ) | ||||
|       char *exten = (char *) glGetString( GL_EXTENSIONS ); | ||||
|       char *version = (char *) glGetString( GL_VERSION ); | ||||
|       if (   strstr( exten, "GL_EXT_texture_object" ) | ||||
|           || strncmp( version, "1.1", 3 )==0 ) { | ||||
|           || strncmp( version, "1.1", 3 )==0 | ||||
|           || strncmp( version, "1.2", 3 )==0 ) { | ||||
|          HaveTexObj = GL_TRUE; | ||||
|       } | ||||
|    } | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: logo.c,v 1.1 1999/08/19 00:55:41 jtg Exp $ */ | ||||
| /* $Id: logo.c,v 1.1.1.1.2.1 1999/12/15 13:01:44 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. | ||||
| @@ -108,16 +108,16 @@ GLubyte *image = checkImage; | ||||
| GLint imageHeight = CHECKIMAGEHEIGHT; | ||||
| GLint imageWidth = CHECKIMAGEWIDTH; | ||||
|  | ||||
| float decal[] = { | ||||
| static float decal[] = { | ||||
|     GL_DECAL, | ||||
| }; | ||||
| float modulate[] = { | ||||
| static float modulate[] = { | ||||
|     GL_MODULATE, | ||||
| }; | ||||
| float repeat[] = { | ||||
| static float repeat[] = { | ||||
|     GL_REPEAT, | ||||
| }; | ||||
| float nearest[] = { | ||||
| static float nearest[] = { | ||||
|     GL_NEAREST, | ||||
| }; | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| # $Id: Makefile.X11,v 1.4 1999/11/05 08:01:17 brianp Exp $ | ||||
| # $Id: Makefile.X11,v 1.4.2.1 1999/11/12 15:43:25 brianp Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.1 | ||||
| @@ -16,7 +16,7 @@ GL_LIBS = -L$(LIBDIR) -lglut -lGLU -lGL $(XLIBS) | ||||
|  | ||||
| LIB_DEP = $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(GLU_LIB) $(LIBDIR)/$(GLUT_LIB) | ||||
|  | ||||
| PROGS = glxdemo glxpixmap offset xdemo glxinfo xfont | ||||
| PROGS = glxdemo glxpixmap offset xdemo glxinfo xfont glxdpyinfo | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
							
								
								
									
										1094
									
								
								progs/xdemos/glxdpyinfo.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1094
									
								
								progs/xdemos/glxdpyinfo.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -30,7 +30,7 @@ LIBDIR = ../lib | ||||
|  | ||||
| SOURCES = glu.c mipmap.c nurbs.c nurbscrv.c nurbssrf.c nurbsutl.c \ | ||||
| 	project.c quadric.c tess.c tess_fist.c tess_hash.c tess_heap.c \ | ||||
| 	tess_winding.c | ||||
| 	tess_winding.c tess_clip.c | ||||
|  | ||||
| OBJECTS = $(SOURCES:.c=.o) | ||||
|  | ||||
|   | ||||
| @@ -19,9 +19,12 @@ | ||||
| # Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  | ||||
|  | ||||
| # $Id: Makefile.BeOS-R4,v 1.5 1999/10/03 00:53:38 gareth Exp $ | ||||
| # $Id: Makefile.BeOS-R4,v 1.5.2.1 1999/11/15 21:15:43 gareth Exp $ | ||||
|  | ||||
| # $Log: Makefile.BeOS-R4,v $ | ||||
| # Revision 1.5.2.1  1999/11/15 21:15:43  gareth | ||||
| # Added new tessellation polygon clipping file tess_clip.c | ||||
| # | ||||
| # Revision 1.5  1999/10/03 00:53:38  gareth | ||||
| # Added tessellation winding rule files. | ||||
| # | ||||
| @@ -59,7 +62,7 @@ LIBDIR = ../lib | ||||
|  | ||||
| SOURCES = glu.c mipmap.c nurbs.c nurbscrv.c nurbssrf.c nurbsutl.c \ | ||||
| 	project.c quadric.c tess.c tess_fist.c tess_hash.c tess_heap.c \ | ||||
| 	tess_winding.c | ||||
| 	tess_winding.c tess_clip.c | ||||
|  | ||||
| OBJECTS = $(SOURCES:.c=.o) | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| # $Id: Makefile.X11,v 1.6 1999/10/03 00:53:38 gareth Exp $ | ||||
| # $Id: Makefile.X11,v 1.6.2.1 1999/11/15 21:15:43 gareth Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.1 | ||||
| @@ -20,7 +20,7 @@ LIBDIR = ../lib | ||||
|  | ||||
| SOURCES = glu.c mipmap.c nurbs.c nurbscrv.c nurbssrf.c nurbsutl.c \ | ||||
| 	project.c quadric.c tess.c tess_fist.c tess_hash.c tess_heap.c \ | ||||
| 	tess_winding.c | ||||
| 	tess_winding.c tess_clip.c | ||||
|  | ||||
| OBJECTS = $(SOURCES:.c=.o) | ||||
|  | ||||
|   | ||||
							
								
								
									
										64
									
								
								src/glu/mesa/Makefile.m32
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								src/glu/mesa/Makefile.m32
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| # Makefile for GLU for GCC-2.95.2/Mingw32 contributed by | ||||
| # Paul Garceau <pgarceau@teleport.com> | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.2 | ||||
| # Copyright (C) 1995-1999  Brian Paul | ||||
| # | ||||
| # This library is free software; you can redistribute it and/or | ||||
| # modify it under the terms of the GNU Library General Public | ||||
| # License as published by the Free Software Foundation; either | ||||
| # version 2 of the License, or (at your option) any later version. | ||||
| # | ||||
| # This library is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
| # Library General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU Library General Public | ||||
| # License along with this library; if not, write to the Free | ||||
| # Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  | ||||
|  | ||||
| MESA_MAJOR=3 | ||||
| MESA_MINOR=2 | ||||
| MESA_TINY=0 | ||||
| VERSION=$(MESA_MAJOR).$(MESA_MINOR) | ||||
|  | ||||
| CFLAGS = -I. -DWIN32 -D__WIN32__ -D_WINDOWS \ | ||||
| 		-O2 -funroll-loops \ | ||||
| 		-fexpensive-optimizations -fomit-frame-pointer -ffast-math \ | ||||
| 		-malign-loops=2 -malign-jumps=2 -malign-functions=2 \ | ||||
| 		-mwindows | ||||
| CC = gcc | ||||
| MAKELIB = ar ru | ||||
| GLU_LIB = libGLU.a | ||||
|  | ||||
|  | ||||
| ##### MACROS ##### | ||||
|  | ||||
| VPATH = RCS | ||||
|  | ||||
| INCDIR = ../include | ||||
| LIBDIR = ../lib | ||||
|  | ||||
| SOURCES = glu.c mipmap.c nurbs.c nurbscrv.c nurbssrf.c nurbsutl.c \ | ||||
| 	project.c quadric.c tess.c tess_fist.c tess_hash.c tess_heap.c \ | ||||
| 	tess_winding.c tess_clip.c | ||||
|  | ||||
| OBJECTS = $(SOURCES:.c=.o) | ||||
|  | ||||
|  | ||||
|  | ||||
| ##### RULES ##### | ||||
|  | ||||
| .c.o: | ||||
| 	$(CC) -c -I$(INCDIR) $(CFLAGS) $< | ||||
|  | ||||
|  | ||||
|  | ||||
| ##### TARGETS ##### | ||||
|  | ||||
| # Make the library: | ||||
| $(LIBDIR)/$(GLU_LIB): $(OBJECTS) | ||||
| 	$(MAKELIB) $(GLU_LIB) $(MAJOR) $(MINOR) $(TINY) $(OBJECTS) | ||||
| @@ -16,11 +16,11 @@ CFLAGS = /include=$(INCDIR)/define=(FBIND=1) | ||||
|  | ||||
| SOURCES = glu.c mipmap.c nurbs.c nurbscrv.c nurbssrf.c nurbsutl.c \ | ||||
| 	project.c quadric.c tess.c tess_fist.c tess_hash.c tess_heap.c \ | ||||
| 	tess_winding.c | ||||
| 	tess_winding.c tess_clip.c | ||||
|  | ||||
| OBJECTS =glu.obj,mipmap.obj,nurbs.obj,nurbscrv.obj,nurbssrf.obj,nurbsutl.obj,\ | ||||
| 	project.obj,quadric.obj,tess.obj,tess_fist.obj,tess_hash.obj,\ | ||||
| 	tess_heap.obj,tess_winding.obj | ||||
| 	tess_heap.obj,tess_winding.obj,tess_clip.obj | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| /* $Id: glu.c,v 1.16 1999/10/27 09:47:41 brianp Exp $ */ | ||||
| /* $Id: glu.c,v 1.16.2.5 2000/04/24 12:33:24 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Copyright (C) 1995-1999  Brian Paul | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
| @@ -21,99 +21,6 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: glu.c,v $ | ||||
|  * Revision 1.16  1999/10/27 09:47:41  brianp | ||||
|  * disabled gluGetProcAddressEXT | ||||
|  * | ||||
|  * Revision 1.15  1999/09/19 02:03:19  tjump | ||||
|  * More Win32 build compliance fixups | ||||
|  * | ||||
|  * Revision 1.14  1999/09/17 12:21:53  brianp | ||||
|  * glGetProcAddressEXT changes to accomodate Win32 and non-Win32 | ||||
|  * | ||||
|  * Revision 1.13  1999/09/17 03:17:18  tjump | ||||
|  * Patch error fixup | ||||
|  * | ||||
|  * Revision 1.12  1999/09/17 03:07:28  tjump | ||||
|  * Win32 build req't updates | ||||
|  * | ||||
|  * Revision 1.11  1999/09/17 01:00:38  brianp | ||||
|  * fixed typo | ||||
|  * | ||||
|  * Revision 1.10  1999/09/17 00:06:14  brianp | ||||
|  * gluGetProcAddressEXT change for C++ / BeOS | ||||
|  * | ||||
|  * Revision 1.9  1999/09/16 22:37:56  brianp | ||||
|  * added some casts in gluGetProcAddressEXT() | ||||
|  * | ||||
|  * Revision 1.8  1999/09/16 16:53:28  brianp | ||||
|  * clean-up of GLU_EXT_get_proc_address | ||||
|  * | ||||
|  * Revision 1.7  1999/09/14 00:11:40  brianp | ||||
|  * added gluCheckExtension() | ||||
|  * | ||||
|  * Revision 1.6  1999/09/13 14:31:32  joukj | ||||
|  * | ||||
|  * strcmp needs the string.h | ||||
|  * | ||||
|  * Revision 1.5  1999/09/11 12:04:54  brianp | ||||
|  * added 1.2 function to gluGetProcAddressEXT() | ||||
|  * | ||||
|  * Revision 1.4  1999/09/11 11:36:26  brianp | ||||
|  * added GLU_EXT_get_proc_address | ||||
|  * | ||||
|  * Revision 1.3  1999/09/10 04:32:10  gareth | ||||
|  * Fixed triangle output, recovery process termination. | ||||
|  * | ||||
|  * Revision 1.2  1999/09/10 02:03:31  gareth | ||||
|  * Added GLU 1.3 tessellation (except winding rule code). | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:42  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 1.13  1999/03/31 19:07:28  brianp | ||||
|  * added GL_EXT_abgr to extensions | ||||
|  * | ||||
|  * Revision 1.12  1999/02/06 06:12:41  brianp | ||||
|  * updated version string to 3.1 | ||||
|  * | ||||
|  * Revision 1.11  1999/01/03 03:23:15  brianp | ||||
|  * now using GLAPIENTRY and GLCALLBACK keywords (Ted Jump) | ||||
|  * | ||||
|  * Revision 1.10  1998/04/22 00:35:50  brianp | ||||
|  * changed version to 3.0 | ||||
|  * | ||||
|  * Revision 1.9  1997/12/09 03:03:32  brianp | ||||
|  * changed version to 2.6 | ||||
|  * | ||||
|  * Revision 1.8  1997/10/04 01:30:20  brianp | ||||
|  * changed version to 2.5 | ||||
|  * | ||||
|  * Revision 1.7  1997/08/13 01:25:21  brianp | ||||
|  * changed version string to 2.4 | ||||
|  * | ||||
|  * Revision 1.6  1997/07/24 01:28:44  brianp | ||||
|  * changed precompiled header symbol from PCH to PC_HEADER | ||||
|  * | ||||
|  * Revision 1.5  1997/07/13 22:59:11  brianp | ||||
|  * added const to viewport parameter of gluPickMatrix() | ||||
|  * | ||||
|  * Revision 1.4  1997/05/28 02:29:38  brianp | ||||
|  * added support for precompiled headers (PCH), inserted APIENTRY keyword | ||||
|  * | ||||
|  * Revision 1.3  1997/04/12 16:19:02  brianp | ||||
|  * changed version to 2.3 | ||||
|  * | ||||
|  * Revision 1.2  1997/03/11 00:58:34  brianp | ||||
|  * changed version to 2.2 | ||||
|  * | ||||
|  * Revision 1.1  1996/09/27 01:19:39  brianp | ||||
|  * Initial revision | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifdef PC_HEADER | ||||
| #include "all.h" | ||||
| #else | ||||
| @@ -304,7 +211,7 @@ const GLubyte* GLAPIENTRY gluErrorString( GLenum errorCode ) | ||||
|       "unconnected trim curves", | ||||
|       "unknown knot error", | ||||
|       "negative vertex count encountered", | ||||
|       "negative byte-stride encounteed", | ||||
|       "negative byte-stride encountered", | ||||
|       "unknown type descriptor", | ||||
|       "null control array or knot vector", | ||||
|       "duplicate point on pwlcurve" | ||||
| @@ -367,8 +274,8 @@ const GLubyte* GLAPIENTRY gluErrorString( GLenum errorCode ) | ||||
|  | ||||
| const GLubyte* GLAPIENTRY gluGetString( GLenum name ) | ||||
| { | ||||
|    static char *extensions = "GL_EXT_abgr GLU_EXT_get_proc_address"; | ||||
|    static char *version = "1.2 Mesa 3.1"; | ||||
|    static char *extensions = "GL_EXT_abgr"; | ||||
|    static char *version = "1.2 Mesa 3.2"; | ||||
|  | ||||
|    switch (name) { | ||||
|       case GLU_EXTENSIONS: | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: gluP.h,v 1.1 1999/08/19 00:55:42 jtg Exp $ */ | ||||
| /* $Id: gluP.h,v 1.1.1.1.2.1 1999/12/06 05:24:36 joukj Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -23,8 +23,19 @@ | ||||
|  | ||||
| /* | ||||
|  * $Log: gluP.h,v $ | ||||
|  * Revision 1.1  1999/08/19 00:55:42  jtg | ||||
|  * Initial revision | ||||
|  * Revision 1.1.1.1.2.1  1999/12/06 05:24:36  joukj | ||||
|  * | ||||
|  *  Committing in . | ||||
|  * | ||||
|  *  Updating compilation on VMS | ||||
|  * | ||||
|  *  Modified Files: | ||||
|  *   Tag: mesa_3_2_dev | ||||
|  *  	Mesa/src-glu/descrip.mms Mesa/src-glu/gluP.h | ||||
|  *  ---------------------------------------------------------------------- | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:42  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 1.4  1999/01/03 03:23:15  brianp | ||||
|  * now using GLAPIENTRY and GLCALLBACK keywords (Ted Jump) | ||||
| @@ -55,6 +66,7 @@ | ||||
| #include "GL/gl.h" | ||||
| #include "GL/glu.h" | ||||
|  | ||||
| #include <string.h> | ||||
|  | ||||
| #ifndef MESA | ||||
|    /* If we're using the real OpenGL header files... */ | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| /* $Id: mipmap.c,v 1.3 1999/11/09 06:16:59 brianp Exp $ */ | ||||
| /* $Id: mipmap.c,v 1.3.2.2 2000/02/28 14:51:39 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Copyright (C) 1995-1999  Brian Paul | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
| @@ -21,59 +21,6 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: mipmap.c,v $ | ||||
|  * Revision 1.3  1999/11/09 06:16:59  brianp | ||||
|  * replace GLint with GLsizei in a gluScaleImage, gluBuild1/2DMipmaps() | ||||
|  * | ||||
|  * Revision 1.2  1999/09/14 00:30:28  brianp | ||||
|  * fixed pixel packing/unpacking code in gluBuild2DMipmaps() | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:42  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 1.13  1999/03/05 17:49:06  brianp | ||||
|  * added support for GL_EXT_abgr (devernay@istar.fr) | ||||
|  * | ||||
|  * Revision 1.12  1999/01/03 03:23:15  brianp | ||||
|  * now using GLAPIENTRY and GLCALLBACK keywords (Ted Jump) | ||||
|  * | ||||
|  * Revision 1.11  1998/09/18 02:44:03  brianp | ||||
|  * further changes to gluScaleImage() per Randy Frank | ||||
|  * | ||||
|  * Revision 1.10  1998/09/17 03:20:26  brianp | ||||
|  * fixed another bug in gluScaleImage() per Sven Panne | ||||
|  * | ||||
|  * Revision 1.9  1998/07/31 03:06:20  brianp | ||||
|  * tweaked the gluScaleImage() function per Randy Frank | ||||
|  * | ||||
|  * Revision 1.8  1998/07/08 01:02:53  brianp | ||||
|  * if gluBuildxDMipmaps() width or height <= 0 return GLU_INVALID_VALUE | ||||
|  * | ||||
|  * Revision 1.7  1998/07/01 00:18:02  brianp | ||||
|  * if gluBuildxDMipmaps() width or height <= 0 just return 0 | ||||
|  * | ||||
|  * Revision 1.6  1998/06/01 01:06:41  brianp | ||||
|  * small update for Next/OpenStep from Alexander Mai | ||||
|  * | ||||
|  * Revision 1.5  1997/07/24 01:28:44  brianp | ||||
|  * changed precompiled header symbol from PCH to PC_HEADER | ||||
|  * | ||||
|  * Revision 1.4  1997/06/23 00:22:56  brianp | ||||
|  * added dummy() call to work around an MSVC 4.1 bug | ||||
|  * | ||||
|  * Revision 1.3  1997/05/28 02:29:38  brianp | ||||
|  * added support for precompiled headers (PCH), inserted APIENTRY keyword | ||||
|  * | ||||
|  * Revision 1.2  1997/05/24 13:32:25  brianp | ||||
|  * undef EPSILON in case it's already defined | ||||
|  * | ||||
|  * Revision 1.1  1996/09/27 01:19:39  brianp | ||||
|  * Initial revision | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifdef PC_HEADER | ||||
| #include "all.h" | ||||
| #else | ||||
| @@ -138,9 +85,11 @@ GLint GLAPIENTRY gluScaleImage( GLenum format, | ||||
| 	 components = 2; | ||||
| 	 break; | ||||
|       case GL_RGB: | ||||
|       case GL_BGR: | ||||
| 	 components = 3; | ||||
| 	 break; | ||||
|       case GL_RGBA: | ||||
|       case GL_BGRA: | ||||
| #ifdef GL_EXT_abgr | ||||
|       case GL_ABGR_EXT: | ||||
| #endif | ||||
| @@ -702,12 +651,6 @@ GLint GLAPIENTRY gluBuild1DMipmaps( GLenum target, GLint components, | ||||
|  | ||||
|    free( texture ); | ||||
|  | ||||
|    /* make sure remaining mipmap levels are removed */ | ||||
|    for (l=levels;l<max_levels;l++) { | ||||
|       glTexImage1D( GL_TEXTURE_1D, l, components, 0, 0, | ||||
| 		    format, GL_UNSIGNED_BYTE, NULL ); | ||||
|    } | ||||
|  | ||||
|    return 0; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| /* $Id: nurbs.c,v 1.2 1999/11/11 03:21:43 kendallb Exp $ */ | ||||
| /* $Id: nurbs.c,v 1.1.1.1.2.1 2000/02/10 17:23:47 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Copyright (C) 1995-1999  Brian Paul | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
| @@ -21,73 +21,6 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: nurbs.c,v $ | ||||
|  * Revision 1.2  1999/11/11 03:21:43  kendallb | ||||
|  * | ||||
|  *  . Updated GL/gl.h with GLCALLACKP and GLAPIENTRYP macros for compatibility | ||||
|  *    with the IBM VisualAge C++ compiler. Eventually some more code will be | ||||
|  *    needed in the headers to enable the reversal of (__stdcall*) to (*__stdcall) | ||||
|  *    for the IBM compilers, however we currently build using our own header files | ||||
|  *    that already handle this. | ||||
|  * | ||||
|  *  . Changed instances of (GLCALLBACK*) to GLCALLBACKP for compatibility | ||||
|  *    with the IBM VisualAge C++ compiler in src-glu. | ||||
|  * | ||||
|  *  . Misc cleanups for warnings generated with Watcom C++ in src-glu. Compiles | ||||
|  *    with 0 warnings now. | ||||
|  * | ||||
|  *  . tess_hash.c: line 244 - Why is this function stubbed out? I removed the | ||||
|  *    code with a #if 0 to avoid a compiler warning, but it looks dangerous. | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:42  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 1.14  1999/01/03 03:23:15  brianp | ||||
|  * now using GLAPIENTRY and GLCALLBACK keywords (Ted Jump) | ||||
|  * | ||||
|  * Revision 1.13  1998/06/01 01:07:49  brianp | ||||
|  * small update for Next/OpenStep from Alexander Mai | ||||
|  * | ||||
|  * Revision 1.12  1998/03/15 18:14:30  brianp | ||||
|  * fixed a compiler cast warning | ||||
|  * | ||||
|  * Revision 1.11  1998/02/07 14:29:11  brianp | ||||
|  * fixed casting problem in gluNurbsCallback, again | ||||
|  * | ||||
|  * Revision 1.10  1998/02/04 00:21:20  brianp | ||||
|  * fixed cygnus compilation problem (Stephane Rehel) | ||||
|  * | ||||
|  * Revision 1.9  1998/01/16 03:35:26  brianp | ||||
|  * fixed Windows compilation warnings (Theodore Jump) | ||||
|  * | ||||
|  * Revision 1.8  1997/09/17 01:51:48  brianp | ||||
|  * changed glu*Callback() functions to match prototype in glu.h | ||||
|  * | ||||
|  * Revision 1.7  1997/07/24 01:28:44  brianp | ||||
|  * changed precompiled header symbol from PCH to PC_HEADER | ||||
|  * | ||||
|  * Revision 1.6  1997/07/24 01:26:31  brianp | ||||
|  * added CALLBACK keyword to gluNurbsCallback() | ||||
|  * | ||||
|  * Revision 1.5  1997/05/28 02:29:38  brianp | ||||
|  * added support for precompiled headers (PCH), inserted APIENTRY keyword | ||||
|  * | ||||
|  * Revision 1.4  1997/05/27 03:17:22  brianp | ||||
|  * minor clean-up | ||||
|  * | ||||
|  * Revision 1.3  1997/05/27 03:00:16  brianp | ||||
|  * incorporated Bogdan's new NURBS code | ||||
|  * | ||||
|  * Revision 1.2  1996/09/27 23:11:23  brianp | ||||
|  * ifdef'd out unimplemented trimmed nurbs code | ||||
|  * | ||||
|  * Revision 1.1  1996/09/27 01:19:39  brianp | ||||
|  * Initial revision | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * NURBS implementation written by Bogdan Sikorski (bogdan@cira.it) | ||||
|  * See README2 for more info. | ||||
| @@ -617,13 +550,9 @@ void GLAPIENTRY gluNurbsSurface( GLUnurbsObj *nobj, | ||||
|  | ||||
|  | ||||
| void GLAPIENTRY | ||||
| gluNurbsCallback( GLUnurbsObj *nobj, GLenum which, void (GLCALLBACKP fn)()) | ||||
| gluNurbsCallback( GLUnurbsObj *nobj, GLenum which, void (GLCALLBACK *fn)()) | ||||
| { | ||||
| #if defined(__CYGWIN32__) || defined(OPENSTEP) | ||||
|     nobj->error_callback = (void(*)(GLenum))fn; | ||||
| #else | ||||
| 	nobj->error_callback = (void(GLCALLBACKP)(GLenum))fn; | ||||
| #endif | ||||
|     nobj->error_callback = (void(GLCALLBACKPCAST)(GLenum))fn; | ||||
|  | ||||
|     if(which!=GLU_ERROR) | ||||
|         call_user_error(nobj,GLU_INVALID_ENUM); | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| /* $Id: quadric.c,v 1.3 1999/11/11 09:55:39 joukj Exp $ */ | ||||
| /* $Id: quadric.c,v 1.1.1.1.2.4 2000/02/10 17:23:48 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Copyright (C) 1995-1999  Brian Paul | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1999-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
| @@ -21,92 +21,6 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: quadric.c,v $ | ||||
|  * Revision 1.3  1999/11/11 09:55:39  joukj | ||||
|  * | ||||
|  *  tess_macro.h included | ||||
|  * | ||||
|  * Revision 1.2  1999/11/11 03:21:43  kendallb | ||||
|  * | ||||
|  *  . Updated GL/gl.h with GLCALLACKP and GLAPIENTRYP macros for compatibility | ||||
|  *    with the IBM VisualAge C++ compiler. Eventually some more code will be | ||||
|  *    needed in the headers to enable the reversal of (__stdcall*) to (*__stdcall) | ||||
|  *    for the IBM compilers, however we currently build using our own header files | ||||
|  *    that already handle this. | ||||
|  * | ||||
|  *  . Changed instances of (GLCALLBACK*) to GLCALLBACKP for compatibility | ||||
|  *    with the IBM VisualAge C++ compiler in src-glu. | ||||
|  * | ||||
|  *  . Misc cleanups for warnings generated with Watcom C++ in src-glu. Compiles | ||||
|  *    with 0 warnings now. | ||||
|  * | ||||
|  *  . tess_hash.c: line 244 - Why is this function stubbed out? I removed the | ||||
|  *    code with a #if 0 to avoid a compiler warning, but it looks dangerous. | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:42  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 1.19  1999/02/27 13:55:31  brianp | ||||
|  * fixed BeOS-related GLU typedef problems | ||||
|  * | ||||
|  * Revision 1.18  1999/01/03 03:23:15  brianp | ||||
|  * now using GLAPIENTRY and GLCALLBACK keywords (Ted Jump) | ||||
|  * | ||||
|  * Revision 1.17  1999/01/03 03:19:15  brianp | ||||
|  * rewrote some of gluCylinder | ||||
|  * | ||||
|  * Revision 1.16  1998/06/01 01:08:36  brianp | ||||
|  * small update for Next/OpenStep from Alexander Mai | ||||
|  * | ||||
|  * Revision 1.15  1998/03/15 18:28:54  brianp | ||||
|  * reimplemented gluDisk() point and line mode | ||||
|  * | ||||
|  * Revision 1.14  1998/03/15 18:14:17  brianp | ||||
|  * fixed a compiler cast warning | ||||
|  * | ||||
|  * Revision 1.13  1998/02/07 14:28:34  brianp | ||||
|  * another change to gluQuadricCallback(), this time for StormC compiler | ||||
|  * | ||||
|  * Revision 1.12  1998/02/05 00:43:19  brianp | ||||
|  * Yes, still another change to gluQuadricCallback()! | ||||
|  * | ||||
|  * Revision 1.11  1998/02/04 00:27:43  brianp | ||||
|  * yet another change to gluQuadricCallback()! | ||||
|  * | ||||
|  * Revision 1.10  1998/02/04 00:23:23  brianp | ||||
|  * fixed CALLBACK problem in gluQuadricCallback() (Stephane Rehel) | ||||
|  * | ||||
|  * Revision 1.9  1998/02/04 00:20:09  brianp | ||||
|  * added missing (int) in ErrorFunc cast | ||||
|  * | ||||
|  * Revision 1.8  1998/01/16 03:37:51  brianp | ||||
|  * fixed another assignment warning in gluQuadricCallback() | ||||
|  * | ||||
|  * Revision 1.7  1998/01/16 03:35:26  brianp | ||||
|  * fixed Windows compilation warnings (Theodore Jump) | ||||
|  * | ||||
|  * Revision 1.6  1997/10/29 02:02:20  brianp | ||||
|  * various MS Windows compiler changes (David Bucciarelli, v20 3dfx driver) | ||||
|  * | ||||
|  * Revision 1.5  1997/09/17 01:51:48  brianp | ||||
|  * changed glu*Callback() functions to match prototype in glu.h | ||||
|  * | ||||
|  * Revision 1.4  1997/07/24 01:28:44  brianp | ||||
|  * changed precompiled header symbol from PCH to PC_HEADER | ||||
|  * | ||||
|  * Revision 1.3  1997/05/28 02:29:38  brianp | ||||
|  * added support for precompiled headers (PCH), inserted APIENTRY keyword | ||||
|  * | ||||
|  * Revision 1.2  1997/03/12 02:15:38  brianp | ||||
|  * fixed problem in gluPartialDisk() reported by Kenneth H. Carpenter | ||||
|  * | ||||
|  * Revision 1.1  1996/09/27 01:19:39  brianp | ||||
|  * Initial revision | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* TODO: | ||||
|  *   texture coordinate support | ||||
|  *   flip normals according to orientation | ||||
| @@ -122,11 +36,21 @@ | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include "gluP.h" | ||||
| #include "tess_macros.h" | ||||
| #endif | ||||
|  | ||||
|  | ||||
|  | ||||
| #ifndef M_PI | ||||
| #  define M_PI (3.1415926) | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Convert degrees to radians: | ||||
|  */ | ||||
| #define DEG_TO_RAD(A)   ((A)*(M_PI/180.0)) | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Sin and Cos for degree angles: | ||||
|  */ | ||||
| @@ -146,7 +70,7 @@ struct GLUquadric { | ||||
| 	GLenum Orientation;		/* GLU_INSIDE or GLU_OUTSIDE */ | ||||
| 	GLboolean TextureFlag;		/* Generate texture coords? */ | ||||
| 	GLenum Normals;		/* GLU_NONE, GLU_FLAT, or GLU_SMOOTH */ | ||||
| 	void (GLCALLBACKP ErrorFunc)(GLenum err);	/* Error handler callback function */ | ||||
| 	void (GLCALLBACK *ErrorFunc)(GLenum err);	/* Error handler callback function */ | ||||
| }; | ||||
|  | ||||
|  | ||||
| @@ -232,24 +156,24 @@ void GLAPIENTRY gluQuadricOrientation( GLUquadricObj *quadObject, | ||||
|  * Set the error handler callback function. | ||||
|  */ | ||||
| void GLAPIENTRY gluQuadricCallback( GLUquadricObj *qobj, | ||||
| 								  GLenum which, void (GLCALLBACKP fn)() ) | ||||
|                                   GLenum which, void (GLCALLBACK *fn)() ) | ||||
| { | ||||
|    /* | ||||
|     * UGH, this is a mess!  I thought ANSI was a standard. | ||||
|     */ | ||||
|    if (qobj && which==GLU_ERROR) { | ||||
| #ifdef __CYGWIN32__ | ||||
|       qobj->ErrorFunc = (void(*)(int))fn; | ||||
|       qobj->ErrorFunc = (void(GLCALLBACKPCAST)(GLenum))fn; | ||||
| #elif defined(OPENSTEP) | ||||
|       qobj->ErrorFunc = (void(*)(GLenum))fn; | ||||
| #elif defined(_WIN32) | ||||
| 	  qobj->ErrorFunc = (void(GLCALLBACKP)(int))fn; | ||||
|       qobj->ErrorFunc = (void(GLCALLBACK*)(int))fn; | ||||
| #elif defined(__STORM__) | ||||
| 	  qobj->ErrorFunc = (void(GLCALLBACKP)(GLenum))fn; | ||||
|       qobj->ErrorFunc = (void(GLCALLBACK*)(GLenum))fn; | ||||
| #elif defined(__BEOS__) | ||||
|       qobj->ErrorFunc = (void(*)(GLenum))fn; | ||||
| #else | ||||
| 	  qobj->ErrorFunc = (void(GLCALLBACKP)())fn; | ||||
|       qobj->ErrorFunc = (void(GLCALLBACK*)())fn; | ||||
| #endif | ||||
|    } | ||||
| } | ||||
| @@ -392,8 +316,8 @@ void GLAPIENTRY gluCylinder( GLUquadricObj *qobj, | ||||
|          for (i=0;i<=slices;i++) { | ||||
|             GLfloat x, y; | ||||
|             if (i == slices) { | ||||
|                x = sin(0); | ||||
|                y = cos(0); | ||||
|                x = sin(0.0); | ||||
|                y = cos(0.0); | ||||
|             } | ||||
|             else { | ||||
|                x = sin(i * da); | ||||
| @@ -783,7 +707,7 @@ void GLAPIENTRY gluPartialDisk( GLUquadricObj *qobj, GLdouble innerRadius, | ||||
|       for (loop=0; loop<loops; loop++) { | ||||
| 	 angle = DEG_TO_RAD(startAngle); | ||||
| 	 glBegin( GL_LINE_STRIP ); | ||||
| 	 for (slice=0; slice<slices; slice++) { | ||||
| 	 for (slice=0; slice<=slices; slice++) { | ||||
| 	    glVertex2d( radius * sin(angle), radius * cos(angle) ); | ||||
| 	    angle += delta_angle; | ||||
| 	 } | ||||
| @@ -792,7 +716,7 @@ void GLAPIENTRY gluPartialDisk( GLUquadricObj *qobj, GLdouble innerRadius, | ||||
|       } | ||||
|       /* draw spokes */ | ||||
|       angle = DEG_TO_RAD(startAngle); | ||||
|       for (slice=0; slice<slices; slice++) { | ||||
|       for (slice=0; slice<=slices; slice++) { | ||||
| 	 radius = innerRadius; | ||||
| 	 glBegin( GL_LINE_STRIP ); | ||||
| 	 for (loop=0; loop<loops; loop++) { | ||||
| @@ -846,7 +770,7 @@ void GLAPIENTRY gluPartialDisk( GLUquadricObj *qobj, GLdouble innerRadius, | ||||
|       for (loop=0; loop<loops; loop++) { | ||||
| 	 glBegin( GL_QUAD_STRIP ); | ||||
| 	 angle = DEG_TO_RAD(startAngle); | ||||
| 	 for (slice=0; slice<slices; slice++) { | ||||
| 	 for (slice=0; slice<=slices; slice++) { | ||||
| 	    if (qobj->Orientation==GLU_OUTSIDE) { | ||||
| 	       glVertex2d( (radius+delta_radius)*sin(angle), | ||||
| 			   (radius+delta_radius)*cos(angle) ); | ||||
|   | ||||
							
								
								
									
										1031
									
								
								src/glu/mesa/tess.c
									
									
									
									
									
								
							
							
						
						
									
										1031
									
								
								src/glu/mesa/tess.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,4 +1,4 @@ | ||||
| /* $Id: tess.h,v 1.15 1999/11/05 20:37:14 gareth Exp $ */ | ||||
| /* $Id: tess.h,v 1.15.2.6 1999/12/05 17:01:17 gareth Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -56,33 +56,39 @@ extern "C" { | ||||
| struct GLUtesselator | ||||
| { | ||||
|     tess_callbacks_t	callbacks; | ||||
|     GLboolean		boundary_only; | ||||
|     GLenum		winding_rule; | ||||
|     GLboolean		boundary_only; | ||||
|     GLdouble		tolerance; | ||||
|     tess_plane_t	plane; | ||||
|     GLuint		contour_count; | ||||
|     GLenum		orientation; | ||||
|     void		*data; | ||||
|     GLint		num_contours; | ||||
|     tess_contour_t	*contours, *last_contour; | ||||
|     tess_contour_t	*current_contour; | ||||
|     GLdouble		mins[2], maxs[2]; | ||||
|     GLuint		vertex_count; | ||||
|     GLint		num_vertices; | ||||
|     tess_vertex_t	**sorted_vertices; | ||||
| #if 0 | ||||
|     tess_grid_t		*grid;			/* Not currently used... */ | ||||
| #endif | ||||
|     heap_t		*ears; | ||||
|     hashtable_t		*cvc_lists; | ||||
|     void		*data; | ||||
|     GLboolean		edge_flag; | ||||
|     GLuint		label; | ||||
|     tess_plane_t	plane; | ||||
|     GLenum		error; | ||||
| }; | ||||
|  | ||||
|  | ||||
| /***************************************************************************** | ||||
|  * Tessellation error handler: | ||||
|  * Common tessellation functions: | ||||
|  *****************************************************************************/ | ||||
| extern void tess_error_callback( GLUtesselator *, GLenum ); | ||||
|  | ||||
| extern GLdouble twice_contour_area( tess_contour_t *contour ); | ||||
| extern void reverse_contour( tess_contour_t *contour ); | ||||
| extern void delete_contour( tess_contour_t **contour ); | ||||
|  | ||||
| extern void contour_dump( tess_contour_t *contour ); | ||||
|  | ||||
|  | ||||
| /***************************************************************************** | ||||
|  * Debugging output: | ||||
| @@ -115,8 +121,8 @@ extern	int	tess_dbg_level; | ||||
| #define MSG		tess_msg | ||||
| #endif /* DEBUG */ | ||||
|  | ||||
| extern INLINE void tess_msg( int level, char *format, ... ); | ||||
| extern INLINE void tess_info( char *file, char *line ); | ||||
| extern INLINE void tess_msg( GLint level, char *format, ... ); | ||||
| extern INLINE void tess_info( char *file, GLint line ); | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| ## BeOS Generic Makefile v2.0 ## | ||||
|  | ||||
| ## Modified by Brian Paul to work with Mesa 3.1 | ||||
|  | ||||
|  | ||||
| ## Fill in this file to specify the project being created, and the referenced | ||||
| @@ -48,9 +47,8 @@ RSRCS= | ||||
| #		naming scheme you need to specify the path to the library | ||||
| #		and it's name | ||||
| #		library: my_lib.a entry: my_lib.a or path/my_lib.a | ||||
| #LIBS= MesaGL MesaGLU be | ||||
| LIBS= GL GLU be | ||||
| 		 | ||||
|  | ||||
| #	specify additional paths to directories following the standard | ||||
| #	libXXX.so or libXXX.a naming scheme.  You can specify full paths | ||||
| #	or paths relative to the makefile.  The paths included may not | ||||
|   | ||||
| @@ -303,8 +303,7 @@ interruptibleXNextEvent(Display * dpy, XEvent * event) | ||||
|     } | ||||
|     FD_ZERO(&fds); | ||||
|     FD_SET(__glutConnectionFD, &fds); | ||||
|     rc = select(__glutConnectionFD + 1, &fds, | ||||
|       NULL, NULL, NULL); | ||||
|     rc = select(__glutConnectionFD + 1, &fds, NULL, NULL, NULL); | ||||
|     if (rc < 0) { | ||||
|       if (errno == EINTR) { | ||||
|         return 0; | ||||
| @@ -897,8 +896,7 @@ waitForSomething(void) | ||||
|     waittime = zerotime; | ||||
|   } | ||||
| #if !defined(_WIN32) | ||||
|   rc = select(__glutConnectionFD + 1, &fds, | ||||
|     NULL, NULL, &waittime); | ||||
|   rc = select(__glutConnectionFD + 1, &fds, NULL, NULL, &waittime); | ||||
|   if (rc < 0 && errno != EINTR) | ||||
|     __glutFatalError("select error."); | ||||
| #else | ||||
|   | ||||
| @@ -20,7 +20,9 @@ | ||||
| #include <X11/Xutil.h> | ||||
| #else | ||||
| #include <windows.h> | ||||
| #ifndef __CYGWIN32__ | ||||
| #include <mmsystem.h>  /* Win32 Multimedia API header. */ | ||||
| #endif | ||||
| #endif /* !_WIN32 */ | ||||
|  | ||||
| #include "glutint.h" | ||||
|   | ||||
| @@ -7,8 +7,10 @@ | ||||
|  | ||||
| #ifdef _WIN32 | ||||
| #include <windows.h> | ||||
| #ifndef __CYGWIN32__ | ||||
| #include <mmsystem.h>  /* Win32 Multimedia API header. */ | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| #include "glutint.h" | ||||
|  | ||||
|   | ||||
| @@ -24,7 +24,7 @@ | ||||
| #define GLUT_BUILDING_LIB  /* Building the GLUT library itself. */ | ||||
| #include <GL/glut.h> | ||||
|  | ||||
| #if defined( MESA ) && defined( _WIN32 ) | ||||
| #if defined(MESA) && defined(_WIN32) && !defined(__CYGWIN32__) | ||||
| #include <gl/mesa_wgl.h> | ||||
| #endif | ||||
|  | ||||
| @@ -71,7 +71,7 @@ extern int sys$gettim(struct timeval *); | ||||
| #endif | ||||
| #else | ||||
| #include <sys/types.h> | ||||
| #if !defined(_WIN32) | ||||
| #if !defined(_WIN32) || defined(__CYGWIN32__) | ||||
| #include <sys/time.h> | ||||
| #else | ||||
| #include <winsock.h> | ||||
|   | ||||
| @@ -40,9 +40,57 @@ | ||||
| #define XA_STRING 0 | ||||
|  | ||||
| /* Private routines from win32_util.c */ | ||||
| #ifndef __CYGWIN32__ | ||||
| extern int gettimeofday(struct timeval* tp, void* tzp); | ||||
| #endif | ||||
| extern void *__glutFont(void *font); | ||||
| extern int __glutGetTransparentPixel(Display *dpy, XVisualInfo *vinfo); | ||||
| extern void __glutAdjustCoords(Window parent, int *x, int *y, int *width, int *height); | ||||
|  | ||||
|  | ||||
| /* Cygwin B20.1 misses the following definitions */ | ||||
| #ifdef __CYGWIN32__ | ||||
|  | ||||
| /* from winuser.h */ | ||||
| #define CDS_FULLSCREEN 4 | ||||
|  | ||||
| /* from mmsystem.h */ | ||||
| #define WINMMAPI __declspec(dllimport) | ||||
| typedef UINT MMRESULT; | ||||
|  | ||||
| #define MM_JOY1MOVE 0x3A0 | ||||
| #define MM_JOY1ZMOVE 0x3A2 | ||||
| #define MM_JOY1BUTTONDOWN 0x3B5 | ||||
| #define MM_JOY1BUTTONUP 0x3B7 | ||||
|  | ||||
| #define JOYERR_NOERROR 0 | ||||
| #define JOYERR_PARMS 165 | ||||
|  | ||||
| #define JOY_RETURNALL 0x000000ffl | ||||
|  | ||||
| #define JOYSTICKID1 0 | ||||
|  | ||||
| typedef struct joyinfoex_tag { | ||||
|     DWORD dwSize;                /* size of structure */ | ||||
|     DWORD dwFlags;               /* flags to indicate what to return */ | ||||
|     DWORD dwXpos;                /* x position */ | ||||
|     DWORD dwYpos;                /* y position */ | ||||
|     DWORD dwZpos;                /* z position */ | ||||
|     DWORD dwRpos;                /* rudder/4th axis position */ | ||||
|     DWORD dwUpos;                /* 5th axis position */ | ||||
|     DWORD dwVpos;                /* 6th axis position */ | ||||
|     DWORD dwButtons;             /* button states */ | ||||
|     DWORD dwButtonNumber;        /* current button number pressed */ | ||||
|     DWORD dwPOV;                 /* point of view state */ | ||||
|     DWORD dwReserved1;           /* reserved for communication between winmm & driver */ | ||||
|     DWORD dwReserved2;           /* reserved for future expansion */ | ||||
| } JOYINFOEX, *PJOYINFOEX, /* NEAR */ *NPJOYINFOEX, /* FAR */ *LPJOYINFOEX; | ||||
|  | ||||
| WINMMAPI MMRESULT WINAPI joyGetPosEx( UINT uJoyID, LPJOYINFOEX pji); | ||||
| WINMMAPI MMRESULT WINAPI joyReleaseCapture( UINT uJoyID); | ||||
| WINMMAPI MMRESULT WINAPI joySetCapture( HWND hwnd, UINT uJoyID, UINT uPeriod, BOOL fChanged); | ||||
| WINMMAPI MMRESULT WINAPI joySetThreshold( UINT uJoyID, UINT uThreshold); | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #endif /* __glutwin32_h__ */ | ||||
|   | ||||
| @@ -129,26 +129,29 @@ __glutXGetLayerVisualInfo(Display * dpy, long lvinfo_mask, | ||||
|           break; | ||||
|         } | ||||
|     } | ||||
|     if (lvinfo_mask & VisualLayerMask) | ||||
|     if (lvinfo_mask & VisualLayerMask) { | ||||
|       if (overlayInfo == NULL) { | ||||
|         if (lvinfo_template->layer != 0) | ||||
|           continue; | ||||
|       } else if (lvinfo_template->layer != overlayInfo->layer) | ||||
|         continue; | ||||
|     if (lvinfo_mask & VisualTransparentType) | ||||
|     } | ||||
|     if (lvinfo_mask & VisualTransparentType) { | ||||
|       if (overlayInfo == NULL) { | ||||
|         if (lvinfo_template->type != None) | ||||
|           continue; | ||||
|       } else if (lvinfo_template->type != | ||||
|         overlayInfo->transparent_type) | ||||
|         continue; | ||||
|     if (lvinfo_mask & VisualTransparentValue) | ||||
|     } | ||||
|     if (lvinfo_mask & VisualTransparentValue) { | ||||
|       if (overlayInfo == NULL) | ||||
|         /* Non-overlay visuals have no sense of | ||||
|            TransparentValue. */ | ||||
|         continue; | ||||
|       else if (lvinfo_template->value != overlayInfo->value) | ||||
|         continue; | ||||
|     } | ||||
|     layerInfo[count].vinfo = *pVinfo; | ||||
|     if (overlayInfo == NULL) { | ||||
|       layerInfo[count].layer = 0; | ||||
|   | ||||
| @@ -11,11 +11,7 @@ | ||||
| #include "glutint.h" | ||||
| #include "glutstroke.h" | ||||
| #include "glutbitmap.h" | ||||
| #if defined(__CYGWIN32__) | ||||
| typedef MINMAXINFO* LPMINMAXINFO; | ||||
| #else | ||||
| #include <sys/timeb.h> | ||||
| #endif | ||||
|  | ||||
| /* The following added by Paul Garceau <pgarceau@teleport.com> */ | ||||
| #if defined(__MINGW32__) | ||||
| @@ -27,6 +23,7 @@ struct timeval; | ||||
| extern StrokeFontRec glutStrokeRoman, glutStrokeMonoRoman; | ||||
| extern BitmapFontRec glutBitmap8By13, glutBitmap9By15, glutBitmapTimesRoman10, glutBitmapTimesRoman24, glutBitmapHelvetica10, glutBitmapHelvetica12, glutBitmapHelvetica18; | ||||
|  | ||||
| #ifndef __CYGWIN32__ | ||||
| int | ||||
| gettimeofday(struct timeval* tp, void* tzp) | ||||
| { | ||||
| @@ -39,6 +36,7 @@ gettimeofday(struct timeval* tp, void* tzp) | ||||
|   /* 0 indicates that the call succeeded. */ | ||||
|   return 0; | ||||
| } | ||||
| #endif | ||||
|  | ||||
| /* To get around the fact that Microsoft DLLs only allow functions | ||||
|    to be exported and now data addresses (as Unix DSOs support), the | ||||
|   | ||||
| @@ -8,13 +8,9 @@ | ||||
|  | ||||
|  | ||||
| #include "glutint.h" | ||||
| #if defined(__CYGWIN32__) | ||||
| typedef MINMAXINFO* LPMINMAXINFO; | ||||
| #else | ||||
| #include <sys/timeb.h> | ||||
| #endif | ||||
|  | ||||
| #ifdef _WIN32 | ||||
| #if defined(_WIN32) && !defined(__CYGWIN32__) | ||||
| #include <mmsystem.h>  /* Win32 Multimedia API header. */ | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -1,59 +1 @@ | ||||
| # Makefile for OpenGL widgets | ||||
|  | ||||
| # NOTE: widget code is from SGI.  See any of the .c or .h files for the | ||||
| # complete copyright.  Mesa's GNU copyright DOES NOT apply to this widget | ||||
| # code. | ||||
|  | ||||
|  | ||||
| ##### MACROS ##### | ||||
|  | ||||
| VPATH = RCS | ||||
|  | ||||
| INCDIRS = -I../include -I/usr/include/Motif1.2 -I/usr/X11R6/include | ||||
| LIBDIR = ../lib | ||||
|  | ||||
| SOURCES = GLwDrawA.c GLwMDrawA.c | ||||
|  | ||||
|  | ||||
| OBJECTS = $(SOURCES:.c=.o) | ||||
|  | ||||
|  | ||||
|  | ||||
| ##### RULES ##### | ||||
|  | ||||
| .c.o: | ||||
| 	$(CC) -c $(INCDIRS) $(CFLAGS) $< | ||||
|  | ||||
|  | ||||
|  | ||||
| ##### TARGETS ##### | ||||
|  | ||||
| default: | ||||
| 	@echo "Specify a target configuration" | ||||
|  | ||||
| clean: | ||||
| 	-rm *.o *~ | ||||
|  | ||||
| # The name of the library file comes from Make-config | ||||
| #XXX GLW_LIB = libGLw.a | ||||
|  | ||||
| targets: $(LIBDIR)/$(GLW_LIB) | ||||
|  | ||||
|  | ||||
| # Make the library | ||||
| $(LIBDIR)/$(GLW_LIB): $(OBJECTS) | ||||
| 	$(MAKELIB) $(GLW_LIB) $(MAJOR) $(MINOR) $(OBJECTS) | ||||
| 	mv $(GLW_LIB)* $(LIBDIR) | ||||
|  | ||||
| include ../Make-config | ||||
|  | ||||
| include depend | ||||
|  | ||||
|  | ||||
|  | ||||
| # | ||||
| # Run 'make depend' to update the dependencies if you change what's included | ||||
| # by any source file. | ||||
| #  | ||||
| dep: $(SOURCES) | ||||
| 	makedepend -fdepend -Y -I../include $(SOURCES) | ||||
| include Makefile.X11 | ||||
|   | ||||
							
								
								
									
										64
									
								
								src/glw/Makefile.X11
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								src/glw/Makefile.X11
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| # Makefile for OpenGL widgets | ||||
|  | ||||
| # NOTE: widget code is from SGI.  See any of the .c or .h files for the | ||||
| # complete copyright.  Mesa's GNU copyright DOES NOT apply to this widget | ||||
| # code. | ||||
|  | ||||
|  | ||||
| ##### MACROS ##### | ||||
|  | ||||
| MAJOR = 1 | ||||
| MINOR = 0 | ||||
| TINY = 0 | ||||
|  | ||||
| VPATH = RCS | ||||
|  | ||||
| INCDIRS = -I../include -I/usr/include/Motif1.2 -I/usr/X11R6/include | ||||
| LIBDIR = ../lib | ||||
|  | ||||
| # Compile GLwMDrawA.c only if you have Motif headers! | ||||
| #SOURCES = GLwDrawA.c GLwMDrawA.c | ||||
| SOURCES = GLwDrawA.c | ||||
|  | ||||
|  | ||||
| OBJECTS = $(SOURCES:.c=.o) | ||||
|  | ||||
|  | ||||
|  | ||||
| ##### RULES ##### | ||||
|  | ||||
| .c.o: | ||||
| 	$(CC) -c $(INCDIRS) $(CFLAGS) $< | ||||
|  | ||||
|  | ||||
|  | ||||
| ##### TARGETS ##### | ||||
|  | ||||
| default: | ||||
| 	@echo "Specify a target configuration" | ||||
|  | ||||
| clean: | ||||
| 	-rm *.o *~ | ||||
|  | ||||
| targets: $(LIBDIR)/$(GLW_LIB) | ||||
|  | ||||
|  | ||||
| # Make the library | ||||
| $(LIBDIR)/$(GLW_LIB): $(OBJECTS) | ||||
| 	$(MAKELIB) $(GLW_LIB) $(MAJOR) $(MINOR) $(TINY) $(OBJECTS) | ||||
| 	mv $(GLW_LIB)* $(LIBDIR) | ||||
| 	-mv *.a $(LIBDIR) | ||||
|  | ||||
|  | ||||
| include ../Make-config | ||||
|  | ||||
| include depend | ||||
|  | ||||
|  | ||||
|  | ||||
| # | ||||
| # Run 'make depend' to update the dependencies if you change what's included | ||||
| # by any source file. | ||||
| #  | ||||
| dep: $(SOURCES) | ||||
| 	makedepend -fdepend -Y -I../include $(SOURCES) | ||||
| @@ -1,7 +1,7 @@ | ||||
| # $Id: Makefile.X11,v 1.7 1999/11/11 01:22:28 brianp Exp $ | ||||
| # $Id: Makefile.X11,v 1.6.2.2 2000/01/23 17:47:00 brianp Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.3 | ||||
| # Version:  3.1 | ||||
| # Copyright (C) 1995-1999  Brian Paul | ||||
|  | ||||
| # Makefile for core library | ||||
| @@ -18,13 +18,13 @@ VPATH = RCS | ||||
| INCDIR = ../include | ||||
| LIBDIR = ../lib | ||||
|  | ||||
|  | ||||
| CORE_SOURCES = \ | ||||
| 	glapi.c \ | ||||
| 	glapinoop.c \ | ||||
| 	accum.c \ | ||||
| 	alpha.c \ | ||||
| 	alphabuf.c \ | ||||
| 	api1.c \ | ||||
| 	api2.c \ | ||||
| 	apiext.c \ | ||||
| 	attrib.c \ | ||||
| 	bbox.c \ | ||||
| 	bitmap.c \ | ||||
| @@ -37,7 +37,6 @@ CORE_SOURCES = \ | ||||
| 	cva.c \ | ||||
| 	debug_xform.c \ | ||||
| 	depth.c \ | ||||
| 	dispatch.c \ | ||||
| 	dlist.c \ | ||||
| 	drawpix.c \ | ||||
| 	enable.c \ | ||||
| @@ -50,19 +49,18 @@ CORE_SOURCES = \ | ||||
| 	glmisc.c \ | ||||
| 	hash.c \ | ||||
| 	image.c \ | ||||
| 	imaging.c \ | ||||
| 	light.c \ | ||||
| 	lines.c \ | ||||
| 	logic.c \ | ||||
| 	masking.c \ | ||||
| 	matrix.c \ | ||||
| 	mem.c \ | ||||
| 	mmath.c \ | ||||
| 	mthreads.c \ | ||||
| 	pb.c \ | ||||
| 	pixel.c \ | ||||
| 	pipeline.c \ | ||||
| 	points.c \ | ||||
| 	pointers.c \ | ||||
| 	polygon.c \ | ||||
| 	quads.c \ | ||||
| 	rastpos.c \ | ||||
| @@ -106,6 +104,11 @@ DRIVER_SOURCES = \ | ||||
| 	X/xmesa4.c \ | ||||
| 	OSmesa/osmesa.c \ | ||||
| 	SVGA/svgamesa.c \ | ||||
| 	SVGA/svgamesa8.c \ | ||||
| 	SVGA/svgamesa15.c \ | ||||
| 	SVGA/svgamesa16.c \ | ||||
| 	SVGA/svgamesa24.c \ | ||||
| 	SVGA/svgamesa32.c \ | ||||
| 	FX/fxapi.c \ | ||||
| 	FX/fxclip.c \ | ||||
| 	FX/fxcva.c \ | ||||
| @@ -222,7 +225,8 @@ X86/3dnow.o: X86/3dnow.c | ||||
| #	@echo "Specify a target configuration" | ||||
|  | ||||
| clean: | ||||
| 	-rm *.o *~ */*.o */*~ | ||||
| 	-rm *.o *~ */*.o */*~ *.lo *.la | ||||
| 	-rm -rf .libs | ||||
|  | ||||
| targets: $(LIBDIR)/$(GL_LIB) | ||||
|  | ||||
|   | ||||
							
								
								
									
										8
									
								
								src/mesa/drivers/ggi/default/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/mesa/drivers/ggi/default/.cvsignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| genkgi.conf | ||||
| .deps | ||||
| .libs | ||||
| Makefile | ||||
| Makefile.in | ||||
| *.lo | ||||
| *.o | ||||
| *.la | ||||
							
								
								
									
										8
									
								
								src/mesa/drivers/ggi/display/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/mesa/drivers/ggi/display/.cvsignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| fbdev.conf | ||||
| .deps | ||||
| .libs | ||||
| Makefile | ||||
| Makefile.in | ||||
| *.lo | ||||
| *.o | ||||
| *.la | ||||
							
								
								
									
										7
									
								
								src/mesa/drivers/ggi/include/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/mesa/drivers/ggi/include/.cvsignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| .deps | ||||
| .libs | ||||
| Makefile | ||||
| Makefile.in | ||||
| *.lo | ||||
| *.o | ||||
| *.la | ||||
							
								
								
									
										7
									
								
								src/mesa/drivers/ggi/include/ggi/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/mesa/drivers/ggi/include/ggi/.cvsignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| .deps | ||||
| .libs | ||||
| Makefile | ||||
| Makefile.in | ||||
| *.lo | ||||
| *.o | ||||
| *.la | ||||
							
								
								
									
										7
									
								
								src/mesa/drivers/ggi/include/ggi/mesa/.cvsignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								src/mesa/drivers/ggi/include/ggi/mesa/.cvsignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| .deps | ||||
| .libs | ||||
| Makefile | ||||
| Makefile.in | ||||
| *.lo | ||||
| *.o | ||||
| *.la | ||||
| @@ -1,24 +1,52 @@ | ||||
| /* -*- mode: C; tab-width:8;  -*- | ||||
|  | ||||
|              fxapi.c - 3Dfx VooDoo/Mesa interface | ||||
| */ | ||||
| /* -*- mode: C; tab-width:8;  -*- */ | ||||
|  | ||||
| /* | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  ******************************************************************** | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  * | ||||
|  * | ||||
|  * Original Mesa / 3Dfx device driver (C) 1999 David Bucciarelli, by the | ||||
|  * terms stated above. | ||||
|  * | ||||
|  * Thank you for your contribution, David! | ||||
|  * | ||||
|  * Please make note of the above copyright/license statement.  If you | ||||
|  * contributed code or bug fixes to this code under the previous (GNU | ||||
|  * Library) license and object to the new license, your code will be | ||||
|  * removed at your request.  Please see the Mesa docs/COPYRIGHT file | ||||
|  * for more information. | ||||
|  * | ||||
|  * Additional Mesa/3Dfx driver developers: | ||||
|  *   Daryll Strauss <daryll@precisioninsight.com> | ||||
|  *   Keith Whitwell <keith@precisioninsight.com> | ||||
|  * | ||||
|  * See fxapi.h for more revision/author details. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* fxapi.c - 3Dfx VooDoo/Mesa interface */ | ||||
|  | ||||
|  | ||||
| /******************************************************************** | ||||
|  * | ||||
|  * Function names: | ||||
|  *  fxMesa....     (The driver API) | ||||
| @@ -820,9 +848,10 @@ void fxsignals() | ||||
| /* | ||||
|  * Create a new FX/Mesa context and return a handle to it. | ||||
|  */ | ||||
| fxMesaContext GLAPIENTRY fxMesaCreateContext(GLuint win,GrScreenResolution_t res, | ||||
| 					   GrScreenRefresh_t ref, | ||||
| 					   const GLint attribList[]) | ||||
| fxMesaContext GLAPIENTRY fxMesaCreateContext(GLuint win, | ||||
|                                              GrScreenResolution_t res, | ||||
|                                              GrScreenRefresh_t ref, | ||||
|                                              const GLint attribList[]) | ||||
| { | ||||
|    fxMesaContext fxMesa = NULL; | ||||
|    int i,type; | ||||
| @@ -835,8 +864,10 @@ fxMesaContext GLAPIENTRY fxMesaCreateContext(GLuint win,GrScreenResolution_t res | ||||
|    GLint accumSize=0; | ||||
|    GLcontext *shareCtx = NULL; | ||||
|    GLcontext *ctx = 0; | ||||
|    FX_GrContext_t glideContext = 0; | ||||
|    /*FX_GrContext_t glideContext = 0;*/ | ||||
|    char *errorstr; | ||||
|    GLboolean useBGR; | ||||
|    char *system = NULL; | ||||
|  | ||||
|    if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|       fprintf(stderr,"fxmesa: fxMesaCreateContext() Start\n"); | ||||
| @@ -928,24 +959,115 @@ fxMesaContext GLAPIENTRY fxMesaCreateContext(GLuint win,GrScreenResolution_t res | ||||
|    fxMesa->verbose=verbose; | ||||
|    fxMesa->board=glbCurrentBoard; | ||||
|  | ||||
|  | ||||
|    fxMesa->glideContext = FX_grSstWinOpen((FxU32)win,res,ref, | ||||
| #if  FXMESA_USE_ARGB | ||||
| 					  GR_COLORFORMAT_ARGB, | ||||
|    fxMesa->glideContext = FX_grSstWinOpen((FxU32)win,res,ref, | ||||
| 					GR_COLORFORMAT_ARGB, | ||||
| 					GR_ORIGIN_LOWER_LEFT, | ||||
| 					2,aux); | ||||
| #else | ||||
| 					  GR_COLORFORMAT_ABGR, | ||||
|    fxMesa->glideContext = FX_grSstWinOpen((FxU32)win,res,ref, | ||||
| 					GR_COLORFORMAT_ABGR, | ||||
| 					GR_ORIGIN_LOWER_LEFT, | ||||
| 					2,aux); | ||||
| #endif | ||||
| 					  GR_ORIGIN_LOWER_LEFT, | ||||
| 					  2,aux); | ||||
|    if (!fxMesa->glideContext){ | ||||
|       errorstr = "grSstWinOpen";  | ||||
|       goto errorhandler; | ||||
|    } | ||||
|     | ||||
|    /* | ||||
|     * Pixel tables are use during pixel read-back | ||||
|     * Either initialize them for RGB or BGR order. | ||||
|     */ | ||||
| #if FXMESA_USE_ARGB  | ||||
|    useBGR = GL_FALSE; /* Force RGB pixel order */        | ||||
|    system = "FXMESA_USE_ARGB"; | ||||
| #else | ||||
|    if (glbHWConfig.SSTs[glbCurrentBoard].type == GR_SSTTYPE_VOODOO) { | ||||
|       /* jk991130 - Voodoo 3s don't use BGR. Query the # of TMUs | ||||
|        * as Voodoo3s have 2 TMUs on board, Banshee has only 1 | ||||
|        * bk000413 - another suggestion from Joseph Kain is using | ||||
|        *  VendorID 0x121a for all 3dfx boards | ||||
|        *   DeviceID VG  1/V2  2/VB  3/V3  5 | ||||
|        * For now we cehck for known BGR devices, and presume | ||||
|        *  everything else to be a V3/RGB. | ||||
|        */ | ||||
|       GrVoodooConfig_t *voodoo; | ||||
|       voodoo = &glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig; | ||||
|  | ||||
|       if (voodoo->nTexelfx == 1) { | ||||
|          /* Voodoo1 or Banshee */ | ||||
|          useBGR = GL_TRUE; | ||||
|          system = "Voodoo1"; | ||||
|       } | ||||
|       else if (voodoo->nTexelfx == 2 && | ||||
|                voodoo->fbiRev == 260 && | ||||
|                voodoo->tmuConfig[0].tmuRev == 4 && | ||||
|                voodoo->tmuConfig[0].tmuRam == 2) { | ||||
|          /* Voodoo 2 */ | ||||
|          useBGR = GL_TRUE; | ||||
|          system = "Voodoo2"; | ||||
|       } | ||||
|       else if (voodoo->nTexelfx == 2 && | ||||
|                voodoo->fbiRev == 2 && | ||||
|                voodoo->tmuConfig[0].tmuRev == 1 && | ||||
|                voodoo->tmuConfig[0].tmuRam == 4) { | ||||
|          /* Quantum3D Obsidian 50/100 */ | ||||
|          useBGR = GL_TRUE; | ||||
|          system = "Quantum3D Obsidian"; | ||||
|       } | ||||
|       else  | ||||
|          /* Brian | ||||
|           *       (voodoo->nTexelfx == 2 && | ||||
|           *        voodoo->fbiRev == 0 && | ||||
|           *        voodoo->tmuConfig[0].tmuRev == 148441048 && | ||||
|           *        voodoo->tmuConfig[0].tmuRam == 3) | ||||
|           * Bernd  | ||||
|           *       (voodoo->nTexelfx == 2 && | ||||
|           *        voodoo->fbiRev ==  69634 && | ||||
|           *        voodoo->tmuConfig[0].tmuRev == 69634 && | ||||
|           *        voodoo->tmuConfig[0].tmuRam == 2 ) | ||||
|           */ | ||||
|       { | ||||
|          /* Presumed Voodoo3 */ | ||||
|          useBGR =  GL_FALSE; | ||||
|          system = "Voodoo3"; | ||||
|       } | ||||
|       if (getenv("MESA_FX_INFO")) {  | ||||
|         printf("Voodoo: Texelfx: %d / FBI Rev.: %d / TMU Rev.: %d / TMU RAM: %d\n", | ||||
|                voodoo->nTexelfx, | ||||
|                voodoo->fbiRev, | ||||
|                voodoo->tmuConfig[0].tmuRev, | ||||
|                voodoo->tmuConfig[0].tmuRam ); | ||||
|       } | ||||
|    } | ||||
|    else { | ||||
|       useBGR = GL_FALSE; /* use RGB pixel order otherwise */ | ||||
|       system = "non-voodoo"; | ||||
|    } | ||||
| #endif /*FXMESA_USE_ARGB*/ | ||||
|  | ||||
|    if (getenv("MESA_FX_INFO"))  | ||||
|       printf("Voodoo pixel order: %s (%s)\n", useBGR ? "BGR" : "RGB", system); | ||||
|  | ||||
|    fxInitPixelTables(fxMesa, useBGR); | ||||
|  | ||||
|    fxMesa->width=FX_grSstScreenWidth(); | ||||
|    fxMesa->height=FX_grSstScreenHeight(); | ||||
|  | ||||
|    fxMesa->clipMinX = 0; | ||||
|    fxMesa->clipMaxX = fxMesa->width; | ||||
|    fxMesa->clipMinY = 0; | ||||
|    fxMesa->clipMaxY = fxMesa->height; | ||||
|  | ||||
|    fxMesa->screen_width = fxMesa->width; | ||||
|    fxMesa->screen_height = fxMesa->height; | ||||
|    fxMesa->x_offset = 0; | ||||
|    fxMesa->y_offset = 0; | ||||
|    fxMesa->y_delta = 0; | ||||
|     | ||||
|    fxMesa->needClip = 0; | ||||
|  | ||||
|    if(verbose) | ||||
|       fprintf(stderr,"Glide screen size: %dx%d\n", | ||||
|               (int)FX_grSstScreenWidth(),(int)FX_grSstScreenHeight()); | ||||
| @@ -989,7 +1111,8 @@ fxMesaContext GLAPIENTRY fxMesaCreateContext(GLuint win,GrScreenResolution_t res | ||||
|  | ||||
|    /* install signal handlers */ | ||||
| #if defined(__linux__) | ||||
|    if (fxMesa->glCtx->CatchSignals) { | ||||
|    /* Only install if environment var. is not set. */ | ||||
|    if (fxMesa->glCtx->CatchSignals && !getenv("MESA_FX_NO_SIGNALS")) { | ||||
|       signal(SIGINT,cleangraphics_handler); | ||||
|       signal(SIGHUP,cleangraphics_handler); | ||||
|       signal(SIGPIPE,cleangraphics_handler); | ||||
| @@ -1204,7 +1327,7 @@ int GLAPIENTRY fxQueryHardware(void) | ||||
|         char buf[80]; | ||||
|                          | ||||
|         FX_grGlideGetVersion(buf); | ||||
|         fprintf(stderr,"Using Glide V%s\n",0); | ||||
|         fprintf(stderr,"Using Glide V%s\n",""); | ||||
|         fprintf(stderr,"Number of boards: %d\n",glbHWConfig.num_sst); | ||||
|  | ||||
|         if(glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_VOODOO) { | ||||
| @@ -1214,6 +1337,8 @@ int GLAPIENTRY fxQueryHardware(void) | ||||
|                   glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.fbRam); | ||||
|           fprintf(stderr,"Number of TMUs: %d\n", | ||||
|                   glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.nTexelfx); | ||||
|           fprintf(stderr,"fbiRev: %d\n", | ||||
|                   glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.fbiRev); | ||||
|           fprintf(stderr,"SLI detected: %d\n", | ||||
|                   glbHWConfig.SSTs[glbCurrentBoard].sstBoard.VoodooConfig.sliDetect); | ||||
|         } else if(glbHWConfig.SSTs[glbCurrentBoard].type==GR_SSTTYPE_SST96) { | ||||
| @@ -1232,7 +1357,10 @@ int GLAPIENTRY fxQueryHardware(void) | ||||
| #if defined(__WIN32__) | ||||
|     onexit((_onexit_t)cleangraphics); | ||||
| #elif defined(__linux__) | ||||
|     atexit(cleangraphics); | ||||
|     /* Only register handler if environment variable is not defined. */ | ||||
|     if (!getenv("MESA_FX_NO_SIGNALS")) { | ||||
| 	atexit(cleangraphics); | ||||
|     } | ||||
| #endif | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -1,28 +1,51 @@ | ||||
| /* -*- mode: C; tab-width:8;  -*- | ||||
|  | ||||
|              fxdd.c - 3Dfx VooDoo Mesa device driver functions | ||||
| */ | ||||
| /* -*- mode: C; tab-width:8; c-basic-offset:2 -*- */ | ||||
|  | ||||
| /* | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * See the file fxapi.c for more informations about authors | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  * | ||||
|  * | ||||
|  * Original Mesa / 3Dfx device driver (C) 1999 David Bucciarelli, by the | ||||
|  * terms stated above. | ||||
|  * | ||||
|  * Thank you for your contribution, David! | ||||
|  * | ||||
|  * Please make note of the above copyright/license statement.  If you | ||||
|  * contributed code or bug fixes to this code under the previous (GNU | ||||
|  * Library) license and object to the new license, your code will be | ||||
|  * removed at your request.  Please see the Mesa docs/COPYRIGHT file | ||||
|  * for more information. | ||||
|  * | ||||
|  * Additional Mesa/3Dfx driver developers: | ||||
|  *   Daryll Strauss <daryll@precisioninsight.com> | ||||
|  *   Keith Whitwell <keith@precisioninsight.com> | ||||
|  * | ||||
|  * See fxapi.h for more revision/author details. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* fxdd.c - 3Dfx VooDoo Mesa device driver functions */ | ||||
|  | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| #endif | ||||
| @@ -34,6 +57,46 @@ | ||||
| #include "enums.h" | ||||
| #include "extensions.h" | ||||
|  | ||||
|  | ||||
| /* These lookup table are used to extract RGB values in [0,255] from | ||||
|  * 16-bit pixel values. | ||||
|  */ | ||||
| GLubyte FX_PixelToR[0x10000]; | ||||
| GLubyte FX_PixelToG[0x10000]; | ||||
| GLubyte FX_PixelToB[0x10000]; | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Initialize the FX_PixelTo{RGB} arrays. | ||||
|  * Input: bgrOrder - if TRUE, pixels are in BGR order, else RGB order. | ||||
|  */ | ||||
| void fxInitPixelTables(fxMesaContext fxMesa, GLboolean bgrOrder) | ||||
| { | ||||
|   GLuint pixel; | ||||
|  | ||||
|   fxMesa->bgrOrder=bgrOrder; | ||||
|   for (pixel = 0; pixel <= 0xffff; pixel++) { | ||||
|     GLuint r, g, b; | ||||
|     if (bgrOrder) { | ||||
|       r = (pixel & 0x001F) << 3; | ||||
|       g = (pixel & 0x07E0) >> 3; | ||||
|       b = (pixel & 0xF800) >> 8; | ||||
|     } | ||||
|     else { | ||||
|       r = (pixel & 0xF800) >> 8; | ||||
|       g = (pixel & 0x07E0) >> 3; | ||||
|       b = (pixel & 0x001F) << 3; | ||||
|     } | ||||
|     r = r * 255 / 0xF8;  /* fill in low-order bits */ | ||||
|     g = g * 255 / 0xFC; | ||||
|     b = b * 255 / 0xF8; | ||||
|     FX_PixelToR[pixel] = r; | ||||
|     FX_PixelToG[pixel] = g; | ||||
|     FX_PixelToB[pixel] = b; | ||||
|   } | ||||
| } | ||||
|  | ||||
|  | ||||
| /**********************************************************************/ | ||||
| /*****                 Miscellaneous functions                    *****/ | ||||
| /**********************************************************************/ | ||||
| @@ -45,10 +108,11 @@ void fxDDDither(GLcontext *ctx, GLboolean enable) | ||||
|     fprintf(stderr,"fxmesa: fxDDDither()\n"); | ||||
|   } | ||||
|  | ||||
|   if(enable) | ||||
|     grDitherMode(GR_DITHER_4x4); | ||||
|   else | ||||
|     grDitherMode(GR_DITHER_DISABLE); | ||||
|   if (enable) { | ||||
|     FX_grDitherMode(GR_DITHER_4x4); | ||||
|   } else { | ||||
|     FX_grDitherMode(GR_DITHER_DISABLE); | ||||
|   } | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -121,14 +185,14 @@ static GLbitfield fxDDClear(GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|     /* clear color and depth buffer */ | ||||
|  | ||||
|     if (ctx->Color.DrawDestMask & BACK_LEFT_BIT) { | ||||
|       grRenderBuffer(GR_BUFFER_BACKBUFFER); | ||||
|       grBufferClear(fxMesa->clearC, fxMesa->clearA, | ||||
|                     (FxU16)(ctx->Depth.Clear*0xffff)); | ||||
|       FX_grRenderBuffer(GR_BUFFER_BACKBUFFER); | ||||
|       FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, | ||||
| 		       (FxU16)(ctx->Depth.Clear*0xffff)); | ||||
|     } | ||||
|     if (ctx->Color.DrawDestMask & FRONT_LEFT_BIT) { | ||||
|        grRenderBuffer(GR_BUFFER_FRONTBUFFER); | ||||
|        grBufferClear(fxMesa->clearC, fxMesa->clearA, | ||||
|                      (FxU16)(ctx->Depth.Clear*0xffff)); | ||||
|       FX_grRenderBuffer(GR_BUFFER_FRONTBUFFER); | ||||
|       FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, | ||||
| 		       (FxU16)(ctx->Depth.Clear*0xffff)); | ||||
|     } | ||||
|  | ||||
|     newmask=mask & (~(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)); | ||||
| @@ -137,19 +201,20 @@ static GLbitfield fxDDClear(GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|     /* clear color buffer */ | ||||
|  | ||||
|     if(ctx->Color.ColorMask) { | ||||
|       grDepthMask(FXFALSE); | ||||
|       FX_grDepthMask(FXFALSE); | ||||
|  | ||||
|       if (ctx->Color.DrawDestMask & BACK_LEFT_BIT) { | ||||
|         grRenderBuffer(GR_BUFFER_BACKBUFFER); | ||||
|         grBufferClear(fxMesa->clearC, fxMesa->clearA, 0); | ||||
|         FX_grRenderBuffer(GR_BUFFER_BACKBUFFER); | ||||
|         FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, 0); | ||||
|       } | ||||
|       if (ctx->Color.DrawDestMask & FRONT_LEFT_BIT) { | ||||
|         grRenderBuffer(GR_BUFFER_FRONTBUFFER); | ||||
|         grBufferClear(fxMesa->clearC, fxMesa->clearA, 0); | ||||
|         FX_grRenderBuffer(GR_BUFFER_FRONTBUFFER); | ||||
|         FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, 0); | ||||
|       } | ||||
|  | ||||
|       if(ctx->Depth.Mask) | ||||
|         grDepthMask(FXTRUE); | ||||
|       if(ctx->Depth.Mask) { | ||||
|         FX_grDepthMask(FXTRUE); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     newmask=mask & (~(GL_COLOR_BUFFER_BIT)); | ||||
| @@ -158,14 +223,14 @@ static GLbitfield fxDDClear(GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|     /* clear depth buffer */ | ||||
|  | ||||
|     if(ctx->Depth.Mask) { | ||||
|       grColorMask(FXFALSE,FXFALSE); | ||||
|       grBufferClear(fxMesa->clearC, fxMesa->clearA, | ||||
|                     (FxU16)(ctx->Depth.Clear*0xffff)); | ||||
|       FX_grColorMask(FXFALSE,FXFALSE); | ||||
|       FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, | ||||
| 		       (FxU16)(ctx->Depth.Clear*0xffff)); | ||||
|  | ||||
|       grColorMask(ctx->Color.ColorMask[RCOMP] || | ||||
|                   ctx->Color.ColorMask[GCOMP] || | ||||
|                   ctx->Color.ColorMask[BCOMP], | ||||
|                   ctx->Color.ColorMask[ACOMP] && fxMesa->haveAlphaBuffer); | ||||
|       FX_grColorMask(ctx->Color.ColorMask[RCOMP] || | ||||
| 		     ctx->Color.ColorMask[GCOMP] || | ||||
| 		     ctx->Color.ColorMask[BCOMP], | ||||
| 		     ctx->Color.ColorMask[ACOMP] && fxMesa->haveAlphaBuffer); | ||||
|     } | ||||
|  | ||||
|     newmask=mask & (~(GL_DEPTH_BUFFER_BIT)); | ||||
| @@ -190,12 +255,12 @@ static GLboolean fxDDSetBuffer(GLcontext *ctx, GLenum mode ) | ||||
|  | ||||
|   if (mode == GL_FRONT_LEFT) { | ||||
|     fxMesa->currentFB = GR_BUFFER_FRONTBUFFER; | ||||
|     grRenderBuffer(fxMesa->currentFB); | ||||
|     FX_grRenderBuffer(fxMesa->currentFB); | ||||
|     return GL_TRUE; | ||||
|   } | ||||
|   else if (mode == GL_BACK_LEFT) { | ||||
|     fxMesa->currentFB = GR_BUFFER_BACKBUFFER; | ||||
|     grRenderBuffer(fxMesa->currentFB); | ||||
|     FX_grRenderBuffer(fxMesa->currentFB); | ||||
|     return GL_TRUE; | ||||
|   } | ||||
|   else { | ||||
| @@ -204,6 +269,22 @@ static GLboolean fxDDSetBuffer(GLcontext *ctx, GLenum mode ) | ||||
| } | ||||
|  | ||||
|  | ||||
| #ifdef XF86DRI | ||||
| static GLboolean inClipRects(fxMesaContext fxMesa, int px, int py) | ||||
| { | ||||
|   int i; | ||||
|  | ||||
|   py=fxMesa->height+fxMesa->y_offset-py; | ||||
|   for (i=0; i<fxMesa->numClipRects; i++) { | ||||
|     if ((px>=fxMesa->pClipRects[i].x1) &&  | ||||
| 	(px<fxMesa->pClipRects[i].x2) && | ||||
| 	(py>=fxMesa->pClipRects[i].y1) &&  | ||||
| 	(py<fxMesa->pClipRects[i].y2)) return GL_TRUE; | ||||
|   } | ||||
|   return GL_FALSE; | ||||
| } | ||||
| #endif | ||||
|  | ||||
|  | ||||
| static GLboolean fxDDDrawBitMap(GLcontext *ctx, GLint px, GLint py, | ||||
|                                 GLsizei width, GLsizei height, | ||||
| @@ -241,10 +322,16 @@ static GLboolean fxDDDrawBitMap(GLcontext *ctx, GLint px, GLint py, | ||||
|         ymax=fxMesa->height; | ||||
|   } | ||||
|  | ||||
|   xmin+=fxMesa->x_offset; | ||||
|   xmax+=fxMesa->x_offset; | ||||
|  | ||||
| #define ISCLIPPED(rx) ( ((rx)<xmin) || ((rx)>=xmax) ) | ||||
| #ifdef XF86DRI | ||||
| #define ISCLIPPED(rx, ry) ( ((rx)<xmin) || ((rx)>=xmax) || !inClipRects(fxMesa, rx, ry)) | ||||
| #else | ||||
| #define ISCLIPPED(rx, ry) ( ((rx)<xmin) || ((rx)>=xmax) ) | ||||
| #endif | ||||
| #define DRAWBIT(i) {       \ | ||||
|   if(!ISCLIPPED(x+px))     \ | ||||
|   if(!ISCLIPPED(x+px, y))  \ | ||||
|     if( (*pb) & (1<<(i)) ) \ | ||||
|       (*p)=color;          \ | ||||
|   p++;                     \ | ||||
| @@ -258,7 +345,7 @@ static GLboolean fxDDDrawBitMap(GLcontext *ctx, GLint px, GLint py, | ||||
|   scrwidth=fxMesa->width; | ||||
|   scrheight=fxMesa->height; | ||||
|  | ||||
|   if((px>=scrwidth) || (px+width<=0) || (py>=scrheight) || (py+height<=0)) | ||||
|   if ((px>=scrwidth) || (px+width<=0) || (py>=scrheight) || (py+height<=0)) | ||||
|     return GL_TRUE; | ||||
|  | ||||
|   pb=bitmap; | ||||
| @@ -269,16 +356,16 @@ static GLboolean fxDDDrawBitMap(GLcontext *ctx, GLint px, GLint py, | ||||
|     py=0; | ||||
|   } | ||||
|  | ||||
|   if(py+height>=scrheight) | ||||
|   if (py+height>=scrheight) | ||||
|     height-=(py+height)-scrheight; | ||||
|  | ||||
|   info.size=sizeof(info); | ||||
|   if(!grLfbLock(GR_LFB_WRITE_ONLY, | ||||
|                 fxMesa->currentFB, | ||||
|                 GR_LFBWRITEMODE_565, | ||||
|                 GR_ORIGIN_UPPER_LEFT, | ||||
|                 FXFALSE, | ||||
|                 &info)) { | ||||
|   if(!FX_grLfbLock(GR_LFB_WRITE_ONLY, | ||||
| 		   fxMesa->currentFB, | ||||
| 		   GR_LFBWRITEMODE_565, | ||||
| 		   GR_ORIGIN_UPPER_LEFT, | ||||
| 		   FXFALSE, | ||||
| 		   &info)) { | ||||
| #ifndef FX_SILENT | ||||
|     fprintf(stderr,"fx Driver: error locking the linear frame buffer\n"); | ||||
| #endif | ||||
| @@ -289,22 +376,28 @@ static GLboolean fxDDDrawBitMap(GLcontext *ctx, GLint px, GLint py, | ||||
|   g=(GLint)(ctx->Current.RasterColor[1]*255.0f); | ||||
|   b=(GLint)(ctx->Current.RasterColor[2]*255.0f); | ||||
|   a=(GLint)(ctx->Current.RasterColor[3]*255.0f); | ||||
|   color=(FxU16) | ||||
|     ( ((FxU16)0xf8 & b) <<(11-3))  | | ||||
|     ( ((FxU16)0xfc & g) <<(5-3+1)) | | ||||
|     ( ((FxU16)0xf8 & r) >> 3); | ||||
|   if (fxMesa->bgrOrder) | ||||
|     color=(FxU16) | ||||
|       ( ((FxU16)0xf8 & b) <<(11-3))  | | ||||
|       ( ((FxU16)0xfc & g) <<(5-3+1)) | | ||||
|       ( ((FxU16)0xf8 & r) >> 3); | ||||
|   else | ||||
|     color=(FxU16) | ||||
|       ( ((FxU16)0xf8 & r) <<(11-3))  | | ||||
|       ( ((FxU16)0xfc & g) <<(5-3+1)) | | ||||
|       ( ((FxU16)0xf8 & b) >> 3); | ||||
|  | ||||
|   stride=info.strideInBytes>>1; | ||||
|  | ||||
|   /* This code is a bit slow... */ | ||||
|  | ||||
|   for(y=py;y<(py+height);y++) { | ||||
|   if (py>ymin) ymin=py; | ||||
|   if (py+height<ymax) ymax=py+height; | ||||
|  | ||||
|     if (y>=ymax) | ||||
|         break; | ||||
|   px+=fxMesa->x_offset; | ||||
|   scrheight=fxMesa->height+fxMesa->y_offset; | ||||
|  | ||||
|     if (y<=ymin) | ||||
|         continue; | ||||
|   for(y=ymin; y<ymax; y++) { | ||||
|  | ||||
|     p=((FxU16 *)info.lfbPtr)+px+((scrheight-y)*stride); | ||||
|  | ||||
| @@ -315,7 +408,7 @@ static GLboolean fxDDDrawBitMap(GLcontext *ctx, GLint px, GLint py, | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   grLfbUnlock(GR_LFB_WRITE_ONLY,fxMesa->currentFB); | ||||
|   FX_grLfbUnlock(GR_LFB_WRITE_ONLY,fxMesa->currentFB); | ||||
|  | ||||
| #undef ISCLIPPED | ||||
| #undef DRAWBIT | ||||
| @@ -347,8 +440,6 @@ void fxDDSetNearFar(GLcontext *ctx, GLfloat n, GLfloat f) | ||||
| { | ||||
|    FX_CONTEXT(ctx)->new_state |= FX_NEW_FOG; | ||||
|    ctx->Driver.RenderStart = fxSetupFXUnits; | ||||
|  | ||||
|    FX_CONTEXT(ctx)->wscale = fabs(f)/65535.0f; | ||||
| } | ||||
|  | ||||
| /* KW: Put the word Mesa in the render string because quakeworld | ||||
| @@ -459,13 +550,13 @@ int fxDDInitFxMesaContext( fxMesaContext fxMesa ) | ||||
|    fxMesa->unitsState.depthMask		=GL_TRUE; | ||||
|    fxMesa->unitsState.depthTestFunc	=GR_CMP_LESS; | ||||
|  | ||||
|    grColorMask(FXTRUE, fxMesa->haveAlphaBuffer ? FXTRUE : FXFALSE); | ||||
|    FX_grColorMask(FXTRUE, fxMesa->haveAlphaBuffer ? FXTRUE : FXFALSE); | ||||
|    if(fxMesa->haveDoubleBuffer) { | ||||
|       fxMesa->currentFB=GR_BUFFER_BACKBUFFER; | ||||
|       grRenderBuffer(GR_BUFFER_BACKBUFFER); | ||||
|       FX_grRenderBuffer(GR_BUFFER_BACKBUFFER); | ||||
|    } else { | ||||
|       fxMesa->currentFB=GR_BUFFER_FRONTBUFFER; | ||||
|       grRenderBuffer(GR_BUFFER_FRONTBUFFER); | ||||
|       FX_grRenderBuffer(GR_BUFFER_FRONTBUFFER); | ||||
|    } | ||||
|    | ||||
|    fxMesa->state 	= NULL; | ||||
| @@ -481,10 +572,10 @@ int fxDDInitFxMesaContext( fxMesaContext fxMesa ) | ||||
|    } | ||||
|  | ||||
|    if(fxMesa->haveZBuffer) | ||||
|       grDepthBufferMode(GR_DEPTHBUFFER_ZBUFFER); | ||||
|       FX_grDepthBufferMode(GR_DEPTHBUFFER_ZBUFFER); | ||||
|      | ||||
| #if (!FXMESA_USE_ARGB) | ||||
|    grLfbWriteColorFormat(GR_COLORFORMAT_ABGR); /* Not every Glide has this  */ | ||||
|    FX_grLfbWriteColorFormat(GR_COLORFORMAT_ABGR); /* Not every Glide has this */ | ||||
| #endif | ||||
|  | ||||
|    fxMesa->glCtx->Const.MaxTextureLevels=9; | ||||
| @@ -505,7 +596,7 @@ int fxDDInitFxMesaContext( fxMesaContext fxMesa ) | ||||
|  | ||||
|    fxDDSetNearFar(fxMesa->glCtx,1.0,100.0); | ||||
|    | ||||
|    grGlideGetState((GrState*)fxMesa->state); | ||||
|    FX_grGlideGetState((GrState*)fxMesa->state); | ||||
|  | ||||
|    /* XXX Fix me: callback not registered when main VB is created. | ||||
|     */ | ||||
| @@ -546,6 +637,12 @@ void fxDDInitExtensions( GLcontext *ctx ) | ||||
|       gl_extensions_disable( ctx, "GL_ARB_multitexture" ); | ||||
| } | ||||
|  | ||||
| /* | ||||
|   This driver may need to move the drawing operations to a different sub | ||||
|   window. This modifies the viewport command to add our X,Y offset to all | ||||
|   drawn objects that go through the viewport transformation. | ||||
| */ | ||||
|  | ||||
| /************************************************************************/ | ||||
| /************************************************************************/ | ||||
| /************************************************************************/ | ||||
| @@ -591,16 +688,19 @@ static GLboolean fxIsInHardware(GLcontext *ctx) | ||||
|        /* Not very well written ... */ | ||||
|        ((ctx->Enabled & (TEXTURE0_1D | TEXTURE1_1D)) &&  | ||||
|         ((ctx->Enabled & (TEXTURE0_2D | TEXTURE1_2D))!=(TEXTURE0_2D | TEXTURE1_2D))) | ||||
|        ) | ||||
|        ) { | ||||
|       return GL_FALSE; | ||||
|     } | ||||
|  | ||||
|     if((ctx->Texture.ReallyEnabled & TEXTURE0_2D) && | ||||
|        (ctx->Texture.Unit[0].EnvMode==GL_BLEND)) | ||||
|        (ctx->Texture.Unit[0].EnvMode==GL_BLEND)) { | ||||
|       return GL_FALSE; | ||||
|     } | ||||
|  | ||||
|     if((ctx->Texture.ReallyEnabled & TEXTURE1_2D) && | ||||
|        (ctx->Texture.Unit[1].EnvMode==GL_BLEND)) | ||||
|        (ctx->Texture.Unit[1].EnvMode==GL_BLEND)) { | ||||
|       return GL_FALSE; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     if (MESA_VERBOSE & (VERBOSE_DRIVER|VERBOSE_TEXTURE)) | ||||
| @@ -617,8 +717,9 @@ static GLboolean fxIsInHardware(GLcontext *ctx) | ||||
|        /* Can't use multipass to blend a multitextured triangle - fall | ||||
| 	* back to software. | ||||
| 	*/ | ||||
|        if (!fxMesa->haveTwoTMUs && ctx->Color.BlendEnabled)  | ||||
|       if (!fxMesa->haveTwoTMUs && ctx->Color.BlendEnabled) { | ||||
| 	  return GL_FALSE; | ||||
|       } | ||||
| 	   | ||||
|        if ((ctx->Texture.Unit[0].EnvMode!=ctx->Texture.Unit[1].EnvMode) && | ||||
| 	   (ctx->Texture.Unit[0].EnvMode!=GL_MODULATE) && | ||||
| @@ -626,7 +727,6 @@ static GLboolean fxIsInHardware(GLcontext *ctx) | ||||
|        { | ||||
| 	  if (MESA_VERBOSE&VERBOSE_DRIVER) | ||||
| 	    fprintf(stderr, "fxMesa: unsupported multitex env mode\n"); | ||||
|  | ||||
| 	  return GL_FALSE; | ||||
|        } | ||||
|     } | ||||
| @@ -635,13 +735,15 @@ static GLboolean fxIsInHardware(GLcontext *ctx) | ||||
|        /* Not very well written ... */ | ||||
|        ((ctx->Enabled & TEXTURE0_1D) &&  | ||||
|         (!(ctx->Enabled & TEXTURE0_2D))) | ||||
|        ) | ||||
|        ) { | ||||
|       return GL_FALSE; | ||||
|     } | ||||
|  | ||||
|      | ||||
|     if((ctx->Texture.ReallyEnabled & TEXTURE0_2D) && | ||||
|        (ctx->Texture.Unit[0].EnvMode==GL_BLEND)) | ||||
|        (ctx->Texture.Unit[0].EnvMode==GL_BLEND)) { | ||||
|       return GL_FALSE; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   return GL_TRUE; | ||||
| @@ -680,11 +782,11 @@ static void fxDDUpdateDDPointers(GLcontext *ctx) | ||||
|     ctx->Driver.LineFunc=fxMesa->LineFunc; | ||||
|     ctx->Driver.TriangleFunc=fxMesa->TriangleFunc; | ||||
|     ctx->Driver.QuadFunc=fxMesa->QuadFunc; | ||||
|   } else  | ||||
|   } else { | ||||
|      fxMesa->render_index = FX_FALLBACK; | ||||
|   } | ||||
| } | ||||
|  | ||||
|  | ||||
| void fxSetupDDPointers(GLcontext *ctx) | ||||
| { | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
| @@ -748,7 +850,6 @@ void fxSetupDDPointers(GLcontext *ctx) | ||||
|   ctx->Driver.CullFace=fxDDCullFace; | ||||
|   ctx->Driver.ShadeModel=fxDDShadeModel; | ||||
|   ctx->Driver.Enable=fxDDEnable; | ||||
|    | ||||
|  | ||||
|   ctx->Driver.RegisterVB=fxDDRegisterVB; | ||||
|   ctx->Driver.UnregisterVB=fxDDUnregisterVB; | ||||
| @@ -786,3 +887,4 @@ int gl_fx_dummy_function_dd(void) | ||||
| } | ||||
|  | ||||
| #endif  /* FX */ | ||||
|  | ||||
|   | ||||
| @@ -1,27 +1,51 @@ | ||||
| /* -*- mode: C; tab-width:8;  -*- | ||||
|  | ||||
|              fxdd.c - 3Dfx VooDoo Mesa span and pixel functions | ||||
| */ | ||||
| /* -*- mode: C; tab-width:8; c-basic-offset:2 -*- */ | ||||
|  | ||||
| /* | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * See the file fxapi.c for more informations about authors | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  * | ||||
|  * | ||||
|  * Original Mesa / 3Dfx device driver (C) 1999 David Bucciarelli, by the | ||||
|  * terms stated above. | ||||
|  * | ||||
|  * Thank you for your contribution, David! | ||||
|  * | ||||
|  * Please make note of the above copyright/license statement.  If you | ||||
|  * contributed code or bug fixes to this code under the previous (GNU | ||||
|  * Library) license and object to the new license, your code will be | ||||
|  * removed at your request.  Please see the Mesa docs/COPYRIGHT file | ||||
|  * for more information. | ||||
|  * | ||||
|  * Additional Mesa/3Dfx driver developers: | ||||
|  *   Daryll Strauss <daryll@precisioninsight.com> | ||||
|  *   Keith Whitwell <keith@precisioninsight.com> | ||||
|  * | ||||
|  * See fxapi.h for more revision/author details. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* fxdd.c - 3Dfx VooDoo Mesa span and pixel functions */ | ||||
|  | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| #endif | ||||
| @@ -42,6 +66,72 @@ | ||||
|  | ||||
| #if !defined(FXMESA_USE_ARGB)  | ||||
|  | ||||
|  | ||||
| #if defined(FX_GLIDE3) && defined(XF86DRI) | ||||
|  | ||||
| static FxBool writeRegionClipped(fxMesaContext fxMesa, GrBuffer_t dst_buffer, | ||||
| 			  FxU32 dst_x, FxU32 dst_y, GrLfbSrcFmt_t src_format, | ||||
| 			  FxU32 src_width, FxU32 src_height, FxI32 src_stride, | ||||
| 			  void *src_data); | ||||
|  | ||||
| FxBool writeRegionClipped(fxMesaContext fxMesa, GrBuffer_t dst_buffer, | ||||
| 			  FxU32 dst_x, FxU32 dst_y, GrLfbSrcFmt_t src_format, | ||||
| 			  FxU32 src_width, FxU32 src_height, FxI32 src_stride, | ||||
| 			  void *src_data) | ||||
| { | ||||
|   int i, x, w, srcElt; | ||||
|   void *data; | ||||
|  | ||||
|   if (src_width==1 && src_height==1) { /* Easy case writing a point */ | ||||
|     for (i=0; i<fxMesa->numClipRects; i++) { | ||||
|       if ((dst_x>=fxMesa->pClipRects[i].x1) &&  | ||||
| 	  (dst_x<fxMesa->pClipRects[i].x2) && | ||||
| 	  (dst_y>=fxMesa->pClipRects[i].y1) &&  | ||||
| 	  (dst_y<fxMesa->pClipRects[i].y2)) { | ||||
| 	FX_grLfbWriteRegion(dst_buffer, dst_x, dst_y, src_format, | ||||
| 			    1, 1, src_stride, src_data); | ||||
| 	return GL_TRUE; | ||||
|       } | ||||
|     } | ||||
|   } else if (src_height==1) { /* Writing a span */ | ||||
|     if (src_format==GR_LFB_SRC_FMT_8888) srcElt=4; | ||||
|     else if (src_format==GR_LFB_SRC_FMT_ZA16) srcElt=2; | ||||
|     else { | ||||
|       fprintf(stderr, "Unknown src_format passed to writeRegionClipped\n"); | ||||
|       return GL_FALSE; | ||||
|     } | ||||
|     for (i=0; i<fxMesa->numClipRects; i++) { | ||||
|       if (dst_y>=fxMesa->pClipRects[i].y1 && dst_y<fxMesa->pClipRects[i].y2) { | ||||
| 	if (dst_x<fxMesa->pClipRects[i].x1) { | ||||
| 	  x=fxMesa->pClipRects[i].x1; | ||||
| 	  data=((char*)src_data)+srcElt*(dst_x-x); | ||||
| 	  w=src_width-(x-dst_x); | ||||
| 	} else { | ||||
| 	  x=dst_x; | ||||
| 	  data=src_data; | ||||
| 	  w=src_width; | ||||
| 	} | ||||
| 	if (x+w>fxMesa->pClipRects[i].x2) { | ||||
| 	  w=fxMesa->pClipRects[i].x2-x; | ||||
| 	} | ||||
| 	FX_grLfbWriteRegion(dst_buffer, x, dst_y, src_format, w, 1, | ||||
| 			    src_stride, data); | ||||
|       } | ||||
|     } | ||||
|   } else { /* Punt on the case of arbitrary rectangles */ | ||||
|     return GL_FALSE; | ||||
|   } | ||||
|   return GL_TRUE; | ||||
| } | ||||
|  | ||||
| #else | ||||
|  | ||||
| #define writeRegionClipped(fxm,dst_buffer,dst_x,dst_y,src_format,src_width,src_height,src_stride,src_data)		\ | ||||
|   FX_grLfbWriteRegion(dst_buffer,dst_x,dst_y,src_format,src_width,src_height,src_stride,src_data) | ||||
|  | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* KW: Rearranged the args in the call to grLfbWriteRegion(). | ||||
|  */ | ||||
| #define LFB_WRITE_SPAN_MESA(dst_buffer,		\ | ||||
| @@ -50,7 +140,7 @@ | ||||
| 			    src_width,		\ | ||||
| 			    src_stride,		\ | ||||
| 			    src_data)		\ | ||||
|   grLfbWriteRegion(dst_buffer,			\ | ||||
|   writeRegionClipped(fxMesa, dst_buffer,	\ | ||||
| 		   dst_x,			\ | ||||
| 		   dst_y,			\ | ||||
| 		   GR_LFB_SRC_FMT_8888,		\ | ||||
| @@ -60,7 +150,11 @@ | ||||
| 		   src_data)			\ | ||||
|  | ||||
|  | ||||
| #else /* defined(FXMESA_USE_RGBA) */ | ||||
| #else /* !defined(FXMESA_USE_RGBA) */ | ||||
|  | ||||
| #define writeRegionClipped(fxm,dst_buffer,dst_x,dst_y,src_format,src_width,src_height,src_stride,src_data)		\ | ||||
|   FX_grLfbWriteRegion(dst_buffer,dst_x,dst_y,src_format,src_width,src_height,src_stride,src_data) | ||||
|  | ||||
|  | ||||
| #define MESACOLOR_TO_ARGB(c) (				\ | ||||
|              ( ((unsigned int)(c[ACOMP]))<<24 ) |	\ | ||||
| @@ -68,7 +162,7 @@ | ||||
|              ( ((unsigned int)(c[GCOMP]))<<8 )  |	\ | ||||
|              (  (unsigned int)(c[BCOMP])) ) | ||||
|    | ||||
| void LFB_WRITE_SPAN_MESA(GrBuffer_t dst_buffer,  | ||||
| inline void LFB_WRITE_SPAN_MESA(GrBuffer_t dst_buffer,  | ||||
| 			 FxU32 dst_x,  | ||||
| 			 FxU32 dst_y,  | ||||
| 			 FxU32 src_width, | ||||
| @@ -84,7 +178,7 @@ void LFB_WRITE_SPAN_MESA(GrBuffer_t dst_buffer, | ||||
|    { | ||||
|       argb[i] = MESACOLOR_TO_ARGB(rgba[i]); | ||||
|    } | ||||
|    FX_grLfbWriteRegion(dst_buffer, | ||||
|    writeRegionClipped( /*fxMesa,*/ NULL, dst_buffer, | ||||
| 		       dst_x, | ||||
| 		       dst_y, | ||||
| 		       GR_LFB_SRC_FMT_8888, | ||||
| @@ -93,8 +187,9 @@ void LFB_WRITE_SPAN_MESA(GrBuffer_t dst_buffer, | ||||
| 		       src_stride, | ||||
| 		       (void*)argb); | ||||
| } | ||||
|   | ||||
| #endif /* !defined(FXMESA_USE_RGBA) */ | ||||
|  | ||||
| #endif | ||||
|  | ||||
| /************************************************************************/ | ||||
| /*****                    Span functions                            *****/ | ||||
| @@ -107,12 +202,13 @@ static void fxDDWriteRGBASpan(const GLcontext *ctx, | ||||
| { | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   GLuint i; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1;  | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDWriteRGBASpan(...)\n"); | ||||
|   } | ||||
|  | ||||
|   x+=fxMesa->x_offset; | ||||
|   if (mask) { | ||||
|     int span=0; | ||||
|  | ||||
| @@ -143,13 +239,14 @@ static void fxDDWriteRGBSpan(const GLcontext *ctx, | ||||
| { | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   GLuint i; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1; | ||||
|   GLubyte rgba[MAX_WIDTH][4]; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDWriteRGBSpan()\n"); | ||||
|   } | ||||
|  | ||||
|   x+=fxMesa->x_offset; | ||||
|   if (mask) { | ||||
|     int span=0; | ||||
|  | ||||
| @@ -192,13 +289,14 @@ static void fxDDWriteMonoRGBASpan(const GLcontext *ctx, | ||||
| { | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   GLuint i; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1; | ||||
|   GLuint data[MAX_WIDTH]; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDWriteMonoRGBASpan(...)\n"); | ||||
|   } | ||||
|  | ||||
|   x+=fxMesa->x_offset; | ||||
|   if (mask) { | ||||
|     int span=0; | ||||
|  | ||||
| @@ -208,7 +306,7 @@ static void fxDDWriteMonoRGBASpan(const GLcontext *ctx, | ||||
|         ++span; | ||||
|       } else { | ||||
|         if (span > 0) { | ||||
|           FX_grLfbWriteRegion( fxMesa->currentFB, x+i-span, bottom-y, | ||||
|           writeRegionClipped(fxMesa,  fxMesa->currentFB, x+i-span, bottom-y, | ||||
|                             GR_LFB_SRC_FMT_8888, span, 1, 0, | ||||
|                             (void *) data ); | ||||
|           span = 0; | ||||
| @@ -217,7 +315,7 @@ static void fxDDWriteMonoRGBASpan(const GLcontext *ctx, | ||||
|     } | ||||
|  | ||||
|     if (span > 0) | ||||
|       FX_grLfbWriteRegion( fxMesa->currentFB, x+n-span, bottom-y, | ||||
|       writeRegionClipped(fxMesa,  fxMesa->currentFB, x+n-span, bottom-y, | ||||
|                         GR_LFB_SRC_FMT_8888, span, 1, 0, | ||||
|                         (void *) data ); | ||||
|   } else { | ||||
| @@ -225,7 +323,7 @@ static void fxDDWriteMonoRGBASpan(const GLcontext *ctx, | ||||
|       data[i]=(GLuint) fxMesa->color; | ||||
|     } | ||||
|  | ||||
|     FX_grLfbWriteRegion( fxMesa->currentFB, x, bottom-y, GR_LFB_SRC_FMT_8888, | ||||
|     writeRegionClipped(fxMesa,  fxMesa->currentFB, x, bottom-y, GR_LFB_SRC_FMT_8888, | ||||
|                       n, 1, 0, (void *) data ); | ||||
|   } | ||||
| } | ||||
| @@ -237,7 +335,7 @@ static void fxDDReadRGBASpan(const GLcontext *ctx, | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   GLushort data[MAX_WIDTH]; | ||||
|   GLuint i; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDReadRGBASpan(...)\n"); | ||||
| @@ -245,20 +343,16 @@ static void fxDDReadRGBASpan(const GLcontext *ctx, | ||||
|  | ||||
|   assert(n < MAX_WIDTH); | ||||
|  | ||||
|   grLfbReadRegion( fxMesa->currentFB, x, bottom-y, n, 1, 0, data); | ||||
|   for (i=0;i<n;i++) { | ||||
| #if FXMESA_USE_ARGB | ||||
|     rgba[i][RCOMP]=(data[i] & 0xF800) >> 8; | ||||
|     rgba[i][GCOMP]=(data[i] & 0x07E0) >> 3; | ||||
|     rgba[i][BCOMP]=(data[i] & 0x001F) << 3; | ||||
| #else | ||||
|     rgba[i][RCOMP]=(data[i] & 0x001f) << 3; | ||||
|     rgba[i][GCOMP]=(data[i] & 0x07e0) >> 3; | ||||
|     rgba[i][BCOMP]=(data[i] & 0xf800) >> 8; | ||||
| #endif | ||||
|     rgba[i][ACOMP]=255; | ||||
|   } | ||||
|   x+=fxMesa->x_offset; | ||||
|   FX_grLfbReadRegion( fxMesa->currentFB, x, bottom-y, n, 1, 0, data); | ||||
|  | ||||
|   for (i=0;i<n;i++) { | ||||
|     GLushort pixel = data[i]; | ||||
|     rgba[i][RCOMP] = FX_PixelToR[pixel]; | ||||
|     rgba[i][GCOMP] = FX_PixelToG[pixel]; | ||||
|     rgba[i][BCOMP] = FX_PixelToB[pixel]; | ||||
|     rgba[i][ACOMP] = 255; | ||||
|   } | ||||
| } | ||||
|  | ||||
| /************************************************************************/ | ||||
| @@ -271,7 +365,7 @@ static void fxDDWriteRGBAPixels(const GLcontext *ctx, | ||||
| { | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   GLuint i; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDWriteRGBAPixels(...)\n"); | ||||
| @@ -279,8 +373,8 @@ static void fxDDWriteRGBAPixels(const GLcontext *ctx, | ||||
|  | ||||
|   for(i=0;i<n;i++) | ||||
|     if(mask[i]) | ||||
|        LFB_WRITE_SPAN_MESA(fxMesa->currentFB,x[i],bottom-y[i], | ||||
|                        /*GR_LFB_SRC_FMT_8888,*/1,/*1,*/0,(void *)rgba[i]); | ||||
|        LFB_WRITE_SPAN_MESA(fxMesa->currentFB, x[i]+fxMesa->x_offset, bottom-y[i], | ||||
|                        1, 1, (void *)rgba[i]); | ||||
| } | ||||
|  | ||||
| static void fxDDWriteMonoRGBAPixels(const GLcontext *ctx, | ||||
| @@ -289,7 +383,7 @@ static void fxDDWriteMonoRGBAPixels(const GLcontext *ctx, | ||||
| { | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   GLuint i; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDWriteMonoRGBAPixels(...)\n"); | ||||
| @@ -297,7 +391,7 @@ static void fxDDWriteMonoRGBAPixels(const GLcontext *ctx, | ||||
|  | ||||
|   for(i=0;i<n;i++) | ||||
|     if(mask[i]) | ||||
|       FX_grLfbWriteRegion(fxMesa->currentFB,x[i],bottom-y[i], | ||||
|       writeRegionClipped(fxMesa, fxMesa->currentFB,x[i]+fxMesa->x_offset,bottom-y[i], | ||||
|                        GR_LFB_SRC_FMT_8888,1,1,0,(void *) &fxMesa->color); | ||||
| } | ||||
|  | ||||
| @@ -307,31 +401,25 @@ static void fxDDReadRGBAPixels(const GLcontext *ctx, | ||||
| { | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   GLuint i; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLushort data; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDReadRGBAPixels(...)\n"); | ||||
|   } | ||||
|  | ||||
|   for(i=0;i<n;i++) | ||||
|   for(i=0;i<n;i++) { | ||||
|     if(mask[i]) { | ||||
|       grLfbReadRegion(fxMesa->currentFB,x[i],bottom-y[i],1,1,0,&data); | ||||
|    #if FXMESA_USE_ARGB  | ||||
|       rgba[i][RCOMP]=(data & 0xF800) >> 8; | ||||
|       rgba[i][GCOMP]=(data & 0x07E0) >> 3; | ||||
|       rgba[i][BCOMP]=(data & 0x001F) >> 8; | ||||
|    #else | ||||
|       rgba[i][RCOMP]=(data & 0x001f) << 3; | ||||
|       rgba[i][GCOMP]=(data & 0x07e0) >> 3; | ||||
|       rgba[i][BCOMP]=(data & 0xf800) >> 8; | ||||
|    #endif | ||||
|       /* the alpha value should be read from the auxiliary buffer when required */ | ||||
|  | ||||
|       rgba[i][ACOMP]=255; | ||||
|       GLushort pixel; | ||||
|       FX_grLfbReadRegion(fxMesa->currentFB,x[i],bottom-y[i],1,1,0,&pixel); | ||||
|       rgba[i][RCOMP] = FX_PixelToR[pixel]; | ||||
|       rgba[i][GCOMP] = FX_PixelToG[pixel]; | ||||
|       rgba[i][BCOMP] = FX_PixelToB[pixel]; | ||||
|       rgba[i][ACOMP] = 255; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
|  | ||||
| /************************************************************************/ | ||||
| /*****                    Depth functions                           *****/ | ||||
| /************************************************************************/ | ||||
| @@ -340,15 +428,42 @@ void fxDDReadDepthSpanFloat(GLcontext *ctx, | ||||
| 			    GLuint n, GLint x, GLint y, GLfloat depth[]) | ||||
| { | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   GLuint i; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLint i; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1; | ||||
|   GLushort data[MAX_WIDTH]; | ||||
|   GLint count = (GLint) n; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDReadDepthSpanFloat(...)\n"); | ||||
|   } | ||||
|  | ||||
|   grLfbReadRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,n,1,0,data); | ||||
|   if (y < 0 || y >= ctx->Buffer->Height || | ||||
|       x >= ctx->Buffer->Width || x + count < 0) { | ||||
|     /* completely outside frame buffer */ | ||||
|     for (i = 0; i < count; i++) | ||||
|       depth[i] = 0; | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   if (x < 0) { | ||||
|     GLint dx = -x; | ||||
|     for (i = 0; i < dx; i++) | ||||
|       depth[i] = 0; | ||||
|     x = 0; | ||||
|     depth += dx; | ||||
|     count -= dx; | ||||
|   } | ||||
|   if (x + count > ctx->Buffer->Width) { | ||||
|     GLint dx = x + count - ctx->Buffer->Width; | ||||
|     for (i = 0; i < dx; i++) | ||||
|       depth[count - dx - 1] = 0; | ||||
|     count -= dx; | ||||
|   } | ||||
|   if (count <= 0) | ||||
|     return; | ||||
|  | ||||
|   x+=fxMesa->x_offset; | ||||
|   FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,n,1,0,data); | ||||
|  | ||||
|   /* | ||||
|     convert the read values to float values [0.0 .. 1.0]. | ||||
| @@ -361,13 +476,41 @@ void fxDDReadDepthSpanInt(GLcontext *ctx, | ||||
| 			  GLuint n, GLint x, GLint y, GLdepth depth[]) | ||||
| { | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1; | ||||
|   GLint count = (GLint) n; | ||||
|   GLint i; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDReadDepthSpanInt(...)\n"); | ||||
|   } | ||||
|  | ||||
|   grLfbReadRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,n,1,0,depth); | ||||
|   if (y < 0 || y >= ctx->Buffer->Height || | ||||
|       x >= ctx->Buffer->Width || x + count < 0) { | ||||
|     /* completely outside frame buffer */ | ||||
|     for (i = 0; i < count; i++) | ||||
|       depth[i] = 0; | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   if (x < 0) { | ||||
|     GLint dx = -x; | ||||
|     for (i = 0; i < dx; i++) | ||||
|       depth[i] = 0; | ||||
|     x = 0; | ||||
|     depth += dx; | ||||
|     count -= dx; | ||||
|   } | ||||
|   if (x + count > ctx->Buffer->Width) { | ||||
|     GLint dx = x + count - ctx->Buffer->Width; | ||||
|     for (i = 0; i < dx; i++) | ||||
|       depth[count - dx - 1] = 0; | ||||
|     count -= dx; | ||||
|   } | ||||
|   if (count <= 0) | ||||
|     return; | ||||
|  | ||||
|   x+=fxMesa->x_offset; | ||||
|   FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,n,1,0,depth); | ||||
| } | ||||
|  | ||||
| GLuint fxDDDepthTestSpanGeneric(GLcontext *ctx, | ||||
| @@ -380,13 +523,14 @@ GLuint fxDDDepthTestSpanGeneric(GLcontext *ctx, | ||||
|   GLubyte *m=mask; | ||||
|   GLuint i; | ||||
|   GLuint passed=0; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDDepthTestSpanGeneric(...)\n"); | ||||
|   } | ||||
|  | ||||
|   grLfbReadRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,n,1,0,depthdata); | ||||
|   x+=fxMesa->x_offset; | ||||
|   FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,n,1,0,depthdata); | ||||
|  | ||||
|   /* switch cases ordered from most frequent to less frequent */ | ||||
|   switch (ctx->Depth.Func) { | ||||
| @@ -578,7 +722,7 @@ GLuint fxDDDepthTestSpanGeneric(GLcontext *ctx, | ||||
|   } /*switch*/ | ||||
|  | ||||
|   if(passed) | ||||
|     FX_grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x,bottom-y,GR_LFB_SRC_FMT_ZA16,n,1,0,depthdata); | ||||
|     writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER,x,bottom-y,GR_LFB_SRC_FMT_ZA16,n,1,0,depthdata); | ||||
|  | ||||
|   return passed; | ||||
| } | ||||
| @@ -590,7 +734,7 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   GLdepth zval; | ||||
|   GLuint i; | ||||
|   GLint bottom=fxMesa->height-1; | ||||
|   GLint bottom=fxMesa->height+fxMesa->y_offset-1; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDDepthTestPixelsGeneric(...)\n"); | ||||
| @@ -603,10 +747,10 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] < zval) { | ||||
|             /* pass */ | ||||
|             FX_grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|             writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|           } else { | ||||
|             /* fail */ | ||||
|             mask[i] = 0; | ||||
| @@ -617,7 +761,7 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Don't update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] < zval) { | ||||
|             /* pass */ | ||||
|           } | ||||
| @@ -634,10 +778,10 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] <= zval) { | ||||
|             /* pass */ | ||||
|             FX_grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|             writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|           } else { | ||||
|             /* fail */ | ||||
|             mask[i] = 0; | ||||
| @@ -648,7 +792,7 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Don't update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] <= zval) { | ||||
|             /* pass */ | ||||
|           } else { | ||||
| @@ -664,10 +808,10 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] >= zval) { | ||||
|             /* pass */ | ||||
|             FX_grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|             writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|           } else { | ||||
|             /* fail */ | ||||
|             mask[i] = 0; | ||||
| @@ -678,7 +822,7 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Don't update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] >= zval) { | ||||
|             /* pass */ | ||||
|           } else { | ||||
| @@ -694,10 +838,10 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] > zval) { | ||||
|             /* pass */ | ||||
|             FX_grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|             writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|           } else { | ||||
|             /* fail */ | ||||
|             mask[i] = 0; | ||||
| @@ -708,7 +852,7 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Don't update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] > zval) { | ||||
|             /* pass */ | ||||
|           } else { | ||||
| @@ -724,10 +868,10 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] != zval) { | ||||
|             /* pass */ | ||||
|             FX_grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|             writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|           } else { | ||||
|             /* fail */ | ||||
|             mask[i] = 0; | ||||
| @@ -738,7 +882,7 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Don't update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] != zval) { | ||||
|             /* pass */ | ||||
|           } | ||||
| @@ -755,10 +899,10 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] == zval) { | ||||
|             /* pass */ | ||||
|             FX_grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|             writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|           } else { | ||||
|             /* fail */ | ||||
|             mask[i] = 0; | ||||
| @@ -769,7 +913,7 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Don't update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],1,1,0,&zval); | ||||
|           FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],1,1,0,&zval); | ||||
|           if (z[i] == zval) { | ||||
|             /* pass */ | ||||
|           } else { | ||||
| @@ -785,7 +929,7 @@ void fxDDDepthTestPixelsGeneric(GLcontext* ctx, | ||||
|       /* Update Z buffer */ | ||||
|       for (i=0; i<n; i++) { | ||||
|         if (mask[i]) { | ||||
|           FX_grLfbWriteRegion(GR_BUFFER_AUXBUFFER,x[i],bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|           writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER,x[i]+fxMesa->x_offset,bottom-y[i],GR_LFB_SRC_FMT_ZA16,1,1,0,(void*)&z[i]); | ||||
|         } | ||||
|       } | ||||
|     } else { | ||||
|   | ||||
| @@ -1,27 +1,48 @@ | ||||
| /* -*- mode: C; tab-width:8;  -*- | ||||
|  | ||||
|              fxddtex.c - 3Dfx VooDoo Texture mapping functions | ||||
| */ | ||||
| /* -*- mode: C; tab-width:8; c-basic-offset:2 -*- */ | ||||
|  | ||||
| /* | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * See the file fxapi.c for more informations about authors | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  * | ||||
|  * | ||||
|  * Original Mesa / 3Dfx device driver (C) 1999 David Bucciarelli, by the | ||||
|  * terms stated above. | ||||
|  * | ||||
|  * Thank you for your contribution, David! | ||||
|  * | ||||
|  * Please make note of the above copyright/license statement.  If you | ||||
|  * contributed code or bug fixes to this code under the previous (GNU | ||||
|  * Library) license and object to the new license, your code will be | ||||
|  * removed at your request.  Please see the Mesa docs/COPYRIGHT file | ||||
|  * for more information. | ||||
|  * | ||||
|  * Additional Mesa/3Dfx driver developers: | ||||
|  *   Daryll Strauss <daryll@precisioninsight.com> | ||||
|  *   Keith Whitwell <keith@precisioninsight.com> | ||||
|  * | ||||
|  * See fxapi.h for more revision/author details. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| #endif | ||||
| @@ -30,6 +51,37 @@ | ||||
|  | ||||
| #include "fxdrv.h" | ||||
|  | ||||
| void fxPrintTextureData(tfxTexInfo *ti) | ||||
| { | ||||
|   fprintf(stderr, "Texture Data:\n"); | ||||
|   if (ti->tObj) { | ||||
|     fprintf(stderr, "\tName: %d\n", ti->tObj->Name); | ||||
|     fprintf(stderr, "\tBaseLevel: %d\n", ti->tObj->BaseLevel); | ||||
|     fprintf(stderr, "\tSize: %d x %d\n",  | ||||
| 	    ti->tObj->Image[ti->tObj->BaseLevel]->Width, | ||||
| 	    ti->tObj->Image[ti->tObj->BaseLevel]->Height); | ||||
|   } else | ||||
|     fprintf(stderr, "\tName: UNNAMED\n"); | ||||
|   fprintf(stderr, "\tLast used: %d\n", ti->lastTimeUsed); | ||||
|   fprintf(stderr, "\tTMU: %d\n", ti->whichTMU); | ||||
|   fprintf(stderr, "\t%s\n", (ti->isInTM)?"In TMU":"Not in TMU"); | ||||
|   if (ti->tm[0])  | ||||
|     fprintf(stderr, "\tMem0: %x-%x\n", ti->tm[0]->startAddr,  | ||||
| 	    ti->tm[0]->endAddr); | ||||
|   if (ti->tm[1])  | ||||
|     fprintf(stderr, "\tMem1: %x-%x\n", ti->tm[1]->startAddr,  | ||||
| 	    ti->tm[1]->endAddr); | ||||
|   fprintf(stderr, "\tMipmaps: %d-%d\n", ti->minLevel, ti->maxLevel); | ||||
|   fprintf(stderr, "\tFilters: min %d min %d\n", ti->minFilt, ti->maxFilt); | ||||
|   fprintf(stderr, "\tClamps: s %d t %d\n", ti->sClamp, ti->tClamp); | ||||
|   fprintf(stderr, "\tScales: s %f t %f\n", ti->sScale, ti->tScale); | ||||
|   fprintf(stderr, "\tInt Scales: s %d t %d\n",  | ||||
| 	  ti->int_sScale/0x800000, ti->int_tScale/0x800000); | ||||
|   fprintf(stderr, "\t%s\n", (ti->fixedPalette)?"Fixed palette":"Non fixed palette"); | ||||
|   fprintf(stderr, "\t%s\n", (ti->validated)?"Validated":"Not validated"); | ||||
| } | ||||
|  | ||||
|  | ||||
| /************************************************************************/ | ||||
| /*************************** Texture Mapping ****************************/ | ||||
| /************************************************************************/ | ||||
| @@ -41,7 +93,7 @@ void fxTexInvalidate(GLcontext *ctx, struct gl_texture_object *tObj) | ||||
|  | ||||
|   fxTMMoveOutTM(fxMesa,tObj); /* TO DO: SLOW but easy to write */ | ||||
|  | ||||
|   ti=(tfxTexInfo *)tObj->DriverData; | ||||
|   ti=fxTMGetTexInfo(tObj); | ||||
|   ti->validated=GL_FALSE; | ||||
|   fxMesa->new_state|=FX_NEW_TEXTURING; | ||||
|   ctx->Driver.RenderStart = fxSetupFXUnits; | ||||
| @@ -59,12 +111,12 @@ static tfxTexInfo *fxAllocTexObjData(fxMesaContext fxMesa) | ||||
|   } | ||||
|  | ||||
|   ti->validated=GL_FALSE; | ||||
|   ti->tmi.isInTM=GL_FALSE; | ||||
|   ti->isInTM=GL_FALSE; | ||||
|  | ||||
|   ti->tmi.whichTMU=FX_TMU_NONE; | ||||
|   ti->whichTMU=FX_TMU_NONE; | ||||
|  | ||||
|   ti->tmi.tm[FX_TMU0]=NULL; | ||||
|   ti->tmi.tm[FX_TMU1]=NULL; | ||||
|   ti->tm[FX_TMU0]=NULL; | ||||
|   ti->tm[FX_TMU1]=NULL; | ||||
|  | ||||
|   ti->minFilt=GR_TEXTUREFILTER_POINT_SAMPLED; | ||||
|   ti->maxFilt=GR_TEXTUREFILTER_BILINEAR; | ||||
| @@ -72,17 +124,12 @@ static tfxTexInfo *fxAllocTexObjData(fxMesaContext fxMesa) | ||||
|   ti->sClamp=GR_TEXTURECLAMP_WRAP; | ||||
|   ti->tClamp=GR_TEXTURECLAMP_WRAP; | ||||
|  | ||||
|   if(fxMesa->haveTwoTMUs) { | ||||
|     ti->mmMode=GR_MIPMAP_NEAREST; | ||||
|     ti->LODblend=FXTRUE; | ||||
|   } else { | ||||
|     ti->mmMode=GR_MIPMAP_NEAREST_DITHER; | ||||
|     ti->LODblend=FXFALSE; | ||||
|   } | ||||
|   ti->mmMode=GR_MIPMAP_NEAREST; | ||||
|   ti->LODblend=FXFALSE; | ||||
|  | ||||
|   for(i=0;i<MAX_TEXTURE_LEVELS;i++) { | ||||
|     ti->tmi.mipmapLevel[i].used=GL_FALSE; | ||||
|     ti->tmi.mipmapLevel[i].data=NULL; | ||||
|     ti->mipmapLevel[i].used=GL_FALSE; | ||||
|     ti->mipmapLevel[i].data=NULL; | ||||
|   } | ||||
|  | ||||
|   return ti; | ||||
| @@ -100,13 +147,14 @@ void fxDDTexBind(GLcontext *ctx, GLenum target, struct gl_texture_object *tObj) | ||||
|   if(target!=GL_TEXTURE_2D) | ||||
|     return; | ||||
|  | ||||
|   if(!tObj->DriverData) | ||||
|   if (!tObj->DriverData) { | ||||
|     tObj->DriverData=fxAllocTexObjData(fxMesa); | ||||
|   } | ||||
|  | ||||
|   ti=(tfxTexInfo *)tObj->DriverData; | ||||
|   ti=fxTMGetTexInfo(tObj); | ||||
|  | ||||
|   fxMesa->texBindNumber++; | ||||
|   ti->tmi.lastTimeUsed=fxMesa->texBindNumber; | ||||
|   ti->lastTimeUsed=fxMesa->texBindNumber; | ||||
|  | ||||
|   fxMesa->new_state|=FX_NEW_TEXTURING; | ||||
|   ctx->Driver.RenderStart = fxSetupFXUnits; | ||||
| @@ -141,10 +189,10 @@ void fxDDTexParam(GLcontext *ctx, GLenum target, struct gl_texture_object *tObj, | ||||
|   if(target!=GL_TEXTURE_2D) | ||||
|     return; | ||||
|  | ||||
|   if(!tObj->DriverData) | ||||
|   if (!tObj->DriverData) | ||||
|     tObj->DriverData=fxAllocTexObjData(fxMesa); | ||||
|  | ||||
|   ti=(tfxTexInfo *)tObj->DriverData; | ||||
|   ti=fxTMGetTexInfo(tObj); | ||||
|  | ||||
|   switch(pname) { | ||||
|  | ||||
| @@ -219,7 +267,6 @@ void fxDDTexParam(GLcontext *ctx, GLenum target, struct gl_texture_object *tObj, | ||||
|       ti->sClamp=GR_TEXTURECLAMP_WRAP; | ||||
|       break; | ||||
|     default: | ||||
|        fprintf(stderr, "BAD CLAMP\n"); | ||||
|       break; | ||||
|     } | ||||
|     fxMesa->new_state|=FX_NEW_TEXTURING; | ||||
| @@ -266,7 +313,7 @@ void fxDDTexParam(GLcontext *ctx, GLenum target, struct gl_texture_object *tObj, | ||||
| void fxDDTexDel(GLcontext *ctx, struct gl_texture_object *tObj) | ||||
| { | ||||
|   fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; | ||||
|   tfxTexInfo *ti=(tfxTexInfo *)tObj->DriverData; | ||||
|   tfxTexInfo *ti=fxTMGetTexInfo(tObj); | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: fxDDTexDel(%d,%x)\n",tObj->Name,(GLuint)ti); | ||||
| @@ -309,10 +356,10 @@ void fxDDTexPalette(GLcontext *ctx, struct gl_texture_object *tObj) | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     if(!tObj->DriverData) | ||||
|     if (!tObj->DriverData) | ||||
|       tObj->DriverData=fxAllocTexObjData(fxMesa); | ||||
|    | ||||
|     ti=(tfxTexInfo *)tObj->DriverData; | ||||
|     ti=fxTMGetTexInfo(tObj); | ||||
|  | ||||
|     for(i=0;i<tObj->PaletteSize;i++) { | ||||
|       r=tObj->Palette[i*4]; | ||||
| @@ -374,13 +421,10 @@ void fxDDTexUseGlbPalette(GLcontext *ctx, GLboolean state) | ||||
|     if((ctx->Texture.Unit[0].Current==ctx->Texture.Unit[0].CurrentD[2]) && | ||||
|        (ctx->Texture.Unit[0].Current!=NULL)) { | ||||
|       struct gl_texture_object *tObj=ctx->Texture.Unit[0].Current; | ||||
|       tfxTexInfo *ti; | ||||
|  | ||||
|       if(!tObj->DriverData) | ||||
|       if (!tObj->DriverData) | ||||
|         tObj->DriverData=fxAllocTexObjData(fxMesa); | ||||
|    | ||||
|       ti=(tfxTexInfo *)tObj->DriverData; | ||||
|  | ||||
|       fxTexInvalidate(ctx,tObj); | ||||
|     } | ||||
|   } | ||||
| @@ -872,10 +916,10 @@ static void fxTexBuildImageMap(const struct gl_texture_image *image, | ||||
|  | ||||
|     if(wscale==hscale==1) { | ||||
|       int i=0; | ||||
|       int lenght=h*w; | ||||
|       int length=h*w; | ||||
|       unsigned short a,l; | ||||
|  | ||||
|       while(i++<lenght) { | ||||
|       while(i++<length) { | ||||
|         l=*data++; | ||||
|         a=*data++; | ||||
|  | ||||
| @@ -916,10 +960,10 @@ static void fxTexBuildImageMap(const struct gl_texture_image *image, | ||||
|  | ||||
|     if(wscale==hscale==1) { | ||||
|       int i=0; | ||||
|       int lenght=h*w; | ||||
|       int length=h*w; | ||||
|       unsigned short r,g,b; | ||||
|  | ||||
|       while(i++<lenght) { | ||||
|       while(i++<length) { | ||||
|         r=*data++; | ||||
|         g=*data++; | ||||
|         b=*data++; | ||||
| @@ -966,10 +1010,10 @@ static void fxTexBuildImageMap(const struct gl_texture_image *image, | ||||
|  | ||||
|     if(wscale==hscale==1) { | ||||
|       int i=0; | ||||
|       int lenght=h*w; | ||||
|       int length=h*w; | ||||
|       unsigned short r,g,b,a; | ||||
|  | ||||
|       while(i++<lenght) { | ||||
|       while(i++<length) { | ||||
|         r=*data++; | ||||
|         g=*data++; | ||||
|         b=*data++; | ||||
| @@ -1014,21 +1058,23 @@ void fxDDTexImg(GLcontext *ctx, GLenum target, | ||||
|   tfxTexInfo *ti; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: (%d) fxDDTexImg(...,%d,%x,%d,%d...)\n",tObj->Name, | ||||
| 	     target,internalFormat,image->Width,image->Height); | ||||
|      fprintf(stderr, | ||||
| 	     "fxmesa: (%d) fxDDTexImg(...,level=%d,target=%d,format=%x,width=%d,height=%d...)\n", | ||||
| 	     tObj->Name, level, target, internalFormat, image->Width, | ||||
| 	     image->Height); | ||||
|   } | ||||
|  | ||||
|   if(target!=GL_TEXTURE_2D) | ||||
|     return; | ||||
|  | ||||
|   if(!tObj->DriverData) | ||||
|   if (!tObj->DriverData) | ||||
|     tObj->DriverData=fxAllocTexObjData(fxMesa); | ||||
|  | ||||
|   ti=(tfxTexInfo *)tObj->DriverData; | ||||
|   ti=fxTMGetTexInfo(tObj); | ||||
|  | ||||
|   if(fxIsTexSupported(target,internalFormat,image)) { | ||||
|     GrTextureFormat_t gldformat; | ||||
|     tfxMipMapLevel *mml=&ti->tmi.mipmapLevel[level]; | ||||
|     tfxMipMapLevel *mml=&ti->mipmapLevel[level]; | ||||
|  | ||||
|     fxTexGetFormat(internalFormat,&gldformat,NULL); | ||||
|      | ||||
| @@ -1039,7 +1085,7 @@ void fxDDTexImg(GLcontext *ctx, GLenum target, | ||||
|         fxTexBuildImageMap(image,internalFormat,&(mml->data), | ||||
|                            &(mml->translated)); | ||||
|  | ||||
|         if(ti->validated && ti->tmi.isInTM) | ||||
|         if(ti->validated && ti->isInTM) | ||||
|           fxTMReloadMipMapLevel(fxMesa,tObj,level); | ||||
|         else | ||||
|           fxTexInvalidate(ctx,tObj); | ||||
| @@ -1239,18 +1285,20 @@ void fxDDTexSubImg(GLcontext *ctx, GLenum target, | ||||
|   tfxMipMapLevel *mml; | ||||
|  | ||||
|   if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|      fprintf(stderr,"fxmesa: (%d) fxDDTexSubImg(...,%d,%x,%d,%d...)\n",tObj->Name, | ||||
| 	     target,internalFormat,image->Width,image->Height); | ||||
|      fprintf(stderr, | ||||
| 	     "fxmesa: (%d) fxDDTexSubImg(level=%d,target=%d,format=%x,width=%d,height=%d)\n", | ||||
| 	     tObj->Name, level, target, internalFormat, image->Width, | ||||
| 	     image->Height); | ||||
|   } | ||||
|  | ||||
|   if(target!=GL_TEXTURE_2D) | ||||
|     return; | ||||
|  | ||||
|   if(!tObj->DriverData) | ||||
|   if (!tObj->DriverData) | ||||
|     return; | ||||
|  | ||||
|   ti=(tfxTexInfo *)tObj->DriverData; | ||||
|   mml=&ti->tmi.mipmapLevel[level]; | ||||
|   ti=fxTMGetTexInfo(tObj); | ||||
|   mml=&ti->mipmapLevel[level]; | ||||
|  | ||||
|   fxTexGetFormat(internalFormat,&gldformat,NULL); | ||||
|  | ||||
| @@ -1278,7 +1326,7 @@ void fxDDTexSubImg(GLcontext *ctx, GLenum target, | ||||
|     fxTexBuildSubImageMap(image,internalFormat,xoffset,yoffset, | ||||
|                           width,height,mml->data); | ||||
|  | ||||
|   if(ti->validated && ti->tmi.isInTM) | ||||
|   if(ti->validated && ti->isInTM) | ||||
|     fxTMReloadSubMipMapLevel(fxMesa,tObj,level,yoffset,height); | ||||
|   else | ||||
|     fxTexInvalidate(ctx,tObj); | ||||
|   | ||||
| @@ -1,27 +1,48 @@ | ||||
| /* -*- mode: C; tab-width:8;  -*- | ||||
|  | ||||
|              fxdrv.h - 3Dfx VooDoo driver types | ||||
| */ | ||||
| /* -*- mode: C; tab-width:8; c-basic-offset:2 -*- */ | ||||
|  | ||||
| /* | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * See the file fxapi.c for more informations about authors | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  * | ||||
|  * | ||||
|  * Original Mesa / 3Dfx device driver (C) 1999 David Bucciarelli, by the | ||||
|  * terms stated above. | ||||
|  * | ||||
|  * Thank you for your contribution, David! | ||||
|  * | ||||
|  * Please make note of the above copyright/license statement.  If you | ||||
|  * contributed code or bug fixes to this code under the previous (GNU | ||||
|  * Library) license and object to the new license, your code will be | ||||
|  * removed at your request.  Please see the Mesa docs/COPYRIGHT file | ||||
|  * for more information. | ||||
|  * | ||||
|  * Additional Mesa/3Dfx driver developers: | ||||
|  *   Daryll Strauss <daryll@precisioninsight.com> | ||||
|  *   Keith Whitwell <keith@precisioninsight.com> | ||||
|  * | ||||
|  * See fxapi.h for more revision/author details. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef FXDRV_H | ||||
| #define FXDRV_H | ||||
|  | ||||
| @@ -54,14 +75,18 @@ | ||||
| #include "clip.h" | ||||
| #include "vbrender.h" | ||||
|  | ||||
| #ifdef XF86DRI | ||||
| typedef struct tfxMesaContext *fxMesaContext; | ||||
| #else | ||||
| #include "GL/fxmesa.h" | ||||
| #endif | ||||
| #include "fxglidew.h" | ||||
| /* use gl/gl.h GLAPI/GLAPIENTRY/GLCALLBACK in place of WINGDIAPI/APIENTRY/CALLBACK, */ | ||||
| /* these are defined in mesa gl/gl.h - tjump@spgs.com */ | ||||
|  | ||||
|  | ||||
|  | ||||
| #if 0 | ||||
| #if defined(MESA_DEBUG) && 0 | ||||
| extern void fx_sanity_triangle( GrVertex *, GrVertex *, GrVertex * ); | ||||
| #define grDrawTriangle fx_sanity_triangle | ||||
| #endif | ||||
| @@ -140,17 +165,17 @@ typedef struct { | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
| #define FX_VB_COLOR(fxm, color)			\ | ||||
| do {						\ | ||||
|   if (sizeof(GLint) == 4*sizeof(GLubyte)) {	\ | ||||
|      if (fxm->constColor != *(GLuint*)color) {	\ | ||||
| 	fxm->constColor = *(GLuint*)color;	\ | ||||
| 	grConstantColorValue(FXCOLOR4(color));	\ | ||||
|      }						\ | ||||
|   } else {					\ | ||||
|      grConstantColorValue(FXCOLOR4(color));	\ | ||||
|   }						\ | ||||
| } while (0) | ||||
| #define FX_VB_COLOR(fxm, color)				\ | ||||
|   do {							\ | ||||
|     if (sizeof(GLint) == 4*sizeof(GLubyte)) {		\ | ||||
|       if (fxm->constColor != *(GLuint*)color) {		\ | ||||
| 	fxm->constColor = *(GLuint*)color;		\ | ||||
| 	FX_grConstantColorValue(FXCOLOR4(color));	\ | ||||
|       }							\ | ||||
|     } else {						\ | ||||
|       FX_grConstantColorValue(FXCOLOR4(color));		\ | ||||
|     }							\ | ||||
|   } while (0) | ||||
|  | ||||
| #define GOURAUD(x) {					\ | ||||
|   GLubyte *col = VB->ColorPtr->data[(x)];		\ | ||||
| @@ -230,23 +255,20 @@ do {						\ | ||||
|  | ||||
| #define FX_UM_E_IFMT                0x00fff000 | ||||
|  | ||||
| #define FX_UM_COLOR_ITERATED        0x00100000 | ||||
| #define FX_UM_COLOR_CONSTANT        0x00200000 | ||||
| #define FX_UM_ALPHA_ITERATED        0x00400000 | ||||
| #define FX_UM_ALPHA_CONSTANT        0x00800000 | ||||
| #define FX_UM_COLOR_ITERATED        0x01000000 | ||||
| #define FX_UM_COLOR_CONSTANT        0x02000000 | ||||
| #define FX_UM_ALPHA_ITERATED        0x04000000 | ||||
| #define FX_UM_ALPHA_CONSTANT        0x08000000 | ||||
|  | ||||
| typedef void (*tfxRenderVBFunc)(GLcontext *); | ||||
|  | ||||
| typedef struct tfxTMFreeListNode { | ||||
|   struct tfxTMFreeListNode *next; | ||||
|   FxU32 startAddress, endAddress; | ||||
| } tfxTMFreeNode; | ||||
|  | ||||
| typedef struct tfxTMAllocListNode { | ||||
|   struct tfxTMAllocListNode *next; | ||||
|   FxU32 startAddress, endAddress; | ||||
|   struct gl_texture_object *tObj; | ||||
| } tfxTMAllocNode; | ||||
| /* | ||||
|   Memory range from startAddr to endAddr-1 | ||||
| */ | ||||
| typedef struct MemRange_t { | ||||
|   struct MemRange_t *next; | ||||
|   FxU32 startAddr, endAddr; | ||||
| } MemRange; | ||||
|  | ||||
| typedef struct { | ||||
|   GLsizei width, height; | ||||
| @@ -256,19 +278,17 @@ typedef struct { | ||||
|   GLboolean translated, used; | ||||
| } tfxMipMapLevel; | ||||
|  | ||||
| typedef struct { | ||||
| typedef struct tfxTexInfo_t { | ||||
|   struct tfxTexInfo *next; | ||||
|   struct gl_texture_object *tObj; | ||||
|  | ||||
|   GLuint lastTimeUsed; | ||||
|  | ||||
|   FxU32 whichTMU; | ||||
|  | ||||
|   tfxTMAllocNode *tm[FX_NUM_TMU]; | ||||
|   GLboolean isInTM; | ||||
|  | ||||
|   tfxMipMapLevel mipmapLevel[MAX_TEXTURE_LEVELS]; | ||||
|   GLboolean isInTM; | ||||
| } tfxTMInfo; | ||||
|  | ||||
| typedef struct { | ||||
|   tfxTMInfo tmi; | ||||
|   MemRange *tm[FX_NUM_TMU]; | ||||
|  | ||||
|   GLint minLevel, maxLevel; | ||||
|   GLint baseLevelInternalFormat; | ||||
| @@ -384,14 +404,27 @@ struct tfxMesaVertexBuffer { | ||||
|  | ||||
| #define FX_DRIVER_DATA(vb) ((struct tfxMesaVertexBuffer *)((vb)->driver_data)) | ||||
| #define FX_CONTEXT(ctx) ((fxMesaContext)((ctx)->DriverCtx)) | ||||
| #define FX_TEXTURE_DATA(t) ((tfxTexInfo *) ((t)->Current->DriverData)) | ||||
| #define FX_TEXTURE_DATA(t) fxTMGetTexInfo((t)->Current) | ||||
|  | ||||
| #if defined(XFree86Server) || defined(GLX_DIRECT_RENDERING) | ||||
| #include "tdfx_init.h" | ||||
| #else | ||||
| #define DRI_FX_CONTEXT | ||||
| #define BEGIN_BOARD_LOCK() | ||||
| #define END_BOARD_LOCK() | ||||
| #define BEGIN_CLIP_LOOP() | ||||
| #define END_CLIP_LOOP() | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* These lookup table are used to extract RGB values in [0,255] from | ||||
|  * 16-bit pixel values. | ||||
|  */ | ||||
| extern GLubyte FX_PixelToR[0x10000]; | ||||
| extern GLubyte FX_PixelToG[0x10000]; | ||||
| extern GLubyte FX_PixelToB[0x10000]; | ||||
|  | ||||
|  | ||||
| struct tfxMesaContext { | ||||
|   GuTexPalette glbPalette; | ||||
|  | ||||
| @@ -404,6 +437,7 @@ struct tfxMesaContext { | ||||
|  | ||||
|   GrBuffer_t currentFB; | ||||
|  | ||||
|   GLboolean bgrOrder; | ||||
|   GrColor_t color; | ||||
|   GrColor_t clearC; | ||||
|   GrAlpha_t clearA; | ||||
| @@ -412,7 +446,6 @@ struct tfxMesaContext { | ||||
|   tfxUnitsState unitsState; | ||||
|   tfxUnitsState restoreUnitsState; /* saved during multipass */ | ||||
|  | ||||
|  | ||||
|   GLuint tmu_source[FX_NUM_TMU]; | ||||
|   GLuint tex_dest[MAX_TEXTURE_UNITS]; | ||||
|   GLuint setupindex; | ||||
| @@ -438,11 +471,12 @@ struct tfxMesaContext { | ||||
|   GLint tmuSrc; | ||||
|   GLuint lastUnitsMode; | ||||
|   GLuint freeTexMem[FX_NUM_TMU]; | ||||
|   tfxTMFreeNode *tmFree[FX_NUM_TMU]; | ||||
|   tfxTMAllocNode *tmAlloc[FX_NUM_TMU]; | ||||
|   MemRange *tmPool; | ||||
|   MemRange *tmFree[FX_NUM_TMU]; | ||||
|  | ||||
|   GLenum fogTableMode; | ||||
|   GLfloat fogDensity; | ||||
|   GLfloat fogStart, fogEnd; | ||||
|   GrFog_t *fogTable; | ||||
|  | ||||
|   /* Acc. functions */ | ||||
| @@ -477,10 +511,19 @@ struct tfxMesaContext { | ||||
|    | ||||
|   FX_GrContext_t glideContext; | ||||
|  | ||||
|   GLfloat wscale; | ||||
|   int x_offset; | ||||
|   int y_offset; | ||||
|   int y_delta; | ||||
|   int screen_width; | ||||
|   int screen_height; | ||||
|   int initDone; | ||||
|   int clipMinX; | ||||
|   int clipMaxX; | ||||
|   int clipMinY; | ||||
|   int clipMaxY; | ||||
|   int needClip; | ||||
|  | ||||
|   DRI_FX_CONTEXT | ||||
|  | ||||
| }; | ||||
|  | ||||
| typedef void (*tfxSetupFunc)(struct vertex_buffer *, GLuint, GLuint); | ||||
| @@ -522,6 +565,7 @@ extern void fxSetupDDSpanPointers(GLcontext *); | ||||
|  | ||||
| extern void fxDDBufferSize(GLcontext *, GLuint *, GLuint *); | ||||
|  | ||||
| extern void fxPrintTextureData(tfxTexInfo *ti); | ||||
| extern void fxDDTexEnv(GLcontext *, GLenum, const GLfloat *); | ||||
| extern void fxDDTexImg(GLcontext *, GLenum, struct gl_texture_object *, | ||||
| 		       GLint, GLint, const struct gl_texture_image *); | ||||
| @@ -571,10 +615,12 @@ extern void fxDDRenderVBIndirectDirect( struct vertex_buffer *VB ); | ||||
|  | ||||
| extern void fxDDInitExtensions( GLcontext *ctx ); | ||||
|  | ||||
| #define fxTMGetTexInfo(o) ((tfxTexInfo*)((o)->DriverData)) | ||||
| extern void fxTMInit(fxMesaContext ctx); | ||||
| extern void fxTMClose(fxMesaContext ctx); | ||||
| extern void fxTMMoveInTM(fxMesaContext, struct gl_texture_object *, GLint); | ||||
| extern void fxTMMoveOutTM(fxMesaContext, struct gl_texture_object *); | ||||
| #define fxTMMoveOutTM_NoLock fxTMMoveOutTM | ||||
| extern void fxTMFreeTexture(fxMesaContext, struct gl_texture_object *); | ||||
| extern void fxTMReloadMipMapLevel(fxMesaContext, struct gl_texture_object *, GLint); | ||||
| extern void fxTMReloadSubMipMapLevel(fxMesaContext, struct gl_texture_object *, | ||||
| @@ -622,4 +668,11 @@ extern void fxDDDoRenderVB( struct vertex_buffer *VB ); | ||||
|  | ||||
| extern int fxDDInitFxMesaContext( fxMesaContext fxMesa ); | ||||
|  | ||||
|  | ||||
| extern void fxSetScissorValues(GLcontext *ctx); | ||||
| extern void fxTMMoveInTM_NoLock(fxMesaContext fxMesa,  | ||||
| 				struct gl_texture_object *tObj,  | ||||
| 				GLint where); | ||||
| extern void fxInitPixelTables(fxMesaContext fxMesa, GLboolean bgrOrder); | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -1,28 +1,47 @@ | ||||
| /* $Id: fxglidew.c,v 1.3 1999/10/05 19:26:54 miklos Exp $ */ | ||||
| /* -*- mode: C; tab-width:8; c-basic-offset:2 -*- */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  *  | ||||
|  * | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  *  | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  *  | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  * | ||||
|  * | ||||
|  * Original Mesa / 3Dfx device driver (C) 1999 David Bucciarelli, by the | ||||
|  * terms stated above. | ||||
|  * | ||||
|  * Thank you for your contribution, David! | ||||
|  * | ||||
|  * Please make note of the above copyright/license statement.  If you | ||||
|  * contributed code or bug fixes to this code under the previous (GNU | ||||
|  * Library) license and object to the new license, your code will be | ||||
|  * removed at your request.  Please see the Mesa docs/COPYRIGHT file | ||||
|  * for more information. | ||||
|  * | ||||
|  * Additional Mesa/3Dfx driver developers: | ||||
|  *   Daryll Strauss <daryll@precisioninsight.com> | ||||
|  *   Keith Whitwell <keith@precisioninsight.com> | ||||
|  * | ||||
|  * See fxapi.h for more revision/author details. | ||||
|  */ | ||||
|  | ||||
|   | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| @@ -36,8 +55,7 @@ | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
|  | ||||
|  | ||||
| FxI32 FX_grGetInteger(FxU32 pname) | ||||
| static FxI32 FX_grGetInteger_NoLock(FxU32 pname) | ||||
| { | ||||
| #if !defined(FX_GLIDE3) | ||||
|   switch (pname)  | ||||
| @@ -49,7 +67,7 @@ FxI32 FX_grGetInteger(FxU32 pname) | ||||
|     case FX_LFB_PIXEL_PIPE: | ||||
|        return FXFALSE; | ||||
|     case FX_PENDING_BUFFERSWAPS: | ||||
|        return grBufferNumPending(); | ||||
| 	return grBufferNumPending(); | ||||
|     default: | ||||
|        if (MESA_VERBOSE&VERBOSE_DRIVER) { | ||||
|           fprintf(stderr,"Wrong parameter in FX_grGetInteger!\n"); | ||||
| @@ -74,12 +92,74 @@ FxI32 FX_grGetInteger(FxU32 pname) | ||||
|        } | ||||
|        return -1; | ||||
|   } | ||||
|    | ||||
|  | ||||
|   grGet(grname,4,&result); | ||||
|   return result; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| FxI32 FX_grGetInteger(FxU32 pname) | ||||
| { | ||||
|   int result; | ||||
|  | ||||
|   BEGIN_BOARD_LOCK(); | ||||
|   result=FX_grGetInteger_NoLock(pname); | ||||
|   END_BOARD_LOCK(); | ||||
|   return result; | ||||
| } | ||||
|  | ||||
|  | ||||
| FxBool FX_grLfbLock(GrLock_t type, GrBuffer_t buffer,  | ||||
| 		    GrLfbWriteMode_t writeMode, GrOriginLocation_t origin,  | ||||
| 		    FxBool pixelPipeline, GrLfbInfo_t *info ) { | ||||
|   FxBool result; | ||||
|  | ||||
|   BEGIN_BOARD_LOCK(); | ||||
|   result=grLfbLock(type, buffer, writeMode, origin, pixelPipeline, info); | ||||
|   END_BOARD_LOCK(); | ||||
|   return result; | ||||
| } | ||||
|  | ||||
| FxU32 FX_grTexTextureMemRequired(FxU32 evenOdd, GrTexInfo *info) { | ||||
|   FxU32 result; | ||||
|  | ||||
|   BEGIN_BOARD_LOCK(); | ||||
|   result=grTexTextureMemRequired(evenOdd, info); | ||||
|   END_BOARD_LOCK(); | ||||
|   return result; | ||||
| } | ||||
|  | ||||
| FxU32 FX_grTexMinAddress(GrChipID_t tmu) { | ||||
|   FxU32 result; | ||||
|  | ||||
|   BEGIN_BOARD_LOCK(); | ||||
|   result=grTexMinAddress(tmu); | ||||
|   END_BOARD_LOCK(); | ||||
|   return result; | ||||
| } | ||||
|  | ||||
| extern FxU32 FX_grTexMaxAddress(GrChipID_t tmu) { | ||||
|   FxU32 result; | ||||
|  | ||||
|   BEGIN_BOARD_LOCK(); | ||||
|   result=grTexMaxAddress(tmu); | ||||
|   END_BOARD_LOCK(); | ||||
|   return result; | ||||
| } | ||||
|  | ||||
| FxBool FX_grSstControl(FxU32 code) | ||||
| { | ||||
| #if defined(FX_GLIDE3) | ||||
|   (void) code; | ||||
|   return 1;  /* OK? */ | ||||
| #else | ||||
|   FxU32 result; | ||||
|   BEGIN_BOARD_LOCK(); | ||||
|   result = grSstControl(code); | ||||
|   END_BOARD_LOCK(); | ||||
|   return result; | ||||
| #endif | ||||
| } | ||||
|  | ||||
|  | ||||
| #if defined(FX_GLIDE3) | ||||
| @@ -90,39 +170,33 @@ void FX_grGammaCorrectionValue(float val) | ||||
| /* ToDo */ | ||||
| } | ||||
|  | ||||
| void FX_grSstControl(int par) | ||||
| { | ||||
|   (void)par; | ||||
|   /* ToDo */ | ||||
| } | ||||
| int FX_getFogTableSize(void) | ||||
| { | ||||
|    int result; | ||||
|    BEGIN_BOARD_LOCK(); | ||||
|    grGet(GR_FOG_TABLE_ENTRIES,sizeof(int),(void*)&result); | ||||
|    END_BOARD_LOCK(); | ||||
|    return result;  | ||||
| } | ||||
|  | ||||
| int FX_getGrStateSize(void) | ||||
| { | ||||
|    int result; | ||||
|    BEGIN_BOARD_LOCK(); | ||||
|    grGet(GR_GLIDE_STATE_SIZE,sizeof(int),(void*)&result); | ||||
|     | ||||
|    END_BOARD_LOCK(); | ||||
|  | ||||
|    return result; | ||||
|     | ||||
| } | ||||
| int FX_grBufferNumPending() | ||||
| { | ||||
|    int result; | ||||
|    grGet(GR_PENDING_BUFFERSWAPS,sizeof(int),(void*)&result); | ||||
|     | ||||
|    return result; | ||||
| } | ||||
|  | ||||
| int FX_grSstScreenWidth() | ||||
| { | ||||
|    FxI32 result[4]; | ||||
|     | ||||
|  | ||||
|    BEGIN_BOARD_LOCK(); | ||||
|    grGet(GR_VIEWPORT,sizeof(FxI32)*4,result); | ||||
|    END_BOARD_LOCK(); | ||||
|     | ||||
|    return result[2]; | ||||
| } | ||||
| @@ -130,15 +204,19 @@ int FX_grSstScreenWidth() | ||||
| int FX_grSstScreenHeight() | ||||
| { | ||||
|    FxI32 result[4]; | ||||
|     | ||||
|  | ||||
|    BEGIN_BOARD_LOCK(); | ||||
|    grGet(GR_VIEWPORT,sizeof(FxI32)*4,result); | ||||
|    END_BOARD_LOCK(); | ||||
|     | ||||
|    return result[3]; | ||||
| } | ||||
|  | ||||
| void FX_grGlideGetVersion(char *buf) | ||||
| { | ||||
|    strcpy(buf,grGetString(GR_VERSION)); | ||||
|   BEGIN_BOARD_LOCK(); | ||||
|   strcpy(buf,grGetString(GR_VERSION)); | ||||
|   END_BOARD_LOCK(); | ||||
| } | ||||
|  | ||||
| void FX_grSstPerfStats(GrSstPerfStats_t *st) | ||||
| @@ -154,74 +232,91 @@ void FX_grSstPerfStats(GrSstPerfStats_t *st) | ||||
| void FX_grAADrawLine(GrVertex *a,GrVertex *b) | ||||
| { | ||||
|    /* ToDo */ | ||||
|    BEGIN_CLIP_LOOP(); | ||||
|    grDrawLine(a,b); | ||||
|    END_CLIP_LOOP(); | ||||
| } | ||||
|  | ||||
| void FX_grAADrawPoint(GrVertex *a) | ||||
| { | ||||
|   BEGIN_CLIP_LOOP(); | ||||
|   grDrawPoint(a); | ||||
|   END_CLIP_LOOP(); | ||||
| } | ||||
|  | ||||
| #if FX_USE_PARGB | ||||
| void FX_setupGrVertexLayout(void) | ||||
| { | ||||
|    grReset(GR_VERTEX_PARAMETER); | ||||
|   BEGIN_BOARD_LOCK(); | ||||
|   grReset(GR_VERTEX_PARAMETER); | ||||
|     | ||||
|    grCoordinateSpace(GR_WINDOW_COORDS); | ||||
|    grVertexLayout(GR_PARAM_XY,  	GR_VERTEX_X_OFFSET << 2, 	GR_PARAM_ENABLE); | ||||
|    grVertexLayout(GR_PARAM_PARGB, 	GR_VERTEX_PARGB_OFFSET << 2, 	GR_PARAM_ENABLE); | ||||
|    grVertexLayout(GR_PARAM_Q,		GR_VERTEX_OOW_OFFSET << 2,	GR_PARAM_ENABLE); | ||||
|    grVertexLayout(GR_PARAM_Z,           GR_VERTEX_OOZ_OFFSET << 2, 	GR_PARAM_ENABLE); | ||||
|    grVertexLayout(GR_PARAM_ST0, 	GR_VERTEX_SOW_TMU0_OFFSET << 2, GR_PARAM_ENABLE);	 | ||||
|    grVertexLayout(GR_PARAM_Q0,  	GR_VERTEX_OOW_TMU0_OFFSET << 2, GR_PARAM_DISABLE);  | ||||
|    grVertexLayout(GR_PARAM_ST1, 	GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE);	 | ||||
|    grVertexLayout(GR_PARAM_Q1,  	GR_VERTEX_OOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE);	 | ||||
|   grCoordinateSpace(GR_WINDOW_COORDS); | ||||
|   grVertexLayout(GR_PARAM_XY, GR_VERTEX_X_OFFSET << 2, GR_PARAM_ENABLE); | ||||
|   grVertexLayout(GR_PARAM_PARGB, GR_VERTEX_PARGB_OFFSET << 2, GR_PARAM_ENABLE); | ||||
|   grVertexLayout(GR_PARAM_Q, GR_VERTEX_OOW_OFFSET << 2, GR_PARAM_ENABLE); | ||||
|   grVertexLayout(GR_PARAM_Z, GR_VERTEX_OOZ_OFFSET << 2, GR_PARAM_ENABLE); | ||||
|   grVertexLayout(GR_PARAM_ST0, GR_VERTEX_SOW_TMU0_OFFSET << 2, GR_PARAM_ENABLE);	 | ||||
|   grVertexLayout(GR_PARAM_Q0, GR_VERTEX_OOW_TMU0_OFFSET << 2, GR_PARAM_DISABLE);  | ||||
|   grVertexLayout(GR_PARAM_ST1, GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE);	 | ||||
|   grVertexLayout(GR_PARAM_Q1, GR_VERTEX_OOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE);	 | ||||
|   END_BOARD_LOCK(); | ||||
| } | ||||
| #else /* FX_USE_PARGB */ | ||||
| void FX_setupGrVertexLayout(void) | ||||
| { | ||||
|    grReset(GR_VERTEX_PARAMETER); | ||||
|   BEGIN_BOARD_LOCK(); | ||||
|   grReset(GR_VERTEX_PARAMETER); | ||||
|     | ||||
|    grCoordinateSpace(GR_WINDOW_COORDS); | ||||
|    grVertexLayout(GR_PARAM_XY,  	GR_VERTEX_X_OFFSET << 2, 	GR_PARAM_ENABLE); | ||||
|    grVertexLayout(GR_PARAM_RGB, 	GR_VERTEX_R_OFFSET << 2, 	GR_PARAM_ENABLE); | ||||
|  /*  grVertexLayout(GR_PARAM_Z,   	GR_VERTEX_Z_OFFSET << 2, 	GR_PARAM_ENABLE); */ | ||||
|    grVertexLayout(GR_PARAM_A,   	GR_VERTEX_A_OFFSET << 2, 	GR_PARAM_ENABLE); | ||||
|    grVertexLayout(GR_PARAM_Q,		GR_VERTEX_OOW_OFFSET << 2,	GR_PARAM_ENABLE); | ||||
|    grVertexLayout(GR_PARAM_Z,           GR_VERTEX_OOZ_OFFSET << 2, 	GR_PARAM_ENABLE); | ||||
|    grVertexLayout(GR_PARAM_ST0, 	GR_VERTEX_SOW_TMU0_OFFSET << 2, GR_PARAM_ENABLE);	 | ||||
|    grVertexLayout(GR_PARAM_Q0,  	GR_VERTEX_OOW_TMU0_OFFSET << 2, GR_PARAM_DISABLE);  | ||||
|    grVertexLayout(GR_PARAM_ST1, 	GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE);	 | ||||
|    grVertexLayout(GR_PARAM_Q1,  	GR_VERTEX_OOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE);	 | ||||
|   grCoordinateSpace(GR_WINDOW_COORDS); | ||||
|   grVertexLayout(GR_PARAM_XY, GR_VERTEX_X_OFFSET << 2, GR_PARAM_ENABLE); | ||||
|   grVertexLayout(GR_PARAM_RGB, GR_VERTEX_R_OFFSET << 2, GR_PARAM_ENABLE); | ||||
|   grVertexLayout(GR_PARAM_A, GR_VERTEX_A_OFFSET << 2, GR_PARAM_ENABLE); | ||||
|   grVertexLayout(GR_PARAM_Q, GR_VERTEX_OOW_OFFSET << 2, GR_PARAM_ENABLE); | ||||
|   grVertexLayout(GR_PARAM_Z, GR_VERTEX_OOZ_OFFSET << 2,	GR_PARAM_ENABLE); | ||||
|   grVertexLayout(GR_PARAM_ST0, GR_VERTEX_SOW_TMU0_OFFSET << 2, GR_PARAM_ENABLE);	 | ||||
|   grVertexLayout(GR_PARAM_Q0, GR_VERTEX_OOW_TMU0_OFFSET << 2, GR_PARAM_DISABLE); | ||||
|   grVertexLayout(GR_PARAM_ST1, GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE);	 | ||||
|   grVertexLayout(GR_PARAM_Q1, GR_VERTEX_OOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE); | ||||
|   END_BOARD_LOCK(); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| void FX_grHints(GrHint_t hintType, FxU32 hintMask) | ||||
| void FX_grHints_NoLock(GrHint_t hintType, FxU32 hintMask) | ||||
| { | ||||
|    switch(hintType) { | ||||
|       case GR_HINT_STWHINT: | ||||
|       { | ||||
|         if (hintMask & GR_STWHINT_W_DIFF_TMU0) | ||||
|            grVertexLayout(GR_PARAM_Q0, GR_VERTEX_OOW_TMU0_OFFSET << 2, 	GR_PARAM_ENABLE); | ||||
|         else | ||||
|            grVertexLayout(GR_PARAM_Q0,GR_VERTEX_OOW_TMU0_OFFSET << 2, 	GR_PARAM_DISABLE); | ||||
|             | ||||
|         if (hintMask & GR_STWHINT_ST_DIFF_TMU1) | ||||
|             grVertexLayout(GR_PARAM_ST1,GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_ENABLE); | ||||
|         else | ||||
|             grVertexLayout(GR_PARAM_ST1,GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE); | ||||
|   switch(hintType) { | ||||
|   case GR_HINT_STWHINT: | ||||
|     { | ||||
|       if (hintMask & GR_STWHINT_W_DIFF_TMU0) | ||||
| 	grVertexLayout(GR_PARAM_Q0, GR_VERTEX_OOW_TMU0_OFFSET << 2, 	GR_PARAM_ENABLE); | ||||
|       else | ||||
| 	grVertexLayout(GR_PARAM_Q0,GR_VERTEX_OOW_TMU0_OFFSET << 2, 	GR_PARAM_DISABLE); | ||||
|        | ||||
|       if (hintMask & GR_STWHINT_ST_DIFF_TMU1) | ||||
| 	grVertexLayout(GR_PARAM_ST1,GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_ENABLE); | ||||
|       else | ||||
| 	grVertexLayout(GR_PARAM_ST1,GR_VERTEX_SOW_TMU1_OFFSET << 2, GR_PARAM_DISABLE); | ||||
|          | ||||
|         if (hintMask & GR_STWHINT_W_DIFF_TMU1) | ||||
|             grVertexLayout(GR_PARAM_Q1,GR_VERTEX_OOW_TMU1_OFFSET << 2,	GR_PARAM_ENABLE); | ||||
|         else | ||||
|             grVertexLayout(GR_PARAM_Q1,GR_VERTEX_OOW_TMU1_OFFSET << 2,	GR_PARAM_DISABLE); | ||||
|       	 | ||||
|       } | ||||
|    } | ||||
|       if (hintMask & GR_STWHINT_W_DIFF_TMU1) | ||||
| 	grVertexLayout(GR_PARAM_Q1,GR_VERTEX_OOW_TMU1_OFFSET << 2,	GR_PARAM_ENABLE); | ||||
|       else | ||||
| 	grVertexLayout(GR_PARAM_Q1,GR_VERTEX_OOW_TMU1_OFFSET << 2,	GR_PARAM_DISABLE); | ||||
|        | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| void FX_grHints(GrHint_t hintType, FxU32 hintMask) { | ||||
|   BEGIN_BOARD_LOCK(); | ||||
|   FX_grHints_NoLock(hintType, hintMask); | ||||
|   END_BOARD_LOCK(); | ||||
| } | ||||
|  | ||||
| int FX_grSstQueryHardware(GrHwConfiguration *config) | ||||
| { | ||||
|    int i,j; | ||||
|    int numFB; | ||||
|  | ||||
|    BEGIN_BOARD_LOCK(); | ||||
|    grGet(GR_NUM_BOARDS,4,(void*)&(config->num_sst)); | ||||
|    if (config->num_sst == 0) | ||||
|    	return 0; | ||||
| @@ -246,9 +341,76 @@ int FX_grSstQueryHardware(GrHwConfiguration *config) | ||||
|       	 config->SSTs[i].sstBoard.VoodooConfig.tmuConfig[j].tmuRam /= 1024*1024; | ||||
|       } | ||||
|    } | ||||
|    END_BOARD_LOCK(); | ||||
|    return 1; | ||||
| } | ||||
|  | ||||
| #else | ||||
|  | ||||
| int FX_grSstScreenWidth() | ||||
| { | ||||
|    int i; | ||||
|    BEGIN_BOARD_LOCK(); | ||||
|    i = grSstScreenWidth(); | ||||
|    END_BOARD_LOCK(); | ||||
|    return i; | ||||
| } | ||||
|  | ||||
| int FX_grSstScreenHeight() | ||||
| { | ||||
|    int i; | ||||
|    BEGIN_BOARD_LOCK(); | ||||
|    i = grSstScreenHeight(); | ||||
|    END_BOARD_LOCK(); | ||||
|    return i; | ||||
| } | ||||
|  | ||||
| int FX_grSstQueryHardware(GrHwConfiguration *c)	 | ||||
| { | ||||
|    int i; | ||||
|    BEGIN_BOARD_LOCK(); | ||||
|    i = grSstQueryHardware(c); | ||||
|    END_BOARD_LOCK(); | ||||
|    return i; | ||||
| }  | ||||
|  | ||||
| FX_GrContext_t FX_grSstWinOpen( FxU32                hWnd, | ||||
|                                 GrScreenResolution_t screen_resolution, | ||||
|                                 GrScreenRefresh_t    refresh_rate, | ||||
|                                 GrColorFormat_t      color_format, | ||||
|                                 GrOriginLocation_t   origin_location, | ||||
|                                 int                  nColBuffers, | ||||
|                                 int                  nAuxBuffers) | ||||
| { | ||||
|    FX_GrContext_t i; | ||||
|    BEGIN_BOARD_LOCK(); | ||||
|    i = grSstWinOpen( hWnd, | ||||
|                      screen_resolution, | ||||
|                      refresh_rate, | ||||
|                      color_format, | ||||
|                      origin_location, | ||||
|                      nColBuffers, | ||||
|                      nAuxBuffers ); | ||||
|     | ||||
|    /* | ||||
|    fprintf(stderr,  | ||||
|            "grSstWinOpen( win %d res %d ref %d fmt %d\n" | ||||
|            "              org %d ncol %d naux %d )\n" | ||||
|            " ==> %d\n", | ||||
|            hWnd, | ||||
|            screen_resolution, | ||||
|            refresh_rate, | ||||
|            color_format, | ||||
|            origin_location, | ||||
|            nColBuffers, | ||||
|            nAuxBuffers, | ||||
|            i); | ||||
|    */ | ||||
|    END_BOARD_LOCK(); | ||||
|    return i; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| #endif  | ||||
| #else | ||||
|   | ||||
| @@ -1,26 +1,48 @@ | ||||
| /* -*- mode: C; tab-width:8; c-basic-offset:2 -*- */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  *  | ||||
|  * | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  *  | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  *  | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  * | ||||
|  * | ||||
|  * Original Mesa / 3Dfx device driver (C) 1999 David Bucciarelli, by the | ||||
|  * terms stated above. | ||||
|  * | ||||
|  * Thank you for your contribution, David! | ||||
|  * | ||||
|  * Please make note of the above copyright/license statement.  If you | ||||
|  * contributed code or bug fixes to this code under the previous (GNU | ||||
|  * Library) license and object to the new license, your code will be | ||||
|  * removed at your request.  Please see the Mesa docs/COPYRIGHT file | ||||
|  * for more information. | ||||
|  * | ||||
|  * Additional Mesa/3Dfx driver developers: | ||||
|  *   Daryll Strauss <daryll@precisioninsight.com> | ||||
|  *   Keith Whitwell <keith@precisioninsight.com> | ||||
|  * | ||||
|  * See fxapi.h for more revision/author details. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef __FX_GLIDE_WARPER__ | ||||
| #define __FX_GLIDE_WARPER__ | ||||
|  | ||||
| @@ -201,23 +223,23 @@ typedef struct | ||||
|  | ||||
| typedef struct | ||||
| { | ||||
|   float x, y;         /* X and Y in screen space */ | ||||
|   float ooz;          /* 65535/Z (used for Z-buffering) */ | ||||
|   float oow;          /* 1/W (used for W-buffering, texturing) */ | ||||
|   float r, g, b, a;   /* R, G, B, A [0..255.0] */ | ||||
|   float z;            /* Z is ignored */ | ||||
|   float x, y, z;                /* X, Y, and Z of scrn space -- Z is ignored */ | ||||
|   float r, g, b;                /* R, G, B, ([0..255.0]) */ | ||||
|   float ooz;                    /* 65535/Z (used for Z-buffering) */ | ||||
|   float a;                      /* Alpha [0..255.0] */ | ||||
|   float oow;                    /* 1/W (used for W-buffering, texturing) */ | ||||
|   GrTmuVertex  tmuvtx[GLIDE_NUM_TMU]; | ||||
| } GrVertex; | ||||
|  | ||||
| #define GR_VERTEX_X_OFFSET              0 | ||||
| #define GR_VERTEX_Y_OFFSET              1 | ||||
| #define GR_VERTEX_OOZ_OFFSET            2 | ||||
| #define GR_VERTEX_OOW_OFFSET            3 | ||||
| #define GR_VERTEX_R_OFFSET              4 | ||||
| #define GR_VERTEX_G_OFFSET              5 | ||||
| #define GR_VERTEX_B_OFFSET              6 | ||||
| #define GR_VERTEX_Z_OFFSET              2 | ||||
| #define GR_VERTEX_R_OFFSET              3 | ||||
| #define GR_VERTEX_G_OFFSET              4 | ||||
| #define GR_VERTEX_B_OFFSET              5 | ||||
| #define GR_VERTEX_OOZ_OFFSET            6 | ||||
| #define GR_VERTEX_A_OFFSET              7 | ||||
| #define GR_VERTEX_Z_OFFSET              8 | ||||
| #define GR_VERTEX_OOW_OFFSET            8 | ||||
| #define GR_VERTEX_SOW_TMU0_OFFSET       9 | ||||
| #define GR_VERTEX_TOW_TMU0_OFFSET       10 | ||||
| #define GR_VERTEX_OOW_TMU0_OFFSET       11 | ||||
| @@ -233,29 +255,89 @@ typedef struct | ||||
|  * Glide2 functions for Glide3 | ||||
|  */ | ||||
| #if defined(FX_GLIDE3) | ||||
| #define FX_grTexDownloadTable(TMU,type,data)		grTexDownloadTable(type,data) | ||||
| #define FX_grTexDownloadTable(TMU,type,data)	\ | ||||
|   do { 						\ | ||||
|     BEGIN_BOARD_LOCK(); 			\ | ||||
|     grTexDownloadTable(type,data); 		\ | ||||
|     END_BOARD_LOCK(); 				\ | ||||
|   } while (0); | ||||
| #define FX_grTexDownloadTable_NoLock(TMU,type,data) \ | ||||
|   grTexDownloadTable(type, data) | ||||
| #else | ||||
| #define FX_grTexDownloadTable(TMU,type,data) 		grTexDownloadTable(TMU,type,data) | ||||
| #define FX_grTexDownloadTable(TMU,type,data) 	\ | ||||
|   do {						\ | ||||
|     BEGIN_BOARD_LOCK();				\ | ||||
|     grTexDownloadTable(TMU,type,data);		\ | ||||
|     END_BOARD_LOCK();				\ | ||||
|   } while (0); | ||||
| #define FX_grTexDownloadTable_NoLock grTexDownloadTable | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * Flush | ||||
|  */ | ||||
| #if defined(FX_GLIDE3) | ||||
| #define FX_grFlush		grFlush | ||||
| #define FX_grFlush()	\ | ||||
|   do {			\ | ||||
|     BEGIN_BOARD_LOCK(); \ | ||||
|     grFlush();		\ | ||||
|     END_BOARD_LOCK();	\ | ||||
|   } while (0) | ||||
| #else | ||||
| #define FX_grFlush		grSstIdle | ||||
| #define FX_grFlush()	\ | ||||
|   do {			\ | ||||
|     BEGIN_BOARD_LOCK(); \ | ||||
|     grSstIdle();	\ | ||||
|     END_BOARD_LOCK();	\ | ||||
|   } while (0) | ||||
| #endif	 | ||||
|  | ||||
| #define FX_grFinish()	\ | ||||
|   do {			\ | ||||
|     BEGIN_BOARD_LOCK(); \ | ||||
|     grFinish();		\ | ||||
|     END_BOARD_LOCK();	\ | ||||
|   } while (0) | ||||
|  | ||||
| /* | ||||
|  * Write region: ToDo possible exploit the PixelPipe parameter. | ||||
|  */ | ||||
| #if defined(FX_GLIDE3) | ||||
| #define FX_grLfbWriteRegion(dst_buffer,dst_x,dst_y,src_format,src_width,src_height,src_stride,src_data)	\ | ||||
| 	grLfbWriteRegion(dst_buffer,dst_x,dst_y,src_format,src_width,src_height,FXFALSE,src_stride,src_data) | ||||
| #define FX_grLfbWriteRegion(dst_buffer,dst_x,dst_y,src_format,src_width,src_height,src_stride,src_data)		\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grLfbWriteRegion(dst_buffer,dst_x,dst_y,src_format,src_width,src_height,FXFALSE,src_stride,src_data);	\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while(0) | ||||
| #else | ||||
| #define FX_grLfbWriteRegion(dst_buffer,dst_x,dst_y,src_format,src_width,src_height,src_stride,src_data)	\ | ||||
| 	grLfbWriteRegion(dst_buffer,dst_x,dst_y,src_format,src_width,src_height,src_stride,src_data) | ||||
| #define FX_grLfbWriteRegion(dst_buffer,dst_x,dst_y,src_format,src_width,src_height,src_stride,src_data)		\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grLfbWriteRegion(dst_buffer,dst_x,dst_y,src_format,src_width,src_height,src_stride,src_data);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * Read region | ||||
|  */ | ||||
| #define FX_grLfbReadRegion(src_buffer,src_x,src_y,src_width,src_height,dst_stride,dst_data)			\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grLfbReadRegion(src_buffer,src_x,src_y,src_width,src_height,dst_stride,dst_data);				\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0); | ||||
|  | ||||
| /* | ||||
|  * Draw triangle | ||||
|  */ | ||||
| #define FX_grDrawTriangle(a,b,c)	\ | ||||
|   do {					\ | ||||
|     BEGIN_CLIP_LOOP();			\ | ||||
|     grDrawTriangle(a,b,c);		\ | ||||
|     END_CLIP_LOOP();			\ | ||||
|   } while (0) | ||||
|  | ||||
| /* | ||||
|  * For Lod/LodLog2 conversion. | ||||
|  */ | ||||
| @@ -288,12 +370,14 @@ typedef struct | ||||
| #else | ||||
| 	#define FX_largeLodValue(info)		((int)(info).largeLod) | ||||
| #endif | ||||
| #define FX_largeLodValue_NoLock FX_largeLodValue | ||||
|  | ||||
| #if defined(FX_GLIDE3) | ||||
| 	#define FX_smallLodValue(info)		((int)(GR_LOD_256-(info).smallLodLog2)) | ||||
| #else | ||||
| 	#define FX_smallLodValue(info)		((int)(info).smallLod) | ||||
| #endif | ||||
| #define FX_smallLodValue_NoLock FX_smallLodValue | ||||
|  | ||||
| #if defined(FX_GLIDE3) | ||||
| 	#define FX_valueToLod(val)		((GrLOD_t)(GR_LOD_256-val)) | ||||
| @@ -304,13 +388,9 @@ typedef struct | ||||
| /* | ||||
|  * ScreenWidth/Height stuff. | ||||
|  */ | ||||
| #if defined(FX_GLIDE3) | ||||
| 	extern int FX_grSstScreenWidth(); | ||||
| 	extern int FX_grSstScreenHeight(); | ||||
| #else | ||||
| 	#define FX_grSstScreenWidth()		grSstScreenWidth() | ||||
| 	#define FX_grSstScreenHeight()		grSstScreenHeight() | ||||
| #endif | ||||
| 	extern int FX_grSstScreenWidth(void); | ||||
| 	extern int FX_grSstScreenHeight(void); | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
| @@ -319,7 +399,12 @@ typedef struct | ||||
| #if defined(FX_GLIDE3) | ||||
| 	extern void FX_grGlideGetVersion(char *buf); | ||||
| #else | ||||
| 	#define FX_grGlideGetVersion		grGlideGetVersion	 | ||||
| 	#define FX_grGlideGetVersion(b)	\ | ||||
| 	do {				\ | ||||
| 	  BEGIN_BOARD_LOCK();		\ | ||||
| 	  grGlideGetVersion(b);		\ | ||||
| 	  END_BOARD_LOCK();		\ | ||||
| 	} while (0) | ||||
| #endif | ||||
| /* | ||||
|  * Performance statistics | ||||
| @@ -327,25 +412,33 @@ typedef struct | ||||
| #if defined(FX_GLIDE3) | ||||
|         extern void FX_grSstPerfStats(GrSstPerfStats_t *st); | ||||
| #else | ||||
| 	#define FX_grSstPerfStats		grSstPerfStats | ||||
| 	#define FX_grSstPerfStats(s)	\ | ||||
| 	do {				\ | ||||
| 	  BEGIN_BOARD_LOCK();		\ | ||||
| 	  grSstPerfStats(s);		\ | ||||
| 	  END_BOARD_LOCK();		\ | ||||
| 	} while (0) | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * Hardware Query | ||||
|  */ | ||||
| #if defined(FX_GLIDE3) | ||||
|        extern int FX_grSstQueryHardware(GrHwConfiguration *config); | ||||
| #else | ||||
|        #define FX_grSstQueryHardware		grSstQueryHardware		 | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * GrHints | ||||
|  */ | ||||
| #if defined(FX_GLIDE3) | ||||
|         extern void FX_grHints_NoLock(GrHint_t hintType, FxU32 hintMask); | ||||
| 	extern void FX_grHints(GrHint_t hintType, FxU32 hintMask); | ||||
| #else | ||||
| 	#define FX_grHints			grHints | ||||
| 	#define FX_grHints(t,m)		\ | ||||
| 	do {				\ | ||||
| 	  BEGIN_BOARD_LOCK();		\ | ||||
| 	  grHints(t, m);		\ | ||||
| 	  END_BOARD_LOCK();		\ | ||||
| 	} while(0) | ||||
|         #define FX_grHints_NoLock grHints | ||||
| #endif | ||||
| /* | ||||
|  * Antialiashed line+point drawing. | ||||
| @@ -353,13 +446,23 @@ typedef struct | ||||
| #if defined(FX_GLIDE3) | ||||
| 	extern void FX_grAADrawLine(GrVertex *a,GrVertex *b); | ||||
| #else | ||||
| 	#define FX_grAADrawLine			grAADrawLine | ||||
| 	#define FX_grAADrawLine(a,b)	\ | ||||
| 	do {				\ | ||||
| 	  BEGIN_CLIP_LOOP();		\ | ||||
| 	  grAADrawLine(a,b);		\ | ||||
| 	  END_CLIP_LOOP();		\ | ||||
| 	} while (0) | ||||
| #endif | ||||
|  | ||||
| #if defined(FX_GLIDE3) | ||||
| 	extern void FX_grAADrawPoint(GrVertex *a); | ||||
| #else | ||||
| 	#define FX_grAADrawPoint		grAADrawPoint | ||||
| 	#define FX_grAADrawPoint(a)	\ | ||||
| 	do {				\ | ||||
| 	  BEGIN_CLIP_LOOP();		\ | ||||
| 	  grAADrawPoint(a);		\ | ||||
| 	  END_CLIP_LOOP();		\ | ||||
| 	} while (0) | ||||
| #endif | ||||
|  | ||||
| /* | ||||
| @@ -373,31 +476,345 @@ typedef struct | ||||
| /* | ||||
|  * grSstControl stuff | ||||
|  */ | ||||
| #if defined(FX_GLIDE3) | ||||
| 	extern void FX_grSstControl(int par); | ||||
| #else | ||||
| 	#define FX_grSstControl				grSstControl | ||||
| #endif | ||||
| extern FxBool FX_grSstControl(FxU32 code); | ||||
|  | ||||
| /* | ||||
|  * grGammaCorrectionValue | ||||
|  */ | ||||
| #if defined(FX_GLIDE3) | ||||
|       extern void FX_grGammaCorrectionValue(float val); | ||||
| #else | ||||
|       #define FX_grGammaCorrectionValue			grGammaCorrectionValue | ||||
|       #define FX_grGammaCorrectionValue(v)	\ | ||||
|       do {					\ | ||||
|         BEGIN_BOARD_LOCK();			\ | ||||
| 	grGammaCorrectionValue(v)		\ | ||||
|         END_BOARD_LOCK();			\ | ||||
|       } while (0) | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * WinOpen/Close. | ||||
|  */ | ||||
| #if defined(FX_GLIDE3) | ||||
|        #define FX_grSstWinOpen(hWnd,screen_resolution,refresh_rate,color_format,origin_location,nColBuffers,nAuxBuffers) \ | ||||
|       		  grSstWinOpen(-1,screen_resolution,refresh_rate,color_format,origin_location,nColBuffers,nAuxBuffers) | ||||
|        #define FX_grSstWinClose		grSstWinClose | ||||
| #define FX_grSstWinClose(w)	\ | ||||
|   do { 				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grSstWinClose(w);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
| #else | ||||
|        #define FX_grSstWinOpen		grSstWinOpen | ||||
|        #define FX_grSstWinClose(win)	grSstWinClose() | ||||
| #define FX_grSstWinClose(w)	\ | ||||
|   do { 				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grSstWinClose();		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
| #endif | ||||
|  | ||||
|  | ||||
| extern FX_GrContext_t FX_grSstWinOpen( FxU32                hWnd, | ||||
|                                        GrScreenResolution_t screen_resolution, | ||||
|                                        GrScreenRefresh_t    refresh_rate, | ||||
|                                        GrColorFormat_t      color_format, | ||||
|                                        GrOriginLocation_t   origin_location, | ||||
|                                        int                  nColBuffers, | ||||
|                                        int                  nAuxBuffers); | ||||
|  | ||||
|  | ||||
| #define FX_grDrawLine(v1, v2)	\ | ||||
|   do {				\ | ||||
|     BEGIN_CLIP_LOOP();		\ | ||||
|     grDrawLine(v1, v2);		\ | ||||
|     END_CLIP_LOOP();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grDrawPoint(p)	\ | ||||
|   do {				\ | ||||
|     BEGIN_CLIP_LOOP();		\ | ||||
|     grDrawPoint(p);		\ | ||||
|     END_CLIP_LOOP();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grDitherMode(m)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grDitherMode(m);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grRenderBuffer(b)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grRenderBuffer(b);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grBufferClear(c, a, d)	\ | ||||
|   do {					\ | ||||
|     BEGIN_CLIP_LOOP();			\ | ||||
|     grBufferClear(c, a, d);		\ | ||||
|     END_CLIP_LOOP();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grDepthMask(m)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grDepthMask(m);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grColorMask(c, a)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grColorMask(c, a);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| extern FxBool FX_grLfbLock(GrLock_t type, GrBuffer_t buffer,  | ||||
| 			   GrLfbWriteMode_t writeMode,  | ||||
| 			   GrOriginLocation_t origin, FxBool pixelPipeline,  | ||||
| 			   GrLfbInfo_t *info ); | ||||
|  | ||||
| #define FX_grLfbUnlock(t, b)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grLfbUnlock(t, b);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grConstantColorValue(v)	\ | ||||
|   do {					\ | ||||
|     BEGIN_BOARD_LOCK();			\ | ||||
|     grConstantColorValue(v);		\ | ||||
|     END_BOARD_LOCK();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grConstantColorValue_NoLock grConstantColorValue | ||||
|  | ||||
| #define FX_grAADrawTriangle(a, b, c, ab, bc, ca)	\ | ||||
|   do {							\ | ||||
|     BEGIN_CLIP_LOOP();					\ | ||||
|     grAADrawTriangle(a, b, c, ab, bc, ca);		\ | ||||
|     END_CLIP_LOOP();					\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grAlphaBlendFunction(rs, rd, as, ad)	\ | ||||
|   do {						\ | ||||
|     BEGIN_BOARD_LOCK();				\ | ||||
|     grAlphaBlendFunction(rs, rd, as, ad);	\ | ||||
|     END_BOARD_LOCK();				\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grAlphaCombine(func, fact, loc, oth, inv)	\ | ||||
|   do {							\ | ||||
|     BEGIN_BOARD_LOCK();					\ | ||||
|     grAlphaCombine(func, fact, loc, oth, inv);		\ | ||||
|     END_BOARD_LOCK();					\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grAlphaCombine_NoLock grAlphaCombine | ||||
|  | ||||
| #define FX_grAlphaTestFunction(f)	\ | ||||
|   do {					\ | ||||
|     BEGIN_BOARD_LOCK();			\ | ||||
|     grAlphaTestFunction(f);		\ | ||||
|     END_BOARD_LOCK();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grAlphaTestReferenceValue(v)	\ | ||||
|   do {					\ | ||||
|     BEGIN_BOARD_LOCK();			\ | ||||
|     grAlphaTestReferenceValue(v);	\ | ||||
|     END_BOARD_LOCK();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grClipWindow(minx, miny, maxx, maxy)	\ | ||||
|   do {						\ | ||||
|     BEGIN_BOARD_LOCK();				\ | ||||
|     grClipWindow(minx, miny, maxx, maxy);	\ | ||||
|     END_BOARD_LOCK();				\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grClipWindow_NoLock grClipWindow | ||||
|  | ||||
| #define FX_grColorCombine(func, fact, loc, oth, inv)	\ | ||||
|   do {							\ | ||||
|     BEGIN_BOARD_LOCK();					\ | ||||
|     grColorCombine(func, fact, loc, oth, inv);		\ | ||||
|     END_BOARD_LOCK();					\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grColorCombine_NoLock grColorCombine | ||||
|  | ||||
| #define FX_grCullMode(m)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grCullMode(m);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grDepthBiasLevel(lev)	\ | ||||
|   do {					\ | ||||
|     BEGIN_BOARD_LOCK();			\ | ||||
|     grDepthBiasLevel(lev);		\ | ||||
|     END_BOARD_LOCK();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grDepthBufferFunction(func)	\ | ||||
|   do {					\ | ||||
|     BEGIN_BOARD_LOCK();			\ | ||||
|     grDepthBufferFunction(func);	\ | ||||
|     END_BOARD_LOCK();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grFogColorValue(c)		\ | ||||
|   do {					\ | ||||
|     BEGIN_BOARD_LOCK();			\ | ||||
|     grFogColorValue(c);			\ | ||||
|     END_BOARD_LOCK();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grFogMode(m)	\ | ||||
|   do {			\ | ||||
|     BEGIN_BOARD_LOCK(); \ | ||||
|     grFogMode(m);	\ | ||||
|     END_BOARD_LOCK();	\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grFogTable(t)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grFogTable(t);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grTexClampMode(t, sc, tc)	\ | ||||
|   do {					\ | ||||
|     BEGIN_BOARD_LOCK();			\ | ||||
|     grTexClampMode(t, sc, tc);		\ | ||||
|     END_BOARD_LOCK();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grTexClampMode_NoLock grTexClampMode | ||||
|  | ||||
| #define FX_grTexCombine(t, rfunc, rfact, afunc, afact, rinv, ainv)	\ | ||||
|   do {									\ | ||||
|     BEGIN_BOARD_LOCK();							\ | ||||
|     grTexCombine(t, rfunc, rfact, afunc, afact, rinv, ainv);		\ | ||||
|     END_BOARD_LOCK();							\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grTexCombine_NoLock grTexCombine | ||||
|  | ||||
| #define FX_grTexDownloadMipMapLevel(t, sa, tlod, llod, ar, f, eo, d)	\ | ||||
|   do {									\ | ||||
|     BEGIN_BOARD_LOCK();							\ | ||||
|     grTexDownloadMipMapLevel(t, sa, tlod, llod, ar, f, eo, d);		\ | ||||
|     END_BOARD_LOCK();							\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grTexDownloadMipMapLevel_NoLock grTexDownloadMipMapLevel | ||||
|  | ||||
| #define FX_grTexDownloadMipMapLevelPartial(t, sa, tlod, llod, ar, f, eo, d, s, e);	\ | ||||
|   do {									    \ | ||||
|     BEGIN_BOARD_LOCK();							    \ | ||||
|     grTexDownloadMipMapLevelPartial(t, sa, tlod, llod, ar, f, eo, d, s, e); \ | ||||
|     END_BOARD_LOCK();							    \ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grTexFilterMode(t, minf, magf)	\ | ||||
|   do {						\ | ||||
|     BEGIN_BOARD_LOCK();				\ | ||||
|     grTexFilterMode(t, minf, magf);		\ | ||||
|     END_BOARD_LOCK();				\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grTexFilterMode_NoLock grTexFilterMode | ||||
|  | ||||
| extern FxU32 FX_grTexMinAddress(GrChipID_t tmu); | ||||
| extern FxU32 FX_grTexMaxAddress(GrChipID_t tmu); | ||||
|  | ||||
| #define FX_grTexMipMapMode(t, m, lod)	\ | ||||
|   do {					\ | ||||
|     BEGIN_BOARD_LOCK();			\ | ||||
|     grTexMipMapMode(t, m, lod);		\ | ||||
|     END_BOARD_LOCK();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grTexMipMapMode_NoLock grTexMipMapMode | ||||
|  | ||||
| #define FX_grTexSource(t, sa, eo, i)	\ | ||||
|   do {					\ | ||||
|     BEGIN_BOARD_LOCK();			\ | ||||
|     grTexSource(t, sa, eo, i);		\ | ||||
|     END_BOARD_LOCK();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grTexSource_NoLock grTexSource | ||||
|  | ||||
| extern FxU32 FX_grTexTextureMemRequired(FxU32 evenOdd, GrTexInfo *info); | ||||
| #define FX_grTexTextureMemRequired_NoLock grTexTextureMemRequired | ||||
|  | ||||
| #define FX_grGlideGetState(s)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grGlideGetState(s);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grDRIBufferSwap(i)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grDRIBufferSwap(i);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grSstSelect(b)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grSstSelect(b);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grSstSelect_NoLock grSstSelect | ||||
|  | ||||
| #define FX_grGlideSetState(s)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grGlideSetState(s);		\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grDepthBufferMode(m)	\ | ||||
|   do {				\ | ||||
|     BEGIN_BOARD_LOCK();		\ | ||||
|     grDepthBufferMode(m);	\ | ||||
|     END_BOARD_LOCK();		\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grLfbWriteColorFormat(f)	\ | ||||
|   do {					\ | ||||
|     BEGIN_BOARD_LOCK();			\ | ||||
|     grLfbWriteColorFormat(f);		\ | ||||
|     END_BOARD_LOCK();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grDrawVertexArray(m, c, p)	\ | ||||
|   do {					\ | ||||
|     BEGIN_CLIP_LOOP();			\ | ||||
|     grDrawVertexArray(m, c, p);		\ | ||||
|     END_CLIP_LOOP();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grGlideShutdown()		\ | ||||
|   do {					\ | ||||
|     BEGIN_CLIP_LOOP();			\ | ||||
|     grGlideShutdown();			\ | ||||
|     END_CLIP_LOOP();			\ | ||||
|   } while (0) | ||||
|  | ||||
| #define FX_grGlideInit_NoLock grGlideInit | ||||
| #define FX_grSstWinOpen_NoLock grSstWinOpen | ||||
|  | ||||
| extern int FX_getFogTableSize(void); | ||||
| extern int FX_getGrStateSize(void); | ||||
|  | ||||
| #endif /* __FX_GLIDE_WARPER__ */ | ||||
|  | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,25 +1,53 @@ | ||||
| /* -*- mode: C; tab-width:8; c-basic-offset:2 -*- */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
|  * to deal in the Software without restriction, including without limitation | ||||
|  * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||||
|  * and/or sell copies of the Software, and to permit persons to whom the | ||||
|  * Software is furnished to do so, subject to the following conditions: | ||||
|  * | ||||
|  * The above copyright notice and this permission notice shall be included | ||||
|  * in all copies or substantial portions of the Software. | ||||
|  * | ||||
|  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
|  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL | ||||
|  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  * | ||||
|  * | ||||
|  * Original Mesa / 3Dfx device driver (C) 1999 David Bucciarelli, by the | ||||
|  * terms stated above. | ||||
|  * | ||||
|  * Thank you for your contribution, David! | ||||
|  * | ||||
|  * Please make note of the above copyright/license statement.  If you | ||||
|  * contributed code or bug fixes to this code under the previous (GNU | ||||
|  * Library) license and object to the new license, your code will be | ||||
|  * removed at your request.  Please see the Mesa docs/COPYRIGHT file | ||||
|  * for more information. | ||||
|  * | ||||
|  * Additional Mesa/3Dfx driver developers: | ||||
|  *   Daryll Strauss <daryll@precisioninsight.com> | ||||
|  *   Keith Whitwell <keith@precisioninsight.com> | ||||
|  * | ||||
|  * See fxapi.h for more revision/author details. | ||||
|  */ | ||||
|  | ||||
|  | ||||
|  | ||||
| /* fxwgl.c - Microsoft wgl functions emulation for | ||||
|  *           3Dfx VooDoo/Mesa interface | ||||
|  */ | ||||
|  | ||||
| /* | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  * | ||||
|  * See the file fxapi.c for more informations about authors | ||||
|  * | ||||
|  */ | ||||
|  | ||||
| #ifdef __WIN32__ | ||||
|  | ||||
| @@ -243,11 +271,11 @@ LONG GLAPIENTRY __wglMonitor(HWND hwnd,UINT message,UINT wParam,LONG lParam) | ||||
|         static int moving = 0; | ||||
|         if (!moving) { | ||||
|           if(fxQueryHardware()!=GR_SSTTYPE_VOODOO) { | ||||
|             if(!grSstControl(GR_CONTROL_RESIZE)) { | ||||
|             if(!FX_grSstControl(GR_CONTROL_RESIZE)) { | ||||
|               moving = 1; | ||||
|               SetWindowPos(hwnd, 0, 0, 0, 300, 300, SWP_NOMOVE|SWP_NOZORDER); | ||||
|               moving = 0; | ||||
|               if(!grSstControl(GR_CONTROL_RESIZE)) { | ||||
|               if(!FX_grSstControl(GR_CONTROL_RESIZE)) { | ||||
|                 /*MessageBox(0,_T("Error changing windowsize"),_T("fxMESA"),MB_OK);*/ | ||||
|                 PostMessage(hWND,WM_CLOSE,0,0); | ||||
|               } | ||||
| @@ -255,7 +283,7 @@ LONG GLAPIENTRY __wglMonitor(HWND hwnd,UINT message,UINT wParam,LONG lParam) | ||||
|           } | ||||
|  | ||||
|           /* Do the clipping in the glide library */ | ||||
|           grClipWindow(0,0,grSstScreenWidth(),grSstScreenHeight()); | ||||
|           FX_grClipWindow(0,0,FX_grSstScreenWidth(),FX_grSstScreenHeight()); | ||||
|           /* And let the new size set in the context */ | ||||
|           fxMesaUpdateScreenSize(ctx); | ||||
|         } | ||||
| @@ -269,21 +297,22 @@ LONG GLAPIENTRY __wglMonitor(HWND hwnd,UINT message,UINT wParam,LONG lParam) | ||||
|         BOOL fMinimized = (BOOL) HIWORD(wParam); | ||||
|  | ||||
|         if((fActive == WA_INACTIVE) || fMinimized) | ||||
|           grSstControl(GR_CONTROL_DEACTIVATE); | ||||
|           FX_grSstControl(GR_CONTROL_DEACTIVATE); | ||||
|         else | ||||
|           grSstControl(GR_CONTROL_ACTIVATE); | ||||
|           FX_grSstControl(GR_CONTROL_ACTIVATE); | ||||
|       } | ||||
|       break; | ||||
|     case WM_SHOWWINDOW: | ||||
|       break; | ||||
|     case WM_SYSKEYDOWN: | ||||
|     case WM_SYSCHAR: | ||||
|       if(gdiWindowHackEna && (VK_RETURN == wParam)) { | ||||
|         if(gdiWindowHack) { | ||||
|           gdiWindowHack = GL_FALSE; | ||||
|           grSstControl(GR_CONTROL_ACTIVATE); | ||||
|           FX_grSstControl(GR_CONTROL_ACTIVATE); | ||||
|         } else { | ||||
|           gdiWindowHack = GL_TRUE; | ||||
|           grSstControl(GR_CONTROL_DEACTIVATE); | ||||
|           FX_grSstControl(GR_CONTROL_DEACTIVATE); | ||||
|         } | ||||
|       } | ||||
|       break; | ||||
| @@ -382,7 +411,7 @@ HGLRC GLAPIENTRY wglCreateContext(HDC hdc) | ||||
|         gdiWindowHack = GL_FALSE; | ||||
|       else { | ||||
|         gdiWindowHack = GL_TRUE; | ||||
|         grSstControl(GR_CONTROL_DEACTIVATE); | ||||
|         FX_grSstControl(GR_CONTROL_DEACTIVATE); | ||||
|       } | ||||
|     } | ||||
|   } else { | ||||
| @@ -779,7 +808,7 @@ BOOL GLAPIENTRY wglSwapBuffers(HDC hdc) | ||||
|     HDC hdcDIBSection  = CreateCompatibleDC(hdcScreen); | ||||
|     HBITMAP holdBitmap = (HBITMAP) SelectObject(hdcDIBSection, dibHBM); | ||||
|  | ||||
|     grLfbReadRegion(GR_BUFFER_FRONTBUFFER, 0, 0, | ||||
|     FX_grLfbReadRegion(GR_BUFFER_FRONTBUFFER, 0, 0, | ||||
|                     width, height, | ||||
|                     width * 2, | ||||
|                     dibSurfacePtr); | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| /* $Id: osmesa.c,v 1.3 1999/11/11 01:28:41 brianp Exp $ */ | ||||
| /* $Id: osmesa.c,v 1.2.2.3 2000/04/04 00:52:28 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.2 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
| @@ -38,7 +38,7 @@ | ||||
| #include "GL/osmesa.h" | ||||
| #include "context.h" | ||||
| #include "depth.h" | ||||
| #include "mem.h" | ||||
| #include "macros.h" | ||||
| #include "matrix.h" | ||||
| #include "types.h" | ||||
| #include "vb.h" | ||||
| @@ -224,6 +224,7 @@ OSMesaContext GLAPIENTRY OSMesaCreateContext( GLenum format, OSMesaContext share | ||||
|                                             indexBits, | ||||
|                                             8, 8, 8, alphaBits ); | ||||
|       if (!osmesa->gl_visual) { | ||||
|          FREE(osmesa); | ||||
|          return NULL; | ||||
|       } | ||||
|  | ||||
| @@ -400,7 +401,7 @@ GLboolean GLAPIENTRY OSMesaMakeCurrent( OSMesaContext ctx, void *buffer, GLenum | ||||
|    /* init viewport */ | ||||
|    if (ctx->gl_ctx->Viewport.Width==0) { | ||||
|       /* initialize viewport and scissor box to buffer size */ | ||||
|       _mesa_Viewport( 0, 0, width, height ); | ||||
|       gl_Viewport( ctx->gl_ctx, 0, 0, width, height ); | ||||
|       ctx->gl_ctx->Scissor.Width = width; | ||||
|       ctx->gl_ctx->Scissor.Height = height; | ||||
|    } | ||||
| @@ -631,8 +632,13 @@ static GLbitfield clear( GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|             GLuint i, n, *ptr4; | ||||
|             n = osmesa->rowlength * osmesa->height; | ||||
|             ptr4 = (GLuint *) osmesa->buffer; | ||||
|             for (i=0;i<n;i++) { | ||||
|                *ptr4++ = osmesa->clearpixel; | ||||
|             if (osmesa->clearpixel) { | ||||
|                for (i=0;i<n;i++) { | ||||
|                   *ptr4++ = osmesa->clearpixel; | ||||
|                } | ||||
|             } | ||||
|             else { | ||||
|                BZERO(ptr4, n * sizeof(GLuint)); | ||||
|             } | ||||
|          } | ||||
|          else { | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| /* $Id: svgamesa.c,v 1.1 1999/08/19 00:55:42 jtg Exp $ */ | ||||
| /* $Id: svgamesa.c,v 1.1.1.1.2.3 2000/01/22 20:06:20 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.0 | ||||
|  * Copyright (C) 1995-1998  Brian Paul | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
| @@ -21,23 +21,19 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Linux SVGA/Mesa interface. | ||||
|  * | ||||
|  * This interface is not finished!  Still have to implement pixel | ||||
|  * reading functions and double buffering.  Then, look into accelerated | ||||
|  * line and polygon rendering.  And, clean up a bunch of other stuff. | ||||
|  * Any volunteers? | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| #endif | ||||
|  | ||||
| #ifdef SVGA | ||||
|  | ||||
|  | ||||
| #ifdef PC_HEADER | ||||
| #include "all.h" | ||||
| #else | ||||
| @@ -48,35 +44,164 @@ | ||||
| #include "context.h" | ||||
| #include "matrix.h" | ||||
| #include "types.h" | ||||
| #include <string.h> | ||||
| #endif | ||||
|  | ||||
| #include "svgapix.h" | ||||
| #include "svgamesa8.h" | ||||
| #include "svgamesa15.h" | ||||
| #include "svgamesa16.h" | ||||
| #include "svgamesa24.h" | ||||
| #include "svgamesa32.h" | ||||
|  | ||||
| struct svgamesa_context { | ||||
|    GLcontext *gl_ctx;		/* the core Mesa context */ | ||||
|    GLvisual *gl_vis;		/* describes the color buffer */ | ||||
|    GLframebuffer *gl_buffer;	/* the ancillary buffers */ | ||||
|    GLuint index;		/* current color index */ | ||||
|    GLint red, green, blue;	/* current rgb color */ | ||||
|    GLint width, height;		/* size of color buffer */ | ||||
|    GLint depth;			/* bits per pixel (8,16,24 or 32) */ | ||||
| }; | ||||
| struct svga_buffer SVGABuffer; | ||||
| vga_modeinfo * SVGAInfo; | ||||
| SVGAMesaContext SVGAMesa;    /* the current context */ | ||||
|  | ||||
| #ifdef SVGA_DEBUG | ||||
|  | ||||
| static SVGAMesaContext SVGAMesa = NULL;    /* the current context */ | ||||
| #include <sys/types.h> | ||||
| #include <signal.h> | ||||
|  | ||||
| FILE * logfile; | ||||
| char cbuf[1024]={0}; | ||||
|  | ||||
| void SVGAlog(char * what) | ||||
| { | ||||
|  logfile=fopen("svgamesa.log","a"); | ||||
|  if (!logfile) return; | ||||
|  fprintf(logfile,"%s\n",what); | ||||
|  fclose(logfile); | ||||
| }  | ||||
| #endif | ||||
|  | ||||
| /* | ||||
|  * Convert Mesa window Y coordinate to VGA screen Y coordinate: | ||||
|  */ | ||||
| #define FLIP(Y)  (SVGAMesa->height-(Y)-1) | ||||
| /**********************************************************************/ | ||||
| /*****                       Init stuff...                        *****/ | ||||
| /**********************************************************************/ | ||||
|  | ||||
| int SVGAMesaInit( int GraphMode ) | ||||
| {   | ||||
|    vga_init(); | ||||
|    if (!vga_hasmode(GraphMode)) | ||||
|    { | ||||
|     fprintf(stderr,"GraphMode %d unavailable...",GraphMode); | ||||
| #ifdef SVGA_DEBUG | ||||
|     SVGAlog("SVGAMesaInit: invalid GraphMode (doesn't exist)"); | ||||
| #endif     | ||||
|     return(1); | ||||
|    } | ||||
|    SVGAInfo=vga_getmodeinfo(GraphMode);            | ||||
|    if (SVGAInfo->flags & IS_MODEX) | ||||
|    { | ||||
|     fprintf(stderr,"ModeX not implemented..."); | ||||
| #ifdef SVGA_DEBUG | ||||
|     SVGAlog("SVGAMesaInit: invalid GraphMode (ModeX)"); | ||||
| #endif     | ||||
|     return(2); | ||||
|    } | ||||
|    if (!SVGAInfo->bytesperpixel) | ||||
|    { | ||||
|     fprintf(stderr,"1 / 4 bit color not implemented..."); | ||||
| #ifdef SVGA_DEBUG | ||||
|     SVGAlog("SVGAMesaInit: invalid GraphMode (1 or 4 bit)"); | ||||
| #endif     | ||||
|     return(3); | ||||
|    } | ||||
|    switch (SVGAInfo->colors) { | ||||
|     case   256: SVGABuffer.Depth = 8;  break; | ||||
|     case 32768: SVGABuffer.Depth = 15; break; | ||||
|     case 65536: SVGABuffer.Depth = 16; break; | ||||
|     default: SVGABuffer.Depth = SVGAInfo->bytesperpixel<<3; break; | ||||
|    } | ||||
|    SVGABuffer.BufferSize=SVGAInfo->linewidth*SVGAInfo->height; | ||||
| #ifdef SVGA_DEBUG | ||||
|    sprintf(cbuf,"SVGAMesaInit: double buffer info.\n" \ | ||||
|                  "              depth  : %d\n" \ | ||||
|                  "              mode   : %d\n" \ | ||||
| 		 "              width  : %d\n" \ | ||||
| 		 "              height : %d\n" \ | ||||
| 		 "              bufsize: %d\n", \ | ||||
| 		 SVGABuffer.Depth,GraphMode,SVGAInfo->linewidth, \ | ||||
| 		 SVGAInfo->height,SVGABuffer.BufferSize); | ||||
|    SVGAlog(cbuf); | ||||
| #endif     | ||||
|    SVGABuffer.FrontBuffer=(void*)malloc(SVGABuffer.BufferSize + 4); | ||||
|    if (!SVGABuffer.FrontBuffer) { | ||||
|     { | ||||
|      fprintf(stderr,"Not enough RAM for FRONT_LEFT_BUFFER..."); | ||||
| #ifdef SVGA_DEBUG | ||||
|      SVGAlog("SVGAMesaInit: Not enough RAM (front buffer)"); | ||||
| #endif     | ||||
|      return(4); | ||||
|     } | ||||
|    }        | ||||
| #ifdef SVGA_DEBUG | ||||
|    sprintf(cbuf,"SVGAMesaInit: FrontBuffer - %p",SVGABuffer.FrontBuffer); | ||||
|    SVGAlog(cbuf); | ||||
| #endif     | ||||
|    SVGABuffer.BackBuffer=(void*)malloc(SVGABuffer.BufferSize + 4); | ||||
|    if (!SVGABuffer.BackBuffer) { | ||||
|     { | ||||
|      free(SVGABuffer.FrontBuffer); | ||||
|      fprintf(stderr,"Not enough RAM for BACK_LEFT_BUFFER..."); | ||||
| #ifdef SVGA_DEBUG | ||||
|      SVGAlog("SVGAMesaInit: Not enough RAM (back buffer)"); | ||||
| #endif     | ||||
|      return(5); | ||||
|     } | ||||
|    }        | ||||
| #ifdef SVGA_DEBUG | ||||
|    sprintf(cbuf,"SVGAMesaInit: BackBuffer - %p",SVGABuffer.BackBuffer); | ||||
|    SVGAlog(cbuf); | ||||
| #endif     | ||||
|  | ||||
|    vga_setmode(GraphMode); | ||||
|    SVGABuffer.VideoRam=vga_getgraphmem(); | ||||
| #ifdef SVGA_DEBUG | ||||
|    sprintf(cbuf,"SVGAMesaInit: VRAM - %p",SVGABuffer.VideoRam); | ||||
|    SVGAlog(cbuf); | ||||
|    sprintf(cbuf,"SVGAMesaInit: done. (Mode %d)",GraphMode); | ||||
|    SVGAlog(cbuf); | ||||
| #endif     | ||||
|    return 0; | ||||
| }    | ||||
|  | ||||
| int SVGAMesaClose( void ) | ||||
| {   | ||||
|  vga_setmode(TEXT);  | ||||
|  free(SVGABuffer.FrontBuffer); | ||||
|  free(SVGABuffer.BackBuffer); | ||||
|  return 0; | ||||
| } | ||||
|  | ||||
| void SVGAMesaSetCI(int ndx, GLubyte red, GLubyte green, GLubyte blue) | ||||
| { | ||||
|  if (ndx<256) vga_setpalette(ndx, red>>2, green>>2, blue>>2); | ||||
| } | ||||
|  | ||||
| /**********************************************************************/ | ||||
| /*****                 Miscellaneous functions                    *****/ | ||||
| /**********************************************************************/ | ||||
|  | ||||
| static void copy_buffer( GLubyte * buffer) { | ||||
|  int size = SVGABuffer.BufferSize, page = 0; | ||||
|  | ||||
| #ifdef SVGA_DEBUG | ||||
|    sprintf(cbuf,"copy_buffer: copy %p to %p",buffer,SVGABuffer.VideoRam); | ||||
|    SVGAlog(cbuf); | ||||
| #endif     | ||||
|  | ||||
|  while(size>0) { | ||||
|  vga_setpage(page++); | ||||
|   if (size>>16) {  | ||||
|    memcpy(SVGABuffer.VideoRam,buffer,0x10000); | ||||
|    buffer+=0x10000; | ||||
|   }else{     | ||||
|    memcpy(SVGABuffer.VideoRam,buffer,size & 0xffff); | ||||
|   } | ||||
|   size-=0xffff;  | ||||
|  } | ||||
| } | ||||
|  | ||||
| static void get_buffer_size( GLcontext *ctx, GLuint *width, GLuint *height ) | ||||
| { | ||||
| @@ -84,279 +209,33 @@ static void get_buffer_size( GLcontext *ctx, GLuint *width, GLuint *height ) | ||||
|    *height = SVGAMesa->height = vga_getydim(); | ||||
| } | ||||
|  | ||||
|  | ||||
| /* Set current color index */ | ||||
| static void set_index( GLcontext *ctx, GLuint index ) | ||||
| { | ||||
|    SVGAMesa->index = index; | ||||
|    vga_setcolor( index ); | ||||
| } | ||||
|  | ||||
|  | ||||
| /* Set current drawing color */ | ||||
| static void set_color( GLcontext *ctx, | ||||
|                        GLubyte red, GLubyte green, | ||||
|                        GLubyte blue, GLubyte alpha ) | ||||
| { | ||||
|    SVGAMesa->red = red; | ||||
|    SVGAMesa->green = green; | ||||
|    SVGAMesa->blue = blue; | ||||
|    vga_setrgbcolor( red, green, blue ); | ||||
| } | ||||
|  | ||||
|  | ||||
| static void clear_index( GLcontext *ctx, GLuint index ) | ||||
| { | ||||
|    /* TODO: Implements glClearIndex() */ | ||||
| } | ||||
|  | ||||
|  | ||||
| static void clear_color( GLcontext *ctx, | ||||
|                          GLubyte red, GLubyte green, | ||||
|                          GLubyte blue, GLubyte alpha ) | ||||
| { | ||||
|    /* TODO: Implements glClearColor() */ | ||||
| } | ||||
|  | ||||
|  | ||||
| static GLbitfield clear( GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|                          GLint x, GLint y, GLint width, GLint height ) | ||||
| { | ||||
|    if (mask & GL_COLOR_BUFFER_BIT) { | ||||
|       vga_clear(); | ||||
|    } | ||||
|    return mask & (~GL_COLOR_BUFFER_BIT); | ||||
| } | ||||
|  | ||||
|  | ||||
| static GLboolean set_buffer( GLcontext *ctx, GLenum buffer ) | ||||
| { | ||||
|    /* TODO: implement double buffering and use this function to select */ | ||||
|    /* between front and back buffers. */ | ||||
|  void * tmpptr; | ||||
|   | ||||
|    if (buffer == GL_FRONT_LEFT) | ||||
|       return GL_TRUE; | ||||
|    { | ||||
| /*    vga_waitretrace(); */ | ||||
|     copy_buffer(SVGABuffer.FrontBuffer); | ||||
|     tmpptr=SVGABuffer.BackBuffer; | ||||
|     SVGABuffer.BackBuffer=SVGABuffer.FrontBuffer; | ||||
|     SVGABuffer.FrontBuffer=tmpptr; | ||||
|     return GL_TRUE; | ||||
|    }     | ||||
|    else if (buffer == GL_BACK_LEFT) | ||||
|       return GL_TRUE; | ||||
|    { | ||||
| /*    vga_waitretrace(); */ | ||||
|     copy_buffer(SVGABuffer.BackBuffer); | ||||
|     return GL_TRUE; | ||||
|    }     | ||||
|    else | ||||
|       return GL_FALSE; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| /**********************************************************************/ | ||||
| /*****            Write spans of pixels                           *****/ | ||||
| /*****                                                            *****/ | ||||
| /**********************************************************************/ | ||||
|  | ||||
|  | ||||
| static void write_ci32_span( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                              const GLuint index[], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    y = FLIP(y); | ||||
|    for (i=0;i<n;i++,x++) { | ||||
|       if (mask[i]) { | ||||
|          vga_setcolor( index[i] ); | ||||
|          vga_drawpixel( x, y ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| static void write_ci8_span( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                             const GLubyte index[], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    y = FLIP(y); | ||||
|    for (i=0;i<n;i++,x++) { | ||||
|       if (mask[i]) { | ||||
|          vga_setcolor( index[i] ); | ||||
|          vga_drawpixel( x, y ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void write_mono_ci_span( const GLcontext *ctx, GLuint n, | ||||
|                                 GLint x, GLint y, const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    y = FLIP(y); | ||||
|    /* use current color index */ | ||||
|    vga_setcolor( SVGAMesa->index ); | ||||
|    for (i=0;i<n;i++,x++) { | ||||
|       if (mask[i]) { | ||||
|          vga_drawpixel( x, y ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void write_rgba_span( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                              const GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    y=FLIP(y); | ||||
|    if (mask) { | ||||
|       /* draw some pixels */ | ||||
|       for (i=0; i<n; i++, x++) { | ||||
|          if (mask[i]) { | ||||
|             vga_setrgbcolor( rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] ); | ||||
|             vga_drawpixel( x, y ); | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|    else { | ||||
|       /* draw all pixels */ | ||||
|       for (i=0; i<n; i++, x++) { | ||||
|          vga_setrgbcolor( rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] ); | ||||
|          vga_drawpixel( x, y ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void write_mono_rgba_span( const GLcontext *ctx, | ||||
|                                   GLuint n, GLint x, GLint y, | ||||
|                                   const GLubyte mask[]) | ||||
| { | ||||
|    int i; | ||||
|    y=FLIP(y); | ||||
|    /* use current rgb color */ | ||||
|    vga_setrgbcolor( SVGAMesa->red, SVGAMesa->green, SVGAMesa->blue ); | ||||
|    for (i=0; i<n; i++, x++) { | ||||
|       if (mask[i]) { | ||||
|          vga_drawpixel( x, y ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /**********************************************************************/ | ||||
| /*****                 Read spans of pixels                       *****/ | ||||
| /**********************************************************************/ | ||||
|  | ||||
|  | ||||
| static void read_ci32_span( const GLcontext *ctx, | ||||
|                             GLuint n, GLint x, GLint y, GLuint index[]) | ||||
| { | ||||
|    int i; | ||||
|    y = FLIP(y); | ||||
|    for (i=0; i<n; i++,x++) { | ||||
|       index[i] = vga_getpixel( x, y ); | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void read_rgba_span( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                             GLubyte rgba[][4] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++, x++) { | ||||
|       /* TODO */ | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /**********************************************************************/ | ||||
| /*****                  Write arrays of pixels                    *****/ | ||||
| /**********************************************************************/ | ||||
|  | ||||
|  | ||||
| static void write_ci32_pixels( const GLcontext *ctx, | ||||
|                                GLuint n, const GLint x[], const GLint y[], | ||||
|                                const GLuint index[], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          vga_setcolor( index[i] ); | ||||
|          vga_drawpixel( x[i], FLIP(y[i]) ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
| static void write_mono_ci_pixels( const GLcontext *ctx, GLuint n, | ||||
|                                   const GLint x[], const GLint y[], | ||||
|                                   const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    /* use current color index */ | ||||
|    vga_setcolor( SVGAMesa->index ); | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          vga_drawpixel( x[i], FLIP(y[i]) ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void write_rgba_pixels( const GLcontext *ctx, | ||||
|                                GLuint n, const GLint x[], const GLint y[], | ||||
|                                const GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          vga_setrgbcolor( rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] ); | ||||
|          vga_drawpixel( x[i], FLIP(y[i]) ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void write_mono_rgba_pixels( const GLcontext *ctx, | ||||
|                                     GLuint n, | ||||
|                                     const GLint x[], const GLint y[], | ||||
|                                     const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    /* use current rgb color */ | ||||
|    vga_setrgbcolor( SVGAMesa->red, SVGAMesa->green, SVGAMesa->blue ); | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          vga_drawpixel( x[i], FLIP(y[i]) ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| /**********************************************************************/ | ||||
| /*****                   Read arrays of pixels                    *****/ | ||||
| /**********************************************************************/ | ||||
|  | ||||
| /* Read an array of color index pixels. */ | ||||
| static void read_ci32_pixels( const GLcontext *ctx, | ||||
|                               GLuint n, const GLint x[], const GLint y[], | ||||
|                               GLuint index[], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++,x++) { | ||||
|       index[i] = vga_getpixel( x[i], FLIP(y[i]) ); | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void read_rgba_pixels( const GLcontext *ctx, | ||||
|                               GLuint n, const GLint x[], const GLint y[], | ||||
|                               GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    /* TODO */ | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void svgamesa_update_state( GLcontext *ctx ) | ||||
| { | ||||
|    /* Initialize all the pointers in the DD struct.  Do this whenever */ | ||||
| @@ -364,13 +243,6 @@ static void svgamesa_update_state( GLcontext *ctx ) | ||||
|  | ||||
|    ctx->Driver.UpdateState = svgamesa_update_state; | ||||
|  | ||||
|    ctx->Driver.ClearIndex = clear_index; | ||||
|    ctx->Driver.ClearColor = clear_color; | ||||
|    ctx->Driver.Clear = clear; | ||||
|  | ||||
|    ctx->Driver.Index = set_index; | ||||
|    ctx->Driver.Color = set_color; | ||||
|  | ||||
|    ctx->Driver.SetBuffer = set_buffer; | ||||
|    ctx->Driver.GetBufferSize = get_buffer_size; | ||||
|  | ||||
| @@ -378,59 +250,119 @@ static void svgamesa_update_state( GLcontext *ctx ) | ||||
|    ctx->Driver.LineFunc = NULL; | ||||
|    ctx->Driver.TriangleFunc = NULL; | ||||
|  | ||||
|    /* Pixel/span writing functions: */ | ||||
|    /* TODO: use different funcs for 8, 16, 32-bit depths */ | ||||
|    ctx->Driver.WriteRGBASpan        = write_rgba_span; | ||||
|    ctx->Driver.WriteMonoRGBASpan    = write_mono_rgba_span; | ||||
|    ctx->Driver.WriteRGBAPixels      = write_rgba_pixels; | ||||
|    ctx->Driver.WriteMonoRGBAPixels  = write_mono_rgba_pixels; | ||||
|    ctx->Driver.WriteCI32Span        = write_ci32_span; | ||||
|    ctx->Driver.WriteCI8Span         = write_ci8_span; | ||||
|    ctx->Driver.WriteMonoCISpan      = write_mono_ci_span; | ||||
|    ctx->Driver.WriteCI32Pixels      = write_ci32_pixels; | ||||
|    ctx->Driver.WriteMonoCIPixels    = write_mono_ci_pixels; | ||||
|    switch (SVGABuffer.Depth) { | ||||
|     case  8: ctx->Driver.ClearIndex = __clear_index8; | ||||
|              ctx->Driver.Clear 	    = __clear8; | ||||
|              ctx->Driver.Index 	    = __set_index8;  | ||||
|  | ||||
|    /* Pixel/span reading functions: */ | ||||
|    /* TODO: use different funcs for 8, 16, 32-bit depths */ | ||||
|    ctx->Driver.ReadCI32Span   = read_ci32_span; | ||||
|    ctx->Driver.ReadRGBASpan   = read_rgba_span; | ||||
|    ctx->Driver.ReadCI32Pixels = read_ci32_pixels; | ||||
|    ctx->Driver.ReadRGBAPixels = read_rgba_pixels; | ||||
|              ctx->Driver.ReadCI32Span         = __read_ci32_span8; | ||||
|              ctx->Driver.ReadCI32Pixels       = __read_ci32_pixels8; | ||||
|              ctx->Driver.WriteCI8Span         = __write_ci8_span8; | ||||
|              ctx->Driver.WriteCI32Span        = __write_ci32_span8; | ||||
|              ctx->Driver.WriteCI32Pixels      = __write_ci32_pixels8; | ||||
|              ctx->Driver.WriteMonoCISpan      = __write_mono_ci_span8; | ||||
|              ctx->Driver.WriteMonoCIPixels    = __write_mono_ci_pixels8; | ||||
| #ifdef SVGA_DEBUG | ||||
|     SVGAlog("SVGAUpdateState: 8 bit mode."); | ||||
| #endif     | ||||
|  | ||||
| 	     break; | ||||
|     case 15: ctx->Driver.ClearColor = __clear_color15; | ||||
|              ctx->Driver.Clear 	    = __clear15; | ||||
|              ctx->Driver.Color 	    = __set_color15; | ||||
|  | ||||
|              ctx->Driver.ReadRGBASpan         = __read_rgba_span15; | ||||
|              ctx->Driver.ReadRGBAPixels       = __read_rgba_pixels15; | ||||
|              ctx->Driver.WriteRGBASpan        = __write_rgba_span15; | ||||
|              ctx->Driver.WriteRGBAPixels      = __write_rgba_pixels15; | ||||
|              ctx->Driver.WriteMonoRGBASpan    = __write_mono_rgba_span15; | ||||
|              ctx->Driver.WriteMonoRGBAPixels  = __write_mono_rgba_pixels15; | ||||
| #ifdef SVGA_DEBUG | ||||
|     SVGAlog("SVGAUpdateState: 15 bit mode."); | ||||
| #endif     | ||||
| 	     break; | ||||
|     case 16: ctx->Driver.ClearColor = __clear_color16; | ||||
|              ctx->Driver.Clear 	    = __clear16; | ||||
|              ctx->Driver.Color 	    = __set_color16; | ||||
|  | ||||
|              ctx->Driver.ReadRGBASpan         = __read_rgba_span16; | ||||
|              ctx->Driver.ReadRGBAPixels       = __read_rgba_pixels16; | ||||
|              ctx->Driver.WriteRGBASpan        = __write_rgba_span16; | ||||
|              ctx->Driver.WriteRGBAPixels      = __write_rgba_pixels16; | ||||
|              ctx->Driver.WriteMonoRGBASpan    = __write_mono_rgba_span16; | ||||
|              ctx->Driver.WriteMonoRGBAPixels  = __write_mono_rgba_pixels16; | ||||
| 	     break; | ||||
| #ifdef SVGA_DEBUG | ||||
|     SVGAlog("SVGAUpdateState: 16 bit mode."); | ||||
| #endif     | ||||
|     case 24: ctx->Driver.ClearColor = __clear_color24; | ||||
|              ctx->Driver.Clear 	    = __clear24; | ||||
|              ctx->Driver.Color 	    = __set_color24; | ||||
|  | ||||
|              ctx->Driver.ReadRGBASpan         = __read_rgba_span24; | ||||
|              ctx->Driver.ReadRGBAPixels       = __read_rgba_pixels24; | ||||
|              ctx->Driver.WriteRGBASpan        = __write_rgba_span24; | ||||
|              ctx->Driver.WriteRGBAPixels      = __write_rgba_pixels24; | ||||
|              ctx->Driver.WriteMonoRGBASpan    = __write_mono_rgba_span24; | ||||
|              ctx->Driver.WriteMonoRGBAPixels  = __write_mono_rgba_pixels24; | ||||
| 	     break; | ||||
| #ifdef SVGA_DEBUG | ||||
|     SVGAlog("SVGAUpdateState: 32 bit mode."); | ||||
| #endif     | ||||
|     case 32: ctx->Driver.ClearColor = __clear_color32; | ||||
|              ctx->Driver.Clear 	    = __clear32; | ||||
|              ctx->Driver.Color 	    = __set_color32; | ||||
|  | ||||
|              ctx->Driver.ReadRGBASpan         = __read_rgba_span32; | ||||
|              ctx->Driver.ReadRGBAPixels       = __read_rgba_pixels32; | ||||
|              ctx->Driver.WriteRGBASpan        = __write_rgba_span32; | ||||
|              ctx->Driver.WriteRGBAPixels      = __write_rgba_pixels32; | ||||
|              ctx->Driver.WriteMonoRGBASpan    = __write_mono_rgba_span32; | ||||
|              ctx->Driver.WriteMonoRGBAPixels  = __write_mono_rgba_pixels32; | ||||
|    }	      | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Create a new VGA/Mesa context and return a handle to it. | ||||
|  */ | ||||
| SVGAMesaContext SVGAMesaCreateContext( GLboolean doubleBuffer ) | ||||
| { | ||||
|    SVGAMesaContext ctx; | ||||
| #ifndef DEV | ||||
|    GLboolean rgb_flag; | ||||
|    GLfloat redscale, greenscale, bluescale, alphascale; | ||||
|    GLboolean alpha_flag = GL_FALSE; | ||||
|    int colors; | ||||
|    GLint index_bits; | ||||
|    GLint redbits, greenbits, bluebits, alphabits; | ||||
|  | ||||
|    /* determine if we're in RGB or color index mode */ | ||||
|    colors = vga_getcolors(); | ||||
|    if (colors==32768) { | ||||
|    if ((SVGABuffer.Depth==32) || (SVGABuffer.Depth==24)) { | ||||
|       rgb_flag = GL_TRUE; | ||||
|       redscale = greenscale = bluescale = alphascale = 255.0; | ||||
|       redbits = greenbits = bluebits = 8; | ||||
|       alphabits = 0; | ||||
|       index_bits = 0; | ||||
|    } | ||||
|    else if (colors==256) { | ||||
|    else if (SVGABuffer.Depth==8) { | ||||
|       rgb_flag = GL_FALSE; | ||||
|       redscale = greenscale = bluescale = alphascale = 0.0; | ||||
|       redbits = greenbits = bluebits = alphabits = 0; | ||||
|       index_bits = 8; | ||||
|    } | ||||
|    else { | ||||
|       printf(">16 bit color not implemented yet!\n"); | ||||
|       return NULL; | ||||
|    else if (SVGABuffer.Depth==15) { | ||||
|       rgb_flag = GL_TRUE; | ||||
|       redscale = greenscale = bluescale = alphascale = 31.0; | ||||
|       redbits = greenbits = bluebits = 5; | ||||
|       alphabits = 0; | ||||
|       index_bits = 0; | ||||
|    } | ||||
|    else if (SVGABuffer.Depth==16) { | ||||
|       rgb_flag = GL_TRUE; | ||||
|       redscale = bluescale = alphascale = 31.0; | ||||
|       greenscale = 63.0; | ||||
|       redbits = bluebits = 5; | ||||
|       greenbits = 6; | ||||
|       alphabits = 0; | ||||
|       index_bits = 0; | ||||
|    } | ||||
|  | ||||
|    ctx = (SVGAMesaContext) calloc( 1, sizeof(struct svgamesa_context) ); | ||||
| @@ -459,18 +391,16 @@ SVGAMesaContext SVGAMesaCreateContext( GLboolean doubleBuffer ) | ||||
|    ctx->red = ctx->green = ctx->blue = 255; | ||||
|  | ||||
|    ctx->width = ctx->height = 0;  /* temporary until first "make-current" */ | ||||
|  | ||||
| #endif | ||||
|    return ctx; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Destroy the given VGA/Mesa context. | ||||
|  */ | ||||
| void SVGAMesaDestroyContext( SVGAMesaContext ctx ) | ||||
| { | ||||
| #ifndef DEV | ||||
|    if (ctx) { | ||||
|       gl_destroy_visual( ctx->gl_vis ); | ||||
|       gl_destroy_context( ctx->gl_ctx ); | ||||
| @@ -480,15 +410,15 @@ void SVGAMesaDestroyContext( SVGAMesaContext ctx ) | ||||
|          SVGAMesa = NULL; | ||||
|       } | ||||
|    } | ||||
| #endif | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Make the specified VGA/Mesa context the current one. | ||||
|  */ | ||||
| void SVGAMesaMakeCurrent( SVGAMesaContext ctx ) | ||||
| { | ||||
| #ifndef DEV | ||||
|    SVGAMesa = ctx; | ||||
|    svgamesa_update_state( ctx->gl_ctx ); | ||||
|    gl_make_current( ctx->gl_ctx, ctx->gl_buffer ); | ||||
| @@ -499,10 +429,9 @@ void SVGAMesaMakeCurrent( SVGAMesaContext ctx ) | ||||
|       ctx->height = vga_getydim(); | ||||
|       gl_Viewport( ctx->gl_ctx, 0, 0, ctx->width, ctx->height ); | ||||
|    } | ||||
| #endif | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Return a handle to the current VGA/Mesa context. | ||||
|  */ | ||||
| @@ -511,20 +440,38 @@ SVGAMesaContext SVGAMesaGetCurrentContext( void ) | ||||
|    return SVGAMesa; | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Swap front/back buffers for current context if double buffered. | ||||
|  */ | ||||
| void SVGAMesaSwapBuffers( void ) | ||||
| { | ||||
|  void * tmpptr; | ||||
|   | ||||
| /* vga_waitretrace(); */ | ||||
|  copy_buffer(SVGABuffer.BackBuffer); | ||||
|  | ||||
| #ifndef DEV | ||||
|    FLUSH_VB( SVGAMesa->gl_ctx, "swap buffers" ); | ||||
|    if (SVGAMesa->gl_vis->DBflag) { | ||||
|       vga_flip(); | ||||
|    } | ||||
|    if (SVGAMesa->gl_vis->DBflag)  | ||||
| #endif /* DEV */    | ||||
|    { | ||||
| #ifdef SVGA_DEBUG | ||||
|    sprintf(cbuf,"SVGAMesaSwapBuffers : Swapping..."); | ||||
|    SVGAlog(cbuf); | ||||
| #endif /* SVGA_DEBUG */ | ||||
|    tmpptr=SVGABuffer.BackBuffer; | ||||
|    SVGABuffer.BackBuffer=SVGABuffer.FrontBuffer; | ||||
|    SVGABuffer.FrontBuffer=tmpptr; | ||||
| #ifdef SVGA_DEBUG | ||||
|    sprintf(cbuf,"SVGAMesaSwapBuffers : WriteBuffer : %p\n" | ||||
|                 "                      Readbuffer  : %p", \ | ||||
| 		SVGABuffer.BackBuffer, SVGABuffer.FrontBuffer ); | ||||
|    SVGAlog(cbuf); | ||||
| #endif /* SVGA_DEBUG */ | ||||
|    }        | ||||
| } | ||||
|  | ||||
|  | ||||
| #else | ||||
| #else /*SVGA*/ | ||||
|  | ||||
| /* | ||||
|  * Need this to provide at least one external definition when SVGA is | ||||
|   | ||||
							
								
								
									
										185
									
								
								src/mesa/drivers/svga/svgamesa15.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										185
									
								
								src/mesa/drivers/svga/svgamesa15.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,185 @@ | ||||
| /* $Id: svgamesa15.c,v 1.1.2.4 2000/01/31 22:10:39 tanner Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| #endif | ||||
|  | ||||
| #ifdef SVGA | ||||
|  | ||||
| #include "svgapix.h" | ||||
|  | ||||
| GLshort * shortBuffer; | ||||
|  | ||||
| int __svga_drawpixel15(int x, int y, unsigned long c) | ||||
| { | ||||
|     unsigned long offset; | ||||
|      | ||||
|     shortBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|     y = SVGAInfo->height-y-1; | ||||
|     offset = y * SVGAInfo->width + x; | ||||
|     shortBuffer[offset]=c; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| unsigned long __svga_getpixel15(int x, int y) | ||||
| { | ||||
|     unsigned long offset; | ||||
|  | ||||
|     shortBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|     y = SVGAInfo->height-y-1; | ||||
|     offset = y * SVGAInfo->width + x; | ||||
|     return shortBuffer[offset]; | ||||
| } | ||||
|  | ||||
| void __set_color15( GLcontext *ctx, | ||||
|                     GLubyte red, GLubyte green, | ||||
|                     GLubyte blue, GLubyte alpha ) | ||||
| { | ||||
|    SVGAMesa->hicolor=(red>>3)<<10 | (green>>3)<<5 | (blue>>3);  | ||||
| /*   SVGAMesa->hicolor=(red)<<10 | (green)<<5 | (blue); */ | ||||
| }    | ||||
|  | ||||
| void __clear_color15( GLcontext *ctx, | ||||
|                       GLubyte red, GLubyte green, | ||||
|                       GLubyte blue, GLubyte alpha ) | ||||
| { | ||||
|    SVGAMesa->clear_hicolor=(red>>3)<<10 | (green>>3)<<5 | (blue>>3);   | ||||
| /*   SVGAMesa->clear_hicolor=(red)<<10 | (green)<<5 | (blue);*/ | ||||
| }    | ||||
|  | ||||
| GLbitfield __clear15( GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|                       GLint x, GLint y, GLint width, GLint height ) | ||||
| { | ||||
|    int i,j; | ||||
|     | ||||
|    if (mask & GL_COLOR_BUFFER_BIT) { | ||||
|     shortBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|     if (all) { | ||||
|      for (i=0;i<SVGABuffer.BufferSize / 2;i++) shortBuffer[i]=SVGAMesa->clear_hicolor; | ||||
|     } else { | ||||
|     for (i=x;i<width;i++)     | ||||
|      for (j=y;j<height;j++)     | ||||
|       __svga_drawpixel15(i,j,SVGAMesa->clear_hicolor); | ||||
|     }	 | ||||
|    }     | ||||
|    return mask & (~GL_COLOR_BUFFER_BIT); | ||||
| } | ||||
|  | ||||
| void __write_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                           const GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    if (mask) { | ||||
|       /* draw some pixels */ | ||||
|       for (i=0; i<n; i++, x++) { | ||||
|          if (mask[i]) { | ||||
|          __svga_drawpixel15( x, y, (rgba[i][RCOMP]>>3)<<10 | \ | ||||
| 			           (rgba[i][GCOMP]>>3)<<5 |  \ | ||||
| 			           (rgba[i][BCOMP]>>3)); | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|    else { | ||||
|       /* draw all pixels */ | ||||
|       for (i=0; i<n; i++, x++) { | ||||
|          __svga_drawpixel15( x, y, (rgba[i][RCOMP]>>3)<<10 | \ | ||||
| 			           (rgba[i][GCOMP]>>3)<<5  | \ | ||||
| 			           (rgba[i][BCOMP]>>3)); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_mono_rgba_span15( const GLcontext *ctx, | ||||
|                                GLuint n, GLint x, GLint y, | ||||
|                                const GLubyte mask[]) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++, x++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel15( x, y, SVGAMesa->hicolor); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __read_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                          GLubyte rgba[][4] ) | ||||
| { | ||||
|    int i,pix; | ||||
|    for (i=0; i<n; i++, x++) { | ||||
|     pix = __svga_getpixel15( x, y); | ||||
|     rgba[i][RCOMP] = ((pix>>10)<<3) & 0xff; | ||||
|     rgba[i][GCOMP] = ((pix>> 5)<<3) & 0xff; | ||||
|     rgba[i][BCOMP] = ((pix    )<<3) & 0xff; | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_rgba_pixels15( const GLcontext *ctx, | ||||
|                             GLuint n, const GLint x[], const GLint y[], | ||||
|                             const GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel15( x[i], y[i], (rgba[i][RCOMP]>>3)<<10 | \ | ||||
| 			                 (rgba[i][GCOMP]>>3)<<5  | \ | ||||
| 			                 (rgba[i][BCOMP]>>3)); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
| void __write_mono_rgba_pixels15( const GLcontext *ctx, | ||||
|                                  GLuint n, | ||||
|                                  const GLint x[], const GLint y[], | ||||
|                                  const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    /* use current rgb color */ | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel15( x[i], y[i], SVGAMesa->hicolor ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __read_rgba_pixels15( const GLcontext *ctx, | ||||
|                            GLuint n, const GLint x[], const GLint y[], | ||||
|                            GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i,pix; | ||||
|    for (i=0; i<n; i++,x++) { | ||||
|     pix = __svga_getpixel15( x[i], y[i] ); | ||||
|     rgba[i][RCOMP] = ((pix>>10)<<3) & 0xff; | ||||
|     rgba[i][GCOMP] = ((pix>> 5)<<3) & 0xff; | ||||
|     rgba[i][BCOMP] = ((pix    )<<3) & 0xff; | ||||
|    } | ||||
| } | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										44
									
								
								src/mesa/drivers/svga/svgamesa15.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								src/mesa/drivers/svga/svgamesa15.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| /* $Id: svgamesa15.h,v 1.1.2.2 2000/01/22 20:05:28 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef SVGA_MESA_15_H | ||||
| #define SVGA_MESA_15_H | ||||
|  | ||||
| extern void __set_color15( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); | ||||
| extern void __clear_color15( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); | ||||
| extern GLbitfield __clear15( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height ); | ||||
| extern void __write_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], const GLubyte mask[] ); | ||||
| extern void __write_mono_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte mask[]); | ||||
| extern void __read_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ); | ||||
| extern void __write_rgba_pixels15( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], const GLubyte mask[] ); | ||||
| extern void __write_mono_rgba_pixels15( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte mask[] ); | ||||
| extern void __read_rgba_pixels15( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] ); | ||||
|  | ||||
| #endif /* SVGA_MESA_15_H */ | ||||
							
								
								
									
										185
									
								
								src/mesa/drivers/svga/svgamesa16.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										185
									
								
								src/mesa/drivers/svga/svgamesa16.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,185 @@ | ||||
| /* $Id: svgamesa16.c,v 1.1.2.4 2000/01/31 22:10:39 tanner Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| #endif | ||||
|  | ||||
| #ifdef SVGA | ||||
|  | ||||
| #include "svgapix.h" | ||||
|  | ||||
| GLshort * shortBuffer; | ||||
|  | ||||
| int __svga_drawpixel16(int x, int y, unsigned long c) | ||||
| { | ||||
|     unsigned long offset; | ||||
|  | ||||
|     shortBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|     y = SVGAInfo->height-y-1; | ||||
|     offset = y * SVGAInfo->width + x; | ||||
|     shortBuffer[offset]=c; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| unsigned long __svga_getpixel16(int x, int y) | ||||
| { | ||||
|     unsigned long offset; | ||||
|  | ||||
|     shortBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|     y = SVGAInfo->height-y-1; | ||||
|     offset = y * SVGAInfo->width + x; | ||||
|     return shortBuffer[offset]; | ||||
| } | ||||
|  | ||||
| void __set_color16( GLcontext *ctx, | ||||
|                     GLubyte red, GLubyte green, | ||||
|                     GLubyte blue, GLubyte alpha ) | ||||
| { | ||||
|     SVGAMesa->hicolor=(red>>3)<<11 | (green>>2)<<5 | (blue>>3);  | ||||
| /*    SVGAMesa->hicolor=(red)<<11 | (green)<<5 | (blue); */ | ||||
| }    | ||||
|  | ||||
| void __clear_color16( GLcontext *ctx, | ||||
|                       GLubyte red, GLubyte green, | ||||
|                       GLubyte blue, GLubyte alpha ) | ||||
| { | ||||
|     SVGAMesa->clear_hicolor=(red>>3)<<11 | (green>>2)<<5 | (blue>>3);  | ||||
| /*    SVGAMesa->clear_hicolor=(red)<<11 | (green)<<5 | (blue); */ | ||||
| }    | ||||
|  | ||||
| GLbitfield __clear16( GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|                       GLint x, GLint y, GLint width, GLint height ) | ||||
| { | ||||
|    int i,j; | ||||
|     | ||||
|    if (mask & GL_COLOR_BUFFER_BIT) { | ||||
|     if (all) { | ||||
|      shortBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|      for (i=0;i<SVGABuffer.BufferSize / 2;i++) shortBuffer[i]=SVGAMesa->clear_hicolor; | ||||
|     } else { | ||||
|     for (i=x;i<width;i++)     | ||||
|      for (j=y;j<height;j++)     | ||||
|       __svga_drawpixel16(i,j,SVGAMesa->clear_hicolor); | ||||
|     }	 | ||||
|    }         | ||||
|    return mask & (~GL_COLOR_BUFFER_BIT); | ||||
| } | ||||
|  | ||||
| void __write_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                           const GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    if (mask) { | ||||
|       /* draw some pixels */ | ||||
|       for (i=0; i<n; i++, x++) { | ||||
|          if (mask[i]) { | ||||
|          __svga_drawpixel16( x, y, (rgba[i][RCOMP]>>3)<<11 | \ | ||||
| 			           (rgba[i][GCOMP]>>2)<<5  | \ | ||||
| 			           (rgba[i][BCOMP]>>3)); | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|    else { | ||||
|       /* draw all pixels */ | ||||
|       for (i=0; i<n; i++, x++) { | ||||
|          __svga_drawpixel16( x, y, (rgba[i][RCOMP]>>3)<<11 | \ | ||||
| 			           (rgba[i][GCOMP]>>2)<<5  | \ | ||||
| 			           (rgba[i][BCOMP]>>3)); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_mono_rgba_span16( const GLcontext *ctx, | ||||
|                                GLuint n, GLint x, GLint y, | ||||
|                                const GLubyte mask[]) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++, x++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel16( x, y, SVGAMesa->hicolor); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __read_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                          GLubyte rgba[][4] ) | ||||
| { | ||||
|    int i,pix; | ||||
|    for (i=0; i<n; i++, x++) { | ||||
|     pix = __svga_getpixel16( x, y ); | ||||
|     rgba[i][RCOMP] = ((pix>>11)<<3) & 0xff; | ||||
|     rgba[i][GCOMP] = ((pix>> 5)<<2) & 0xff; | ||||
|     rgba[i][BCOMP] = ((pix    )<<3) & 0xff; | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_rgba_pixels16( const GLcontext *ctx, | ||||
|                             GLuint n, const GLint x[], const GLint y[], | ||||
|                             const GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel16( x[i], y[i], (rgba[i][RCOMP]>>3)<<11 | \ | ||||
| 			                 (rgba[i][GCOMP]>>2)<<5  | \ | ||||
| 			                 (rgba[i][BCOMP]>>3)); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
| void __write_mono_rgba_pixels16( const GLcontext *ctx, | ||||
|                                  GLuint n, | ||||
|                                  const GLint x[], const GLint y[], | ||||
|                                  const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    /* use current rgb color */ | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel16( x[i], y[i], SVGAMesa->hicolor ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __read_rgba_pixels16( const GLcontext *ctx, | ||||
|                            GLuint n, const GLint x[], const GLint y[], | ||||
|                            GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i,pix; | ||||
|    for (i=0; i<n; i++,x++) { | ||||
|     pix = __svga_getpixel16( x[i], y[i] ); | ||||
|     rgba[i][RCOMP] = ((pix>>11)<<3) & 0xff; | ||||
|     rgba[i][GCOMP] = ((pix>> 5)<<2) & 0xff; | ||||
|     rgba[i][BCOMP] = ((pix    )<<3) & 0xff; | ||||
|    } | ||||
| } | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										45
									
								
								src/mesa/drivers/svga/svgamesa16.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/mesa/drivers/svga/svgamesa16.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| /* $Id: svgamesa16.h,v 1.1.2.2 2000/01/22 20:05:28 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef SVGA_MESA_16_H | ||||
| #define SVGA_MESA_16_H | ||||
|  | ||||
| extern void __set_color16( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); | ||||
| extern void __clear_color16( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); | ||||
| extern GLbitfield __clear16( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height ); | ||||
| extern void __write_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], const GLubyte mask[] ); | ||||
| extern void __write_mono_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte mask[]); | ||||
| extern void __read_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ); | ||||
| extern void __write_rgba_pixels16( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], const GLubyte mask[] ); | ||||
| extern void __write_mono_rgba_pixels16( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte mask[] ); | ||||
| extern void __read_rgba_pixels16( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] ); | ||||
|  | ||||
| #endif /* SVGA_MESA_16_H */ | ||||
|  | ||||
							
								
								
									
										215
									
								
								src/mesa/drivers/svga/svgamesa24.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										215
									
								
								src/mesa/drivers/svga/svgamesa24.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,215 @@ | ||||
| /* $Id: svgamesa24.c,v 1.1.2.5 2000/01/31 22:10:39 tanner Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| #endif | ||||
|  | ||||
| #ifdef SVGA | ||||
|  | ||||
| #include "svgapix.h" | ||||
|  | ||||
| _RGB * rgbBuffer; | ||||
|  | ||||
| #if 0 | ||||
| /* this doesn't compile with GCC on RedHat 6.1 */ | ||||
| inline int RGB2BGR24(int c) | ||||
| { | ||||
| 	asm("rorw  $8, %0\n"	  | ||||
| 	    "rorl $16, %0\n"	  | ||||
| 	    "rorw  $8, %0\n"	  | ||||
| 	    "shrl  $8, %0\n"	  | ||||
|       : "=q"(c):"0"(c)); | ||||
|     return c; | ||||
| } | ||||
| #else | ||||
| static unsigned long RGB2BGR24(unsigned long color) | ||||
| { | ||||
|    return (color & 0xff00)|(color>>16)|((color & 0xff)<<16); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| int __svga_drawpixel24(int x, int y, GLubyte r, GLubyte g, GLubyte b) | ||||
| { | ||||
|     unsigned long offset; | ||||
|  | ||||
|     rgbBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|     y = SVGAInfo->height-y-1; | ||||
|     offset = y * SVGAInfo->width + x; | ||||
|  | ||||
|     rgbBuffer[offset].r=r; | ||||
|     rgbBuffer[offset].g=g; | ||||
|     rgbBuffer[offset].b=b; | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| unsigned long __svga_getpixel24(int x, int y) | ||||
| { | ||||
|     unsigned long offset; | ||||
|  | ||||
|     rgbBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|     y = SVGAInfo->height-y-1; | ||||
|     offset = y * SVGAInfo->width + x; | ||||
|     return rgbBuffer[offset].r<<16 | rgbBuffer[offset].g<<8 | rgbBuffer[offset].b; | ||||
| } | ||||
|  | ||||
| void __set_color24( GLcontext *ctx, | ||||
|                     GLubyte red, GLubyte green, | ||||
|                     GLubyte blue, GLubyte alpha ) | ||||
| { | ||||
|    SVGAMesa->red = red; | ||||
|    SVGAMesa->green = green; | ||||
|    SVGAMesa->blue = blue; | ||||
| /*   SVGAMesa->truecolor = red<<16 | green<<8 | blue; */ | ||||
| } | ||||
|  | ||||
| void __clear_color24( GLcontext *ctx, | ||||
|                       GLubyte red, GLubyte green, | ||||
|                       GLubyte blue, GLubyte alpha ) | ||||
| { | ||||
|    SVGAMesa->clear_red = red; | ||||
|    SVGAMesa->clear_green = green; | ||||
|    SVGAMesa->clear_blue = blue; | ||||
| /*   SVGAMesa->clear_truecolor = red<<16 | green<<8 | blue; */ | ||||
| } | ||||
|  | ||||
| GLbitfield __clear24( GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|                       GLint x, GLint y, GLint width, GLint height ) | ||||
| { | ||||
|    int i,j; | ||||
|     | ||||
|    if (mask & GL_COLOR_BUFFER_BIT) { | ||||
|     if (all) { | ||||
|      rgbBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|      for (i=0;i<SVGABuffer.BufferSize / 3;i++) | ||||
|       { | ||||
|        rgbBuffer[i].r=SVGAMesa->clear_red; | ||||
|        rgbBuffer[i].g=SVGAMesa->clear_green; | ||||
|        rgbBuffer[i].b=SVGAMesa->clear_blue; | ||||
|       }  | ||||
|     } else { | ||||
|     for (i=x;i<width;i++)     | ||||
|      for (j=y;j<height;j++)     | ||||
|       __svga_drawpixel24( i, j, SVGAMesa->clear_red, | ||||
|                                 SVGAMesa->clear_green, | ||||
| 				SVGAMesa->clear_blue); | ||||
|     }	 | ||||
|    } | ||||
|    return mask & (~GL_COLOR_BUFFER_BIT); | ||||
| } | ||||
|  | ||||
| void __write_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                           const GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    if (mask) { | ||||
|       /* draw some pixels */ | ||||
|       for (i=0; i<n; i++, x++) { | ||||
|          if (mask[i]) { | ||||
|          __svga_drawpixel24( x, y, rgba[i][RCOMP], | ||||
| 	                           rgba[i][GCOMP], | ||||
| 				   rgba[i][BCOMP]); | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|    else { | ||||
|       /* draw all pixels */ | ||||
|       for (i=0; i<n; i++, x++) { | ||||
|          __svga_drawpixel24( x, y, rgba[i][RCOMP], | ||||
| 	                           rgba[i][GCOMP], | ||||
| 				   rgba[i][BCOMP]); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_mono_rgba_span24( const GLcontext *ctx, | ||||
|                                GLuint n, GLint x, GLint y, | ||||
|                                const GLubyte mask[]) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++, x++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel24( x, y, SVGAMesa->red, | ||||
|                                    SVGAMesa->green, | ||||
| 				   SVGAMesa->blue); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __read_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                          GLubyte rgba[][4] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++, x++) { | ||||
|     *((GLint*)rgba[i]) = RGB2BGR24(__svga_getpixel24( x, y)); | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_rgba_pixels24( const GLcontext *ctx, | ||||
|                             GLuint n, const GLint x[], const GLint y[], | ||||
|                             const GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel24( x[i], y[i], rgba[i][RCOMP], | ||||
| 	                                 rgba[i][GCOMP], | ||||
| 				         rgba[i][BCOMP]); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_mono_rgba_pixels24( const GLcontext *ctx, | ||||
|                                  GLuint n, | ||||
|                                  const GLint x[], const GLint y[], | ||||
|                                  const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    /* use current rgb color */ | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel24( x[i], y[i], SVGAMesa->red, | ||||
|                                          SVGAMesa->green, | ||||
| 				         SVGAMesa->blue); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __read_rgba_pixels24( const GLcontext *ctx, | ||||
|                            GLuint n, const GLint x[], const GLint y[], | ||||
|                            GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++,x++) { | ||||
|     *((GLint*)rgba[i]) = RGB2BGR24(__svga_getpixel24( x[i], y[i]));     | ||||
|    } | ||||
| } | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										45
									
								
								src/mesa/drivers/svga/svgamesa24.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/mesa/drivers/svga/svgamesa24.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| /* $Id: svgamesa24.h,v 1.1.2.2 2000/01/22 20:05:28 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef SVGA_MESA_24_H | ||||
| #define SVGA_MESA_24_H | ||||
|  | ||||
| extern void __set_color24( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); | ||||
| extern void __clear_color24( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); | ||||
| extern GLbitfield __clear24( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height ); | ||||
| extern void __write_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], const GLubyte mask[] ); | ||||
| extern void __write_mono_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte mask[]); | ||||
| extern void __read_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ); | ||||
| extern void __write_rgba_pixels24( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], const GLubyte mask[] ); | ||||
| extern void __write_mono_rgba_pixels24( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte mask[] ); | ||||
| extern void __read_rgba_pixels24( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] ); | ||||
|  | ||||
| #endif /* SVGA_MESA_24_H */ | ||||
|  | ||||
							
								
								
									
										192
									
								
								src/mesa/drivers/svga/svgamesa32.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										192
									
								
								src/mesa/drivers/svga/svgamesa32.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,192 @@ | ||||
| /* $Id: svgamesa32.c,v 1.1.2.5 2000/01/31 22:10:39 tanner Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| #endif | ||||
|  | ||||
| #ifdef SVGA | ||||
|  | ||||
| #include "svgapix.h" | ||||
|  | ||||
| GLint * intBuffer; | ||||
|  | ||||
| #if 0 | ||||
| /* this doesn't compile with GCC on RedHat 6.1 */ | ||||
| inline int RGB2BGR32(int c) | ||||
| { | ||||
| 	asm("rorw  $8, %0\n"	  | ||||
| 	    "rorl $16, %0\n"	  | ||||
| 	    "rorw  $8, %0\n"	  | ||||
| 	    "shrl  $8, %0\n"	  | ||||
|       : "=q"(c):"0"(c)); | ||||
|     return c; | ||||
| } | ||||
| #else | ||||
| static unsigned long RGB2BGR32(unsigned long color) | ||||
| { | ||||
|    return (color & 0xff00)|(color>>16)|((color & 0xff)<<16); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| int __svga_drawpixel32(int x, int y, unsigned long c) | ||||
| { | ||||
|     unsigned long offset; | ||||
|  | ||||
|     intBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|     y = SVGAInfo->height-y-1; | ||||
|     offset = y * SVGAInfo->width + x; | ||||
|     intBuffer[offset]=c; | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| unsigned long __svga_getpixel32(int x, int y) | ||||
| { | ||||
|     unsigned long offset; | ||||
|  | ||||
|     intBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|     y = SVGAInfo->height-y-1; | ||||
|     offset = y * SVGAInfo->width + x; | ||||
|     return intBuffer[offset]; | ||||
| } | ||||
|  | ||||
| void __set_color32( GLcontext *ctx, | ||||
|                     GLubyte red, GLubyte green, | ||||
|                     GLubyte blue, GLubyte alpha ) | ||||
| { | ||||
|    SVGAMesa->red = red; | ||||
|    SVGAMesa->green = green; | ||||
|    SVGAMesa->blue = blue; | ||||
|    SVGAMesa->truecolor = red<<16 | green<<8 | blue; | ||||
| } | ||||
|  | ||||
| void __clear_color32( GLcontext *ctx, | ||||
|                       GLubyte red, GLubyte green, | ||||
|                       GLubyte blue, GLubyte alpha ) | ||||
| { | ||||
|    SVGAMesa->clear_truecolor = red<<16 | green<<8 | blue; | ||||
| } | ||||
|  | ||||
| GLbitfield __clear32( GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|                         GLint x, GLint y, GLint width, GLint height ) | ||||
| { | ||||
|    int i,j; | ||||
|     | ||||
|    if (mask & GL_COLOR_BUFFER_BIT) { | ||||
|     if (all) { | ||||
|      intBuffer=(void *)SVGABuffer.BackBuffer; | ||||
|      for (i=0;i<SVGABuffer.BufferSize / 4;i++) intBuffer[i]=SVGAMesa->clear_truecolor; | ||||
|     } else { | ||||
|     for (i=x;i<width;i++)     | ||||
|      for (j=y;j<height;j++)     | ||||
|       __svga_drawpixel32(i,j,SVGAMesa->clear_truecolor); | ||||
|     }	 | ||||
|    } | ||||
|    return mask & (~GL_COLOR_BUFFER_BIT); | ||||
| } | ||||
|  | ||||
| void __write_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                           const GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    if (mask) { | ||||
|       /* draw some pixels */ | ||||
|       for (i=0; i<n; i++, x++) { | ||||
|          if (mask[i]) { | ||||
|          __svga_drawpixel32( x, y, RGB2BGR32(*((GLint*)rgba[i]))); | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|    else { | ||||
|       /* draw all pixels */ | ||||
|       for (i=0; i<n; i++, x++) { | ||||
|          __svga_drawpixel32( x, y, RGB2BGR32(*((GLint*)rgba[i]))); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_mono_rgba_span32( const GLcontext *ctx, | ||||
|                                GLuint n, GLint x, GLint y, | ||||
|                                const GLubyte mask[]) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++, x++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel32( x, y, SVGAMesa->truecolor); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __read_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                          GLubyte rgba[][4] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++, x++) { | ||||
|      *((GLint*)rgba[i]) = RGB2BGR32(__svga_getpixel32( x, y )); | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_rgba_pixels32( const GLcontext *ctx, | ||||
|                             GLuint n, const GLint x[], const GLint y[], | ||||
|                             const GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel32( x[i], y[i], RGB2BGR32(*((GLint*)rgba[i]))); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_mono_rgba_pixels32( const GLcontext *ctx, | ||||
|                                  GLuint n, | ||||
|                                  const GLint x[], const GLint y[], | ||||
|                                  const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    /* use current rgb color */ | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel32( x[i], y[i], SVGAMesa->truecolor ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __read_rgba_pixels32( const GLcontext *ctx, | ||||
|                            GLuint n, const GLint x[], const GLint y[], | ||||
|                            GLubyte rgba[][4], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++,x++) { | ||||
|     *((GLint*)rgba[i]) = RGB2BGR32(__svga_getpixel32( x[i], y[i] )); | ||||
|    } | ||||
| } | ||||
|  | ||||
| #endif | ||||
|  | ||||
							
								
								
									
										45
									
								
								src/mesa/drivers/svga/svgamesa32.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/mesa/drivers/svga/svgamesa32.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| /* $Id: svgamesa32.h,v 1.1.2.2 2000/01/22 20:05:28 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef SVGA_MESA_32_H | ||||
| #define SVGA_MESA_32_H | ||||
|  | ||||
| extern void __set_color32( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); | ||||
| extern void __clear_color32( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ); | ||||
| extern GLbitfield __clear32( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height ); | ||||
| extern void __write_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], const GLubyte mask[] ); | ||||
| extern void __write_mono_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte mask[]); | ||||
| extern void __read_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] ); | ||||
| extern void __write_rgba_pixels32( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], const GLubyte mask[] ); | ||||
| extern void __write_mono_rgba_pixels32( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte mask[] ); | ||||
| extern void __read_rgba_pixels32( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] ); | ||||
|  | ||||
| #endif /* SVGA_MESA_32_H */ | ||||
|  | ||||
							
								
								
									
										167
									
								
								src/mesa/drivers/svga/svgamesa8.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										167
									
								
								src/mesa/drivers/svga/svgamesa8.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,167 @@ | ||||
| /* $Id: svgamesa8.c,v 1.1.2.3 2000/01/31 22:10:39 tanner Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| #endif | ||||
|  | ||||
| #ifdef SVGA | ||||
|  | ||||
|  | ||||
| #include "svgapix.h" | ||||
|  | ||||
| int __svga_drawpixel8(int x, int y, unsigned long c) | ||||
| { | ||||
|     unsigned long offset; | ||||
|  | ||||
|     y = SVGAInfo->height-y-1; | ||||
|     offset = y * SVGAInfo->linewidth + x; | ||||
|     SVGABuffer.BackBuffer[offset]=c; | ||||
|      | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| unsigned long __svga_getpixel8(int x, int y) | ||||
| { | ||||
|     unsigned long offset; | ||||
|  | ||||
|     y = SVGAInfo->height-y-1; | ||||
|     offset = y * SVGAInfo->linewidth + x; | ||||
|     return SVGABuffer.BackBuffer[offset]; | ||||
| } | ||||
|  | ||||
| void __set_index8( GLcontext *ctx, GLuint index ) | ||||
| { | ||||
|    SVGAMesa->index = index; | ||||
| } | ||||
|  | ||||
| void __clear_index8( GLcontext *ctx, GLuint index ) | ||||
| { | ||||
|    SVGAMesa->clear_index = index; | ||||
| } | ||||
|  | ||||
| GLbitfield __clear8( GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|                      GLint x, GLint y, GLint width, GLint height ) | ||||
| { | ||||
|    int i,j; | ||||
|     | ||||
|    if (mask & GL_COLOR_BUFFER_BIT) { | ||||
|     | ||||
|     if (all)  | ||||
|     {  | ||||
|      memset(SVGABuffer.BackBuffer,SVGAMesa->clear_index,SVGABuffer.BufferSize); | ||||
|     } else { | ||||
|     for (i=x;i<width;i++)     | ||||
|      for (j=y;j<height;j++)     | ||||
|       __svga_drawpixel8(i,j,SVGAMesa->clear_index); | ||||
|     } | ||||
|    }     | ||||
|    return mask & (~GL_COLOR_BUFFER_BIT); | ||||
| } | ||||
|  | ||||
| void __write_ci32_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                          const GLuint index[], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0;i<n;i++,x++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel8( x, y, index[i]); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_ci8_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|                         const GLubyte index[], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|  | ||||
|    for (i=0;i<n;i++,x++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel8( x, y, index[i]); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_mono_ci_span8( const GLcontext *ctx, GLuint n, | ||||
|                             GLint x, GLint y, const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0;i<n;i++,x++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel8( x, y, SVGAMesa->index); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __read_ci32_span8( const GLcontext *ctx, | ||||
|                         GLuint n, GLint x, GLint y, GLuint index[]) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++,x++) { | ||||
|       index[i] = __svga_getpixel8( x, y); | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __write_ci32_pixels8( const GLcontext *ctx, | ||||
|                            GLuint n, const GLint x[], const GLint y[], | ||||
|                            const GLuint index[], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel8( x[i], y[i], index[i]); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
| void __write_mono_ci_pixels8( const GLcontext *ctx, GLuint n, | ||||
|                               const GLint x[], const GLint y[], | ||||
|                               const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++) { | ||||
|       if (mask[i]) { | ||||
|          __svga_drawpixel8( x[i], y[i], SVGAMesa->index); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| void __read_ci32_pixels8( const GLcontext *ctx, | ||||
|                           GLuint n, const GLint x[], const GLint y[], | ||||
|                           GLuint index[], const GLubyte mask[] ) | ||||
| { | ||||
|    int i; | ||||
|    for (i=0; i<n; i++,x++) { | ||||
|       index[i] = __svga_getpixel8( x[i], y[i]); | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
| #endif | ||||
							
								
								
									
										45
									
								
								src/mesa/drivers/svga/svgamesa8.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/mesa/drivers/svga/svgamesa8.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| /* $Id: svgamesa8.h,v 1.1.2.1 2000/01/22 20:05:09 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef SVGA_MESA_8_H | ||||
| #define SVGA_MESA_8_H | ||||
|  | ||||
| extern void __set_index8( GLcontext *ctx, GLuint index ); | ||||
| extern void __clear_index8( GLcontext *ctx, GLuint index ); | ||||
| extern GLbitfield __clear8( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height ); | ||||
| extern void __write_ci32_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLuint index[], const GLubyte mask[] ); | ||||
| extern void __write_ci8_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte index[], const GLubyte mask[] ); | ||||
| extern void __write_mono_ci_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte mask[] ); | ||||
| extern void __read_ci32_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLuint index[]); | ||||
| extern void __write_ci32_pixels8( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLuint index[], const GLubyte mask[] ); | ||||
| extern void __write_mono_ci_pixels8( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte mask[] ); | ||||
| extern void __read_ci32_pixels8( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLuint index[], const GLubyte mask[] ); | ||||
|  | ||||
| #endif /* SVGA_MESA_15_H */ | ||||
							
								
								
									
										71
									
								
								src/mesa/drivers/svga/svgapix.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								src/mesa/drivers/svga/svgapix.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
| /* $Id: svgapix.h,v 1.1.2.2 2000/01/22 20:05:28 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.2 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU Library General Public | ||||
|  * License as published by the Free Software Foundation; either | ||||
|  * version 2 of the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This library is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  * Library General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Library General Public | ||||
|  * License along with this library; if not, write to the Free | ||||
|  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * SVGA driver for Mesa. | ||||
|  * Original author:  Brian Paul | ||||
|  * Additional authors:  Slawomir Szczyrba <steev@hot.pl>  (Mesa 3.2) | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef SVGAPIX_H | ||||
| #define SVGAPIX_H | ||||
|  | ||||
| #include "GL/gl.h" | ||||
| #include "GL/svgamesa.h" | ||||
| #include "context.h" | ||||
| #include "vga.h" | ||||
|  | ||||
| struct svgamesa_context { | ||||
|    GLcontext *gl_ctx;		/* the core Mesa context */ | ||||
|    GLvisual *gl_vis;		/* describes the color buffer */ | ||||
|    GLframebuffer *gl_buffer;	/* the ancillary buffers */ | ||||
|    GLuint index;		/* current color index */ | ||||
|    GLuint clear_index;		/* current clear index */ | ||||
|    GLint red, green, blue;	/* current rgb color */ | ||||
|    GLuint truecolor;		/* current rgb color */ | ||||
|    GLint clear_red,  | ||||
|          clear_green,  | ||||
| 	 clear_blue;		/* current clear rgb color */ | ||||
|    GLuint clear_truecolor;	/* current clear rgb color */ | ||||
|    GLushort hicolor;		/* current hicolor */ | ||||
|    GLushort clear_hicolor;	/* current clear hicolor */ | ||||
|    GLint width, height;		/* size of color buffer */ | ||||
|    GLint depth;			/* bits per pixel (8,16,24 or 32) */ | ||||
| }; | ||||
|  | ||||
| typedef struct { GLubyte b,g,r; } _RGB; | ||||
|  | ||||
| struct svga_buffer {    | ||||
|    GLint     Depth; | ||||
|    GLint     BufferSize; | ||||
|    GLubyte   * FrontBuffer; | ||||
|    GLubyte   * BackBuffer; | ||||
|    GLubyte   * VideoRam; | ||||
| }; | ||||
|  | ||||
| extern struct svga_buffer SVGABuffer; | ||||
| extern vga_modeinfo * SVGAInfo; | ||||
| extern SVGAMesaContext SVGAMesa;    /* the current context */ | ||||
|  | ||||
| #endif /* SVGAPIX_H */ | ||||
| @@ -1,10 +1,10 @@ | ||||
| /* $Id: fakeglx.c,v 1.13 1999/11/11 01:29:28 brianp Exp $ */ | ||||
| /* $Id: fakeglx.c,v 1.12.2.8 2000/04/24 12:42:37 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Version:  3.2 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
| @@ -45,7 +45,16 @@ | ||||
|  | ||||
|  | ||||
|  | ||||
| #include "glxheader.h" | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
| #endif | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <X11/Xlib.h> | ||||
| #include <X11/Xutil.h> | ||||
| #include "GL/gl.h" | ||||
| #include "GL/xmesa.h" | ||||
| #include "context.h" | ||||
| #include "config.h" | ||||
| @@ -258,7 +267,7 @@ save_glx_visual( Display *dpy, XVisualInfo *vinfo, | ||||
|           && (v->gl_visual->StencilBits >= stencil_size || stencil_size == 0) | ||||
|           && (v->gl_visual->AccumBits >= accum_size || accum_size == 0)) { | ||||
|          /* now either compare XVisualInfo pointers or visual IDs */ | ||||
|          if ((!comparePointers && v->vishandle->visualid == vinfo->visualid) | ||||
|          if ((!comparePointers && v->visinfo->visualid == vinfo->visualid) | ||||
|              || (comparePointers && v->vishandle == vinfo)) { | ||||
|             return v; | ||||
|          } | ||||
| @@ -1047,7 +1056,6 @@ Bool Fake_glXMakeCurrent( Display *dpy, GLXDrawable drawable, GLXContext ctx ) | ||||
| { | ||||
|    if (ctx && drawable) { | ||||
|       XMesaBuffer buffer; | ||||
|       XMesaContext xmctx = (XMesaContext) ctx; | ||||
|  | ||||
|       if (drawable==MakeCurrent_PrevDrawable && ctx==MakeCurrent_PrevContext) { | ||||
|          buffer = MakeCurrent_PrevBuffer; | ||||
| @@ -1057,7 +1065,7 @@ Bool Fake_glXMakeCurrent( Display *dpy, GLXDrawable drawable, GLXContext ctx ) | ||||
|       } | ||||
|       if (!buffer) { | ||||
|          /* drawable must be a new window! */ | ||||
|          buffer = XMesaCreateWindowBuffer2( xmctx->xm_visual, drawable, ctx ); | ||||
|          buffer = XMesaCreateWindowBuffer2( ctx->xm_visual, drawable, ctx ); | ||||
|          if (!buffer) { | ||||
|             /* Out of memory, or context/drawable depth mismatch */ | ||||
|             return False; | ||||
| @@ -1149,12 +1157,12 @@ void Fake_glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap ) | ||||
|  | ||||
|  | ||||
| void Fake_glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, | ||||
|                           GLuint mask ) | ||||
|                           unsigned long mask ) | ||||
| { | ||||
|    XMesaContext xm_src = (XMesaContext) src; | ||||
|    XMesaContext xm_dst = (XMesaContext) dst; | ||||
|    (void) dpy; | ||||
|    gl_copy_context( xm_src->gl_ctx, xm_dst->gl_ctx, mask ); | ||||
|    gl_copy_context( xm_src->gl_ctx, xm_dst->gl_ctx, (GLuint) mask ); | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -1422,10 +1430,10 @@ static const char *get_extensions( void ) | ||||
| #ifdef FX | ||||
|    const char *fx = getenv("MESA_GLX_FX"); | ||||
|    if (fx && fx[0] != 'd') { | ||||
|       return "GLX_MESA_pixmap_colormap GLX_EXT_visual_info GLX_MESA_release_buffers GLX_MESA_copy_sub_buffer GLX_SGI_video_sync GLX_EXT_get_proc_address GLX_MESA_set_3dfx_mode"; | ||||
|       return "GLX_MESA_pixmap_colormap GLX_EXT_visual_info GLX_MESA_release_buffers GLX_MESA_copy_sub_buffer GLX_SGI_video_sync GLX_MESA_set_3dfx_mode GLX_ARB_get_proc_address"; | ||||
|    } | ||||
| #endif | ||||
|    return "GLX_MESA_pixmap_colormap GLX_EXT_visual_info GLX_MESA_release_buffers GLX_MESA_copy_sub_buffer GLX_SGI_video_sync GL_EXT_get_proc_address"; | ||||
|    return "GLX_MESA_pixmap_colormap GLX_EXT_visual_info GLX_MESA_release_buffers GLX_MESA_copy_sub_buffer GLX_SGI_video_sync GLX_ARB_get_proc_address"; | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -1444,7 +1452,7 @@ const char *Fake_glXQueryExtensionsString( Display *dpy, int screen ) | ||||
| const char *Fake_glXQueryServerString( Display *dpy, int screen, int name ) | ||||
| { | ||||
|    static char *vendor = "Brian Paul"; | ||||
|    static char *version = "1.1 Mesa 3.1"; | ||||
|    static char *version = "1.1 Mesa 3.2"; | ||||
|  | ||||
|    (void) dpy; | ||||
|    (void) screen; | ||||
| @@ -1467,7 +1475,7 @@ const char *Fake_glXQueryServerString( Display *dpy, int screen, int name ) | ||||
| const char *Fake_glXGetClientString( Display *dpy, int name ) | ||||
| { | ||||
|    static char *vendor = "Brian Paul"; | ||||
|    static char *version = "1.1 Mesa 3.1"; | ||||
|    static char *version = "1.1 Mesa 3.2"; | ||||
|  | ||||
|    (void) dpy; | ||||
|  | ||||
| @@ -1510,37 +1518,62 @@ GLboolean Fake_glXSet3DfxModeMESA( GLint mode ) | ||||
|  | ||||
|  | ||||
|  | ||||
| #if 0 | ||||
| /*GLfunction Fake_glXGetProcAddress( const GLubyte *procName )*/ | ||||
| void (*Fake_glXGetProcAddress( const GLubyte *procName ))() | ||||
| { | ||||
|    typedef void (*GLfunction)(); | ||||
|    typedef void (*gl_function)(); | ||||
|    struct proc { | ||||
|       const char *name; | ||||
|       GLfunction address; | ||||
|       gl_function address; | ||||
|    }; | ||||
|    static struct proc procTable[] = { | ||||
|       { "glXGetProcAddressEXT", (GLfunction) glXGetProcAddressEXT }, | ||||
|       { "glXCreateGLXPixmapMESA", (GLfunction) glXCreateGLXPixmapMESA }, | ||||
|       { "glXReleaseBuffersMESA", (GLfunction) glXReleaseBuffersMESA }, | ||||
|       { "glXCopySubBufferMESA", (GLfunction) glXCopySubBufferMESA }, | ||||
|       { "glXSet3DfxModeMESA", (GLfunction) glXSet3DfxModeMESA }, | ||||
|       /* NOTE: GLX_SGI_video_sync not implemented in Mesa */ | ||||
|       /* GLX 1.0 functions */ | ||||
|       { "glXChooseVisual", (gl_function) glXChooseVisual }, | ||||
|       { "glXCopyContext", (gl_function) glXCopyContext }, | ||||
|       { "glXCreateContext", (gl_function) glXCreateContext }, | ||||
|       { "glXCreateGLXPixmap", (gl_function) glXCreateGLXPixmap }, | ||||
|       { "glXDestroyContext", (gl_function) glXDestroyContext }, | ||||
|       { "glXDestroyGLXPixmap", (gl_function) glXDestroyGLXPixmap }, | ||||
|       { "glXGetConfig", (gl_function) glXGetConfig }, | ||||
|       { "glXGetCurrentContext", (gl_function) glXGetCurrentContext }, | ||||
|       { "glXGetCurrentDrawable", (gl_function) glXGetCurrentDrawable }, | ||||
|       { "glXIsDirect", (gl_function) glXIsDirect }, | ||||
|       { "glXMakeCurrent", (gl_function) glXMakeCurrent }, | ||||
|       { "glXQueryExtension", (gl_function) glXQueryExtension }, | ||||
|       { "glXQueryVersion", (gl_function) glXQueryVersion }, | ||||
|       { "glXSwapBuffers", (gl_function) glXSwapBuffers }, | ||||
|       { "glXUseXFont", (gl_function) glXUseXFont }, | ||||
|       { "glXWaitGL", (gl_function) glXWaitGL }, | ||||
|       { "glXWaitX", (gl_function) glXWaitX }, | ||||
|  | ||||
|       /* GLX 1.1 functions */ | ||||
|       { "glXGetClientString", (gl_function) glXGetClientString }, | ||||
|       { "glXQueryExtensionsString", (gl_function) glXQueryExtensionsString }, | ||||
|       { "glXQueryServerString", (gl_function) glXQueryServerString }, | ||||
|  | ||||
|       /* Extensions */ | ||||
|       { "glXGetProcAddressARB", (gl_function) glXGetProcAddressARB }, | ||||
|       { "glXCreateGLXPixmapMESA", (gl_function) glXCreateGLXPixmapMESA }, | ||||
|       { "glXReleaseBuffersMESA", (gl_function) glXReleaseBuffersMESA }, | ||||
|       { "glXCopySubBufferMESA", (gl_function) glXCopySubBufferMESA }, | ||||
|       { "glXSet3DfxModeMESA", (gl_function) glXSet3DfxModeMESA }, | ||||
|       { "glXGetVideoSyncSGI", (gl_function) glXGetVideoSyncSGI }, | ||||
|       { "glXWaitVideoSyncSGI", (gl_function) glXWaitVideoSyncSGI }, | ||||
|  | ||||
|       { NULL, NULL }  /* end of list token */ | ||||
|    }; | ||||
|    GLuint i; | ||||
|  | ||||
|    /* First, look for core library functions */ | ||||
|    GLfunction f = (GLfunction) gl_get_proc_address(procName); | ||||
|    gl_function f = (gl_function) gl_get_proc_address(procName); | ||||
|    if (f) | ||||
|       return f; | ||||
|  | ||||
|    /* Second, look for GLX funtion */ | ||||
|    for (i = 0; procTable[i].address; i++) { | ||||
|       if (strcmp((const char *) procName, procTable[i].name) == 0) | ||||
| 	  return (GLfunction) procTable[i].address; | ||||
| 	  return procTable[i].address; | ||||
|    } | ||||
|  | ||||
|    return NULL; | ||||
| } | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: glxapi.c,v 1.4 1999/10/27 09:50:10 brianp Exp $ */ | ||||
| /* $Id: glxapi.c,v 1.4.2.2 2000/02/23 23:06:55 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -126,7 +126,7 @@ void glXDestroyContext( Display *dpy, GLXContext ctx ) | ||||
|  | ||||
|  | ||||
| void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, | ||||
| 		     GLuint mask ) | ||||
| 		     unsigned long mask ) | ||||
| { | ||||
| #ifdef REALGLX | ||||
|    if (display_has_glx(dpy)) | ||||
| @@ -419,8 +419,7 @@ GLboolean glXSet3DfxModeMESA( GLint mode ) | ||||
|  | ||||
|  | ||||
|  | ||||
| #if 0  /* spec for this not finalized yet */ | ||||
| void (*glXGetProcAddressEXT( const GLubyte *procName ))() | ||||
| void (*glXGetProcAddressARB( const GLubyte *procName ))() | ||||
| { | ||||
| #ifdef REALGLX | ||||
|    return NULL; | ||||
| @@ -428,4 +427,4 @@ void (*glXGetProcAddressEXT( const GLubyte *procName ))() | ||||
|    return Fake_glXGetProcAddress( procName ); | ||||
| #endif | ||||
| } | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: realglx.c,v 1.1 1999/08/19 00:55:42 jtg Exp $ */ | ||||
| /* $Id: realglx.c,v 1.1.1.1.2.1 2000/02/23 23:06:55 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -89,7 +89,7 @@ void Real_glXDestroyContext( Display *dpy, GLXContext ctx ) | ||||
|  | ||||
|  | ||||
| void Real_glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, | ||||
|                           GLuint mask ) | ||||
|                           unsigned long mask ) | ||||
| { | ||||
|    (void) dpy; | ||||
|    (void) src; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: realglx.h,v 1.1 1999/08/19 00:55:42 jtg Exp $ */ | ||||
| /* $Id: realglx.h,v 1.1.1.1.2.1 2000/02/23 23:06:55 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -54,7 +54,7 @@ extern void Real_glXDestroyContext( Display *dpy, GLXContext ctx ); | ||||
|  | ||||
|  | ||||
| extern void Real_glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, | ||||
|                                  GLuint mask ); | ||||
|                                  unsigned long mask ); | ||||
|  | ||||
|  | ||||
| extern Bool Real_glXMakeCurrent( Display *dpy, GLXDrawable drawable, | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: xfonts.c,v 1.3 1999/11/11 01:29:28 brianp Exp $ */ | ||||
| /* $Id: xfonts.c,v 1.2.2.1 1999/12/12 17:03:07 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.1 | ||||
|  * | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -44,7 +44,7 @@ | ||||
| #include "GL/xmesa.h" | ||||
| #include "context.h" | ||||
| #include "fakeglx.h" | ||||
| #include "mem.h" | ||||
| #include "macros.h" | ||||
| #include "xmesaP.h" | ||||
|  | ||||
| /* Some debugging info.  */ | ||||
| @@ -338,7 +338,8 @@ void Fake_glXUseXFont( Font font, int first, int count, int listbase ) | ||||
|       width = ch->rbearing - ch->lbearing; | ||||
|       height = ch->ascent + ch->descent; | ||||
|       x0 = - ch->lbearing; | ||||
|       y0 = ch->descent - 1; | ||||
|       y0 = ch->descent - 0;  /* XXX used to subtract 1 here */ | ||||
|                              /* but that caused a conformace failure */ | ||||
|       dx = ch->width; | ||||
|       dy = 0; | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: xmesaP.h,v 1.2 1999/10/08 09:27:12 keithw Exp $ */ | ||||
| /* $Id: xmesaP.h,v 1.2.2.1 2000/02/22 17:22:42 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -193,7 +193,7 @@ struct xmesa_buffer { | ||||
|    GLint ximage_width1; | ||||
|    GLushort *ximage_origin2;	/* used for PIXELADDR2 macro */ | ||||
|    GLint ximage_width2; | ||||
|    bgr_t *ximage_origin3;	/* used for PIXELADDR3 macro */ | ||||
|    GLubyte *ximage_origin3;	/* used for PIXELADDR3 macro */ | ||||
|    GLint ximage_width3; | ||||
|    GLuint *ximage_origin4;	/* used for PIXELADDR4 macro */ | ||||
|    GLint ximage_width4; | ||||
| @@ -492,7 +492,7 @@ static int const kernel1[16] = { | ||||
|       ( xmesa->xm_buffer->ximage_origin2 - (Y) * xmesa->xm_buffer->ximage_width2 + (X) ) | ||||
|  | ||||
| #define PIXELADDR3( X, Y )  \ | ||||
|       ( xmesa->xm_buffer->ximage_origin3 - (Y) * xmesa->xm_buffer->ximage_width3 + (X) ) | ||||
|       ((bgr_t *) ( xmesa->xm_buffer->ximage_origin3 - (Y) * xmesa->xm_buffer->ximage_width3 + 3 * (X) )) | ||||
|  | ||||
| #define PIXELADDR4( X, Y )  \ | ||||
|       ( xmesa->xm_buffer->ximage_origin4 - (Y) * xmesa->xm_buffer->ximage_width4 + (X) ) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| # $Id: Makefile.X11,v 1.7 1999/11/11 01:22:28 brianp Exp $ | ||||
| # $Id: Makefile.X11,v 1.6.2.2 2000/01/23 17:47:00 brianp Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.3 | ||||
| # Version:  3.1 | ||||
| # Copyright (C) 1995-1999  Brian Paul | ||||
|  | ||||
| # Makefile for core library | ||||
| @@ -18,13 +18,13 @@ VPATH = RCS | ||||
| INCDIR = ../include | ||||
| LIBDIR = ../lib | ||||
|  | ||||
|  | ||||
| CORE_SOURCES = \ | ||||
| 	glapi.c \ | ||||
| 	glapinoop.c \ | ||||
| 	accum.c \ | ||||
| 	alpha.c \ | ||||
| 	alphabuf.c \ | ||||
| 	api1.c \ | ||||
| 	api2.c \ | ||||
| 	apiext.c \ | ||||
| 	attrib.c \ | ||||
| 	bbox.c \ | ||||
| 	bitmap.c \ | ||||
| @@ -37,7 +37,6 @@ CORE_SOURCES = \ | ||||
| 	cva.c \ | ||||
| 	debug_xform.c \ | ||||
| 	depth.c \ | ||||
| 	dispatch.c \ | ||||
| 	dlist.c \ | ||||
| 	drawpix.c \ | ||||
| 	enable.c \ | ||||
| @@ -50,19 +49,18 @@ CORE_SOURCES = \ | ||||
| 	glmisc.c \ | ||||
| 	hash.c \ | ||||
| 	image.c \ | ||||
| 	imaging.c \ | ||||
| 	light.c \ | ||||
| 	lines.c \ | ||||
| 	logic.c \ | ||||
| 	masking.c \ | ||||
| 	matrix.c \ | ||||
| 	mem.c \ | ||||
| 	mmath.c \ | ||||
| 	mthreads.c \ | ||||
| 	pb.c \ | ||||
| 	pixel.c \ | ||||
| 	pipeline.c \ | ||||
| 	points.c \ | ||||
| 	pointers.c \ | ||||
| 	polygon.c \ | ||||
| 	quads.c \ | ||||
| 	rastpos.c \ | ||||
| @@ -106,6 +104,11 @@ DRIVER_SOURCES = \ | ||||
| 	X/xmesa4.c \ | ||||
| 	OSmesa/osmesa.c \ | ||||
| 	SVGA/svgamesa.c \ | ||||
| 	SVGA/svgamesa8.c \ | ||||
| 	SVGA/svgamesa15.c \ | ||||
| 	SVGA/svgamesa16.c \ | ||||
| 	SVGA/svgamesa24.c \ | ||||
| 	SVGA/svgamesa32.c \ | ||||
| 	FX/fxapi.c \ | ||||
| 	FX/fxclip.c \ | ||||
| 	FX/fxcva.c \ | ||||
| @@ -222,7 +225,8 @@ X86/3dnow.o: X86/3dnow.c | ||||
| #	@echo "Specify a target configuration" | ||||
|  | ||||
| clean: | ||||
| 	-rm *.o *~ */*.o */*~ | ||||
| 	-rm *.o *~ */*.o */*~ *.lo *.la | ||||
| 	-rm -rf .libs | ||||
|  | ||||
| targets: $(LIBDIR)/$(GL_LIB) | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: accum.c,v 1.11 1999/11/11 01:22:25 brianp Exp $ */ | ||||
| /* $Id: accum.c,v 1.10.2.2 2000/02/02 21:53:59 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -25,13 +25,22 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* $XFree86: xc/lib/GL/mesa/src/accum.c,v 1.3 1999/04/04 00:20:17 dawes Exp $ */ | ||||
|  | ||||
| #ifdef PC_HEADER | ||||
| #include "all.h" | ||||
| #else | ||||
| #include "glheader.h" | ||||
| #ifndef XFree86Server | ||||
| #include <assert.h> | ||||
| #include <limits.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #else | ||||
| #include "GL/xf86glx.h" | ||||
| #endif | ||||
| #include "accum.h" | ||||
| #include "context.h" | ||||
| #include "mem.h" | ||||
| #include "macros.h" | ||||
| #include "masking.h" | ||||
| #include "span.h" | ||||
| #include "types.h" | ||||
| @@ -92,10 +101,9 @@ void gl_alloc_accum_buffer( GLcontext *ctx ) | ||||
|  | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) | ||||
| void gl_ClearAccum( GLcontext *ctx, | ||||
|                     GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glAccum"); | ||||
|  | ||||
|    ctx->Accum.ClearColor[0] = CLAMP( red, -1.0, 1.0 ); | ||||
| @@ -131,10 +139,8 @@ static void rescale_accum( GLcontext *ctx ) | ||||
|  | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_Accum( GLenum op, GLfloat value ) | ||||
| void gl_Accum( GLcontext *ctx, GLenum op, GLfloat value ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    GLuint xpos, ypos, width, height, width4; | ||||
|    GLfloat acc_scale; | ||||
|    GLubyte rgba[MAX_WIDTH][4]; | ||||
| @@ -332,13 +338,13 @@ _mesa_Accum( GLenum op, GLfloat value ) | ||||
|          if (ctx->IntegerAccumMode && value != 1.0) | ||||
|             rescale_accum(ctx); | ||||
|  | ||||
|          if (ctx->IntegerAccumMode) { | ||||
|          if (ctx->IntegerAccumMode && ctx->IntegerAccumScaler > 0) { | ||||
|             /* build lookup table to avoid many floating point multiplies */ | ||||
|             const GLfloat mult = ctx->IntegerAccumScaler; | ||||
|             static GLchan multTable[32768]; | ||||
|             static GLfloat prevMult = 0.0; | ||||
|             GLuint j; | ||||
|             const GLint max = 256 / mult; | ||||
|             const GLint max = (GLint) (256 / mult); | ||||
|             if (mult != prevMult) { | ||||
|                assert(max <= 32768); | ||||
|                for (j = 0; j < max; j++) | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: attrib.c,v 1.11 1999/11/11 01:22:25 brianp Exp $ */ | ||||
| /* $Id: attrib.c,v 1.10.2.4 2000/03/10 22:11:15 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -25,16 +25,23 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
|  | ||||
| #include <stdlib.h> | ||||
|  | ||||
| #ifdef PC_HEADER | ||||
| #include "all.h" | ||||
| #else | ||||
| #include "glheader.h" | ||||
| #ifndef XFree86Server | ||||
| #include <stdio.h> | ||||
| #else | ||||
| #include "GL/xf86glx.h" | ||||
| #endif | ||||
| #include "attrib.h" | ||||
| #include "context.h" | ||||
| #include "glmisc.h" | ||||
| #include "enable.h" | ||||
| #include "enums.h" | ||||
| #include "mem.h" | ||||
| #include "macros.h" | ||||
| #include "simple_list.h" | ||||
| #include "texstate.h" | ||||
| #include "types.h" | ||||
| @@ -85,7 +92,11 @@ static void copy_texobj_state( struct gl_texture_object *dest, | ||||
|    dest->P = src->P; | ||||
|    dest->M = src->M; | ||||
|    dest->MinMagThresh = src->MinMagThresh; | ||||
|    dest->Palette = src->Palette; | ||||
|    memcpy( dest->Palette, src->Palette, | ||||
|            sizeof(GLubyte) * MAX_TEXTURE_PALETTE_SIZE * 4 ); | ||||
|    dest->PaletteSize = src->PaletteSize; | ||||
|    dest->PaletteIntFormat = src->PaletteIntFormat; | ||||
|    dest->PaletteFormat = src->PaletteFormat; | ||||
|    dest->Complete = src->Complete; | ||||
|    dest->SampleFunc = src->SampleFunc; | ||||
| } | ||||
| @@ -417,21 +428,43 @@ void gl_PopAttrib( GLcontext* ctx ) | ||||
|                GLubyte oldAlphaRef = ctx->Color.AlphaRef; | ||||
|                GLenum oldBlendSrc = ctx->Color.BlendSrcRGB; | ||||
|                GLenum oldBlendDst = ctx->Color.BlendDstRGB; | ||||
| 	       GLenum oldLogicOp = ctx->Color.LogicOp; | ||||
|                MEMCPY( &ctx->Color, attr->data, | ||||
|                        sizeof(struct gl_colorbuffer_attrib) ); | ||||
|                if (ctx->Color.DrawBuffer != oldDrawBuffer) { | ||||
|                   _mesa_DrawBuffer( ctx->Color.DrawBuffer); | ||||
|                   gl_DrawBuffer(ctx, ctx->Color.DrawBuffer); | ||||
|                } | ||||
|                if ((ctx->Color.AlphaFunc != oldAlphaFunc || | ||||
|                     ctx->Color.AlphaRef != oldAlphaRef) && | ||||
|                    ctx->Driver.AlphaFunc) | ||||
|                   (*ctx->Driver.AlphaFunc)( ctx, ctx->Color.AlphaFunc, | ||||
|                                             ctx->Color.AlphaRef / 255.0F); | ||||
|                if ((ctx->Color.BlendSrcRGB != oldBlendSrc || | ||||
|                     ctx->Color.BlendSrcRGB != oldBlendDst) && | ||||
|                     ctx->Color.BlendDstRGB != oldBlendDst) && | ||||
|                    ctx->Driver.BlendFunc) | ||||
|                   (*ctx->Driver.BlendFunc)( ctx, ctx->Color.BlendSrcRGB, | ||||
|                                             ctx->Color.BlendDstRGB); | ||||
| 	       if (ctx->Color.LogicOp != oldLogicOp && | ||||
| 		   ctx->Driver.LogicOpcode) { | ||||
| 		  ctx->Driver.LogicOpcode( ctx, ctx->Color.LogicOp ); | ||||
|                } | ||||
|                if (ctx->Visual->RGBAflag) { | ||||
|                   GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F); | ||||
|                   GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F); | ||||
|                   GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F); | ||||
|                   GLubyte a = (GLint) (ctx->Color.ClearColor[3] * 255.0F); | ||||
|                   (*ctx->Driver.ClearColor)( ctx, r, g, b, a ); | ||||
|                   if ((ctx->Color.AlphaFunc != oldAlphaFunc || | ||||
|                        ctx->Color.AlphaRef != oldAlphaRef) && | ||||
|                       ctx->Driver.AlphaFunc) | ||||
|                      (*ctx->Driver.AlphaFunc)( ctx, ctx->Color.AlphaFunc, | ||||
|                                                ctx->Color.AlphaRef / 255.0F); | ||||
|                   if (ctx->Driver.ColorMask) { | ||||
|                      (*ctx->Driver.ColorMask)(ctx, | ||||
|                                               ctx->Color.ColorMask[0], | ||||
|                                               ctx->Color.ColorMask[1], | ||||
|                                               ctx->Color.ColorMask[2], | ||||
|                                               ctx->Color.ColorMask[3]); | ||||
|                   } | ||||
|                } | ||||
|                else { | ||||
|                   (*ctx->Driver.ClearIndex)( ctx, ctx->Color.ClearIndex); | ||||
|                } | ||||
|             } | ||||
|             break; | ||||
|          case GL_CURRENT_BIT: | ||||
| @@ -460,7 +493,7 @@ void gl_PopAttrib( GLcontext* ctx ) | ||||
|  | ||||
| #define TEST_AND_UPDATE(VALUE, NEWVALUE, ENUM)		\ | ||||
| 	if ((VALUE) != (NEWVALUE)) {			\ | ||||
| 	   _mesa_set_enable( ctx, ENUM, (NEWVALUE) );	\ | ||||
| 	   gl_set_enable( ctx, ENUM, (NEWVALUE) );	\ | ||||
| 	} | ||||
|  | ||||
|                TEST_AND_UPDATE(ctx->Color.AlphaEnabled, enable->AlphaTest, GL_ALPHA_TEST); | ||||
| @@ -470,7 +503,7 @@ void gl_PopAttrib( GLcontext* ctx ) | ||||
|                   GLuint i; | ||||
|                   for (i=0;i<MAX_CLIP_PLANES;i++) { | ||||
|                      if (ctx->Transform.ClipEnabled[i] != enable->ClipPlane[i]) | ||||
|                         _mesa_set_enable( ctx, (GLenum) (GL_CLIP_PLANE0 + i), enable->ClipPlane[i] ); | ||||
|                         gl_set_enable( ctx, (GLenum) (GL_CLIP_PLANE0 + i), enable->ClipPlane[i] ); | ||||
|                   } | ||||
|                } | ||||
|                TEST_AND_UPDATE(ctx->Light.ColorMaterialEnabled, enable->ColorMaterial, GL_COLOR_MATERIAL); | ||||
| @@ -585,7 +618,7 @@ void gl_PopAttrib( GLcontext* ctx ) | ||||
|                   (*ctx->Driver.Fogfv)( ctx, GL_FOG_INDEX, &index ); | ||||
|                   (*ctx->Driver.Fogfv)( ctx, GL_FOG_COLOR, ctx->Fog.Color ); | ||||
|                } | ||||
| 	       ctx->Enabled &= ENABLE_FOG; | ||||
| 	       ctx->Enabled &= ~ENABLE_FOG; | ||||
| 	       if (ctx->Fog.Enabled) ctx->Enabled |= ENABLE_FOG; | ||||
|             } | ||||
|             break; | ||||
| @@ -613,7 +646,13 @@ void gl_PopAttrib( GLcontext* ctx ) | ||||
|                } | ||||
|                (*ctx->Driver.Enable)( ctx, GL_LIGHTING, ctx->Light.Enabled ); | ||||
|             } | ||||
| 	    ctx->Enabled &= ENABLE_LIGHT; | ||||
|             if (ctx->Light.ShadeModel == GL_FLAT) | ||||
|                ctx->TriangleCaps |= DD_FLATSHADE; | ||||
|             else | ||||
|                ctx->TriangleCaps &= ~DD_FLATSHADE; | ||||
|             if (ctx->Driver.ShadeModel) | ||||
|                (*ctx->Driver.ShadeModel)(ctx, ctx->Light.ShadeModel); | ||||
| 	    ctx->Enabled &= ~ENABLE_LIGHT; | ||||
| 	    if (ctx->Light.Enabled && !is_empty_list(&ctx->Light.EnabledList)) | ||||
| 	       ctx->Enabled |= ENABLE_LIGHT; | ||||
|             break; | ||||
| @@ -731,8 +770,8 @@ void gl_PopAttrib( GLcontext* ctx ) | ||||
| 	    struct gl_viewport_attrib *v =  | ||||
| 	       (struct gl_viewport_attrib *)attr->data; | ||||
| 	     | ||||
| 	    _mesa_Viewport( v->X, v->Y, v->Width, v->Height ); | ||||
| 	    _mesa_DepthRange( v->Near, v->Far ); | ||||
| 	    gl_Viewport( ctx, v->X, v->Y, v->Width, v->Height ); | ||||
| 	    gl_DepthRange( ctx, v->Near, v->Far ); | ||||
| 	    break; | ||||
| 	 } | ||||
|          default: | ||||
| @@ -846,37 +885,3 @@ void gl_PopClientAttrib( GLcontext *ctx ) | ||||
|    ctx->NewState = NEW_ALL; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_PushAttrib( GLbitfield mask ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    gl_PushAttrib(ctx, mask); | ||||
| } | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_PopAttrib( void ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    gl_PopAttrib(ctx); | ||||
| } | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_PushClientAttrib( GLbitfield mask ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    gl_PushClientAttrib(ctx, mask); | ||||
| } | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_PopClientAttrib( void ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    gl_PopClientAttrib(ctx); | ||||
| } | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| /* $Id: blend.c,v 1.8 1999/11/11 01:22:25 brianp Exp $ */ | ||||
| /* $Id: blend.c,v 1.7.2.1 2000/02/21 14:59:41 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.1 | ||||
|  * Version:  3.2 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * Permission is hereby granted, free of charge, to any person obtaining a | ||||
|  * copy of this software and associated documentation files (the "Software"), | ||||
| @@ -29,7 +29,13 @@ | ||||
| #ifdef PC_HEADER | ||||
| #include "all.h" | ||||
| #else | ||||
| #include "glheader.h" | ||||
| #ifndef XFree86Server | ||||
| #include <stdio.h> | ||||
| #include <assert.h> | ||||
| #include <stdlib.h> | ||||
| #else | ||||
| #include "GL/xf86glx.h" | ||||
| #endif | ||||
| #include "alphabuf.h" | ||||
| #include "blend.h" | ||||
| #include "context.h" | ||||
| @@ -41,9 +47,8 @@ | ||||
| #endif | ||||
|  | ||||
|  | ||||
| void _mesa_BlendFunc( GLenum sfactor, GLenum dfactor ) | ||||
| void gl_BlendFunc( GLcontext *ctx, GLenum sfactor, GLenum dfactor ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glBlendFunc"); | ||||
|  | ||||
|    if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) | ||||
| @@ -103,10 +108,9 @@ void _mesa_BlendFunc( GLenum sfactor, GLenum dfactor ) | ||||
|  | ||||
| /* GL_INGR_blend_func_separate */ | ||||
| void | ||||
| _mesa_BlendFuncSeparateINGR( GLenum sfactorRGB, GLenum dfactorRGB, | ||||
|                              GLenum sfactorA, GLenum dfactorA ) | ||||
| gl_BlendFuncSeparate( GLcontext *ctx, GLenum sfactorRGB, GLenum dfactorRGB, | ||||
|                       GLenum sfactorA, GLenum dfactorA ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glBlendFuncSeparate"); | ||||
|  | ||||
|    if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) | ||||
| @@ -210,10 +214,8 @@ _mesa_BlendFuncSeparateINGR( GLenum sfactorRGB, GLenum dfactorRGB, | ||||
|  | ||||
|  | ||||
| /* This is really an extension function! */ | ||||
| void | ||||
| _mesa_BlendEquationEXT( GLenum mode ) | ||||
| void gl_BlendEquation( GLcontext *ctx, GLenum mode ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glBlendEquation"); | ||||
|  | ||||
|    if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) | ||||
| @@ -254,10 +256,9 @@ _mesa_BlendEquationEXT( GLenum mode ) | ||||
|  | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_BlendColorEXT( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) | ||||
| void gl_BlendColor( GLcontext *ctx, GLclampf red, GLclampf green, | ||||
| 		    GLclampf blue, GLclampf alpha ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    ctx->Color.BlendColor[0] = CLAMP( red,   0.0F, 1.0F ); | ||||
|    ctx->Color.BlendColor[1] = CLAMP( green, 0.0F, 1.0F ); | ||||
|    ctx->Color.BlendColor[2] = CLAMP( blue,  0.0F, 1.0F ); | ||||
| @@ -475,7 +476,7 @@ static void blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[], | ||||
|                sR = sG = sB = 1.0F - (GLfloat) Ad * ascale; | ||||
|                break; | ||||
|             case GL_SRC_ALPHA_SATURATE: | ||||
|                if (As < 1.0F - (GLfloat) Ad * ascale) { | ||||
|                if (As * ascale < 1.0F - (GLfloat) Ad * ascale) { | ||||
|                   sR = sG = sB = (GLfloat) As * ascale; | ||||
|                } | ||||
|                else { | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: clip.c,v 1.5 1999/11/11 01:22:25 brianp Exp $ */ | ||||
| /* $Id: clip.c,v 1.4.2.3 2000/04/17 17:35:47 keithw Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.1 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -25,10 +25,19 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| #ifdef PC_HEADER | ||||
| #include "all.h" | ||||
| #else | ||||
| #include "glheader.h" | ||||
| #ifndef XFree86Server | ||||
| #include <string.h> | ||||
| #include <stdlib.h> | ||||
| #include <stdio.h> | ||||
| #else | ||||
| #include "GL/xf86glx.h" | ||||
| #endif | ||||
| #include "clip.h" | ||||
| #include "context.h" | ||||
| #include "macros.h" | ||||
| @@ -42,6 +51,15 @@ | ||||
|  | ||||
|  | ||||
|  | ||||
| #define CLIP_RGBA0    0x1 | ||||
| #define CLIP_RGBA1    0x2 | ||||
| #define CLIP_TEX0     0x4 | ||||
| #define CLIP_TEX1     0x8 | ||||
| #define CLIP_INDEX0   0x10 | ||||
| #define CLIP_INDEX1   0x20 | ||||
| #define CLIP_FOG_COORD 0x40 | ||||
|  | ||||
|  | ||||
| /* Linear interpolation between A and B: */ | ||||
| #define LINTERP( T, A, B )   ( (A) + (T) * ( (B) - (A) ) ) | ||||
|  | ||||
| @@ -58,16 +76,7 @@ do {								\ | ||||
| } while(0) | ||||
|     | ||||
|  | ||||
|  | ||||
|  | ||||
| #define CLIP_RGBA0    0x1 | ||||
| #define CLIP_RGBA1    0x2 | ||||
| #define CLIP_TEX0     0x4 | ||||
| #define CLIP_TEX1     0x8 | ||||
| #define CLIP_INDEX0   0x10 | ||||
| #define CLIP_INDEX1   0x20 | ||||
|  | ||||
| static clip_interp_func clip_interp_tab[0x40];  | ||||
| static clip_interp_func clip_interp_tab[0x80];  | ||||
|  | ||||
| #define IND 0 | ||||
| #define NAME clip_nil | ||||
| @@ -113,6 +122,50 @@ static clip_interp_func clip_interp_tab[0x40]; | ||||
| #define NAME clipINDEX0_INDEX1 | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_FOG_COORD) | ||||
| #define NAME clip_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_RGBA0|CLIP_FOG_COORD) | ||||
| #define NAME clipRGBA0_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_RGBA0|CLIP_RGBA1|CLIP_FOG_COORD) | ||||
| #define NAME clipRGBA0_RGBA1_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_TEX0|CLIP_RGBA0|CLIP_FOG_COORD) | ||||
| #define NAME clipTEX0_RGBA0_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_TEX0|CLIP_RGBA0|CLIP_RGBA1|CLIP_FOG_COORD) | ||||
| #define NAME clipTEX0_RGBA0_RGBA1_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_TEX1|CLIP_TEX0|CLIP_RGBA0|CLIP_FOG_COORD) | ||||
| #define NAME clipTEX1_TEX0_RGBA0_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_TEX0|CLIP_FOG_COORD) | ||||
| #define NAME clipTEX0_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_TEX1|CLIP_TEX0|CLIP_FOG_COORD) | ||||
| #define NAME clipTEX1_TEX0_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_TEX1|CLIP_TEX0|CLIP_RGBA0|CLIP_RGBA1|CLIP_FOG_COORD) | ||||
| #define NAME clipTEX1_TEX0_RGBA0_RGBA1_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_INDEX0|CLIP_FOG_COORD) | ||||
| #define NAME clipINDEX0_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
| #define IND (CLIP_INDEX0|CLIP_INDEX1|CLIP_FOG_COORD) | ||||
| #define NAME clipINDEX0_INDEX1_FOG | ||||
| #include "interp_tmp.h" | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -122,17 +175,9 @@ static clip_interp_func clip_interp_tab[0x40]; | ||||
|  | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_ClipPlane( GLenum plane, const GLdouble *eq ) | ||||
| void gl_ClipPlane( GLcontext* ctx, GLenum plane, const GLfloat *equation ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    GLint p; | ||||
|    GLfloat equation[4]; | ||||
|  | ||||
|    equation[0] = eq[0]; | ||||
|    equation[1] = eq[1]; | ||||
|    equation[2] = eq[2]; | ||||
|    equation[3] = eq[3]; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glClipPlane"); | ||||
|  | ||||
| @@ -183,10 +228,8 @@ void gl_update_userclip( GLcontext *ctx ) | ||||
|    } | ||||
| } | ||||
|  | ||||
| void | ||||
| _mesa_GetClipPlane( GLenum plane, GLdouble *equation ) | ||||
| void gl_GetClipPlane( GLcontext* ctx, GLenum plane, GLdouble *equation ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    GLint p; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END(ctx, "glGetClipPlane"); | ||||
| @@ -258,10 +301,12 @@ GLuint gl_userclip_point( GLcontext* ctx, const GLfloat v[] ) | ||||
|  | ||||
|  | ||||
|  | ||||
| #if defined(__i386__) | ||||
| #if 0 | ||||
| #define NEGATIVE(x) ((*(int *)&x)<0) | ||||
| #define DIFFERENT_SIGNS(a,b) ((a*b) < 0) | ||||
| #else | ||||
| #define NEGATIVE(x) (x < 0) | ||||
| #define DIFFERENT_SIGNS(a,b) ((a*b) < 0) | ||||
| #endif | ||||
|  | ||||
|  | ||||
| @@ -331,13 +376,10 @@ void gl_update_clipmask( GLcontext *ctx ) | ||||
|  | ||||
|    if (ctx->Visual->RGBAflag)  | ||||
|    { | ||||
|       if (ctx->Light.ShadeModel==GL_SMOOTH)  | ||||
|       { | ||||
| 	 mask |= CLIP_RGBA0; | ||||
|       mask |= CLIP_RGBA0; | ||||
|        | ||||
| 	 if (ctx->TriangleCaps & (DD_TRI_LIGHT_TWOSIDE|DD_SEPERATE_SPECULAR)) | ||||
| 	    mask |= CLIP_RGBA1; | ||||
|       } | ||||
|       if (ctx->TriangleCaps & (DD_TRI_LIGHT_TWOSIDE|DD_SEPERATE_SPECULAR)) | ||||
|          mask |= CLIP_RGBA1; | ||||
|  | ||||
|       if (ctx->Texture.ReallyEnabled & 0xf0) | ||||
| 	 mask |= CLIP_TEX1|CLIP_TEX0; | ||||
| @@ -353,6 +395,8 @@ void gl_update_clipmask( GLcontext *ctx ) | ||||
| 	 mask |= CLIP_INDEX1; | ||||
|    } | ||||
|  | ||||
|    if (ctx->FogMode == FOG_FRAGMENT && (ctx->TriangleCaps & DD_CLIP_FOG_COORD)) | ||||
|       mask |= CLIP_FOG_COORD; | ||||
|     | ||||
|    ctx->ClipInterpFunc = clip_interp_tab[mask]; | ||||
|    ctx->poly_clip_tab = gl_poly_clip_tab[0]; | ||||
| @@ -448,11 +492,22 @@ void gl_init_clip(void) | ||||
|    clip_interp_tab[CLIP_TEX1|CLIP_TEX0|CLIP_RGBA0] = clipTEX1_TEX0_RGBA0; | ||||
|    clip_interp_tab[CLIP_TEX1|CLIP_TEX0|CLIP_RGBA0|CLIP_RGBA1] =  | ||||
|       clipTEX1_TEX0_RGBA0_RGBA1; | ||||
|  | ||||
|    clip_interp_tab[CLIP_TEX0] = clipTEX0; | ||||
|    clip_interp_tab[CLIP_TEX1|CLIP_TEX0] = clipTEX1_TEX0; | ||||
|  | ||||
|    clip_interp_tab[CLIP_INDEX0] = clipINDEX0; | ||||
|    clip_interp_tab[CLIP_INDEX0|CLIP_INDEX1] = clipINDEX0_INDEX1; | ||||
|  | ||||
|    clip_interp_tab[CLIP_FOG_COORD] = clip_FOG; | ||||
|    clip_interp_tab[CLIP_RGBA0|CLIP_FOG_COORD] = clipRGBA0_FOG; | ||||
|    clip_interp_tab[CLIP_RGBA0|CLIP_RGBA1|CLIP_FOG_COORD] = clipRGBA0_RGBA1_FOG; | ||||
|    clip_interp_tab[CLIP_TEX0|CLIP_RGBA0|CLIP_FOG_COORD] = clipTEX0_RGBA0_FOG; | ||||
|    clip_interp_tab[CLIP_TEX0|CLIP_RGBA0|CLIP_RGBA1|CLIP_FOG_COORD] = clipTEX0_RGBA0_RGBA1_FOG; | ||||
|    clip_interp_tab[CLIP_TEX1|CLIP_TEX0|CLIP_RGBA0|CLIP_FOG_COORD] = clipTEX1_TEX0_RGBA0_FOG; | ||||
|    clip_interp_tab[CLIP_TEX1|CLIP_TEX0|CLIP_RGBA0|CLIP_RGBA1|CLIP_FOG_COORD] =  | ||||
|       clipTEX1_TEX0_RGBA0_RGBA1_FOG; | ||||
|    clip_interp_tab[CLIP_TEX0|CLIP_FOG_COORD] = clipTEX0_FOG; | ||||
|    clip_interp_tab[CLIP_TEX1|CLIP_TEX0|CLIP_FOG_COORD] = clipTEX1_TEX0_FOG; | ||||
|    clip_interp_tab[CLIP_INDEX0|CLIP_FOG_COORD] = clipINDEX0_FOG; | ||||
|    clip_interp_tab[CLIP_INDEX0|CLIP_INDEX1|CLIP_FOG_COORD] = clipINDEX0_INDEX1_FOG; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: colortab.c,v 1.4 1999/11/11 01:22:25 brianp Exp $ */ | ||||
| /* $Id: colortab.c,v 1.3.2.1 2000/02/28 20:40:18 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -23,15 +23,20 @@ | ||||
|  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
| /* $XFree86: xc/lib/GL/mesa/src/colortab.c,v 1.2 1999/04/04 00:20:21 dawes Exp $ */ | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| #ifdef PC_HEADER | ||||
| #include "all.h" | ||||
| #else | ||||
| #include "glheader.h" | ||||
| #ifdef XFree86Server | ||||
| #include "GL/xf86glx.h" | ||||
| #endif | ||||
| #include "colortab.h" | ||||
| #include "context.h" | ||||
| #include "image.h" | ||||
| #include "macros.h" | ||||
| #endif | ||||
|  | ||||
| @@ -40,8 +45,7 @@ | ||||
| /* | ||||
|  * Return GL_TRUE if k is a power of two, else return GL_FALSE. | ||||
|  */ | ||||
| static GLboolean | ||||
| power_of_two( GLint k ) | ||||
| static GLboolean power_of_two( GLint k ) | ||||
| { | ||||
|    GLint i, m = 1; | ||||
|    for (i=0; i<32; i++) { | ||||
| @@ -53,8 +57,7 @@ power_of_two( GLint k ) | ||||
| } | ||||
|  | ||||
|  | ||||
| static GLint | ||||
| decode_internal_format( GLint format ) | ||||
| static GLint decode_internal_format( GLint format ) | ||||
| { | ||||
|    switch (format) { | ||||
|       case GL_ALPHA: | ||||
| @@ -111,171 +114,81 @@ decode_internal_format( GLint format ) | ||||
| } | ||||
|  | ||||
|  | ||||
| void  | ||||
| _mesa_ColorTable( GLenum target, GLenum internalFormat, | ||||
|                   GLsizei width, GLenum format, GLenum type, | ||||
|                   const GLvoid *table ) | ||||
| void gl_ColorTable( GLcontext *ctx, GLenum target, | ||||
|                     GLenum internalFormat, struct gl_image *table ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; | ||||
|    struct gl_texture_object *texObj; | ||||
|    struct gl_palette *palette; | ||||
|    GLboolean proxy = GL_FALSE; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glColorTable"); | ||||
|  | ||||
|    switch (target) { | ||||
|       case GL_TEXTURE_1D: | ||||
|          texObj = texUnit->CurrentD[1]; | ||||
|          palette = &texObj->Palette; | ||||
|          break; | ||||
|       case GL_TEXTURE_2D: | ||||
|          texObj = texUnit->CurrentD[2]; | ||||
|          palette = &texObj->Palette; | ||||
|          break; | ||||
|       case GL_TEXTURE_3D: | ||||
|          texObj = texUnit->CurrentD[3]; | ||||
|          palette = &texObj->Palette; | ||||
|          break; | ||||
|       case GL_PROXY_TEXTURE_1D: | ||||
|          texObj = ctx->Texture.Proxy1D; | ||||
|          palette = &texObj->Palette; | ||||
|          proxy = GL_TRUE; | ||||
|          break; | ||||
|       case GL_PROXY_TEXTURE_2D: | ||||
|          texObj = ctx->Texture.Proxy2D; | ||||
|          palette = &texObj->Palette; | ||||
|          proxy = GL_TRUE; | ||||
|          break; | ||||
|       case GL_PROXY_TEXTURE_3D: | ||||
|          texObj = ctx->Texture.Proxy3D; | ||||
|          palette = &texObj->Palette; | ||||
|          proxy = GL_TRUE; | ||||
|          break; | ||||
|       case GL_SHARED_TEXTURE_PALETTE_EXT: | ||||
|          texObj = NULL; | ||||
|          palette = &ctx->Texture.Palette; | ||||
|          break; | ||||
|       default: | ||||
|          gl_error(ctx, GL_INVALID_ENUM, "glColorTable(target)"); | ||||
|          return; | ||||
|    } | ||||
|  | ||||
|    assert(palette); | ||||
|  | ||||
|    if (!gl_is_legal_format_and_type(format, type)) { | ||||
|       gl_error(ctx, GL_INVALID_ENUM, "glColorTable(format or type)"); | ||||
|       return; | ||||
|    } | ||||
|  | ||||
|    if (decode_internal_format(internalFormat) < 0) { | ||||
|       gl_error( ctx, GL_INVALID_ENUM, "glColorTable(internalFormat)" ); | ||||
|       return; | ||||
|    } | ||||
|  | ||||
|    if (width < 1 || width > MAX_TEXTURE_PALETTE_SIZE || !power_of_two(width)) { | ||||
|       gl_error(ctx, GL_INVALID_VALUE, "glColorTable(width)"); | ||||
|       if (proxy) { | ||||
|          palette->Size = 0; | ||||
|          palette->IntFormat = (GLenum) 0; | ||||
|          palette->Format = (GLenum) 0; | ||||
|       } | ||||
|       return; | ||||
|    } | ||||
|  | ||||
|    palette->Size = width; | ||||
|    palette->IntFormat = internalFormat; | ||||
|    palette->Format = (GLenum) decode_internal_format(internalFormat); | ||||
|    if (!proxy) { | ||||
|       _mesa_unpack_ubyte_color_span(ctx, width, palette->Format, | ||||
|                                     palette->Table,  /* dest */ | ||||
|                                     format, type, table, | ||||
|                                     &ctx->Unpack, GL_FALSE); | ||||
|    } | ||||
|    if (texObj) { | ||||
|       /* per-texture object palette */ | ||||
|       if (ctx->Driver.UpdateTexturePalette) { | ||||
|          (*ctx->Driver.UpdateTexturePalette)( ctx, texObj ); | ||||
|       } | ||||
|    } | ||||
|    else { | ||||
|       /* shared texture palette */ | ||||
|       if (ctx->Driver.UpdateTexturePalette) { | ||||
|          (*ctx->Driver.UpdateTexturePalette)( ctx, NULL ); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_ColorSubTable( GLenum target, GLsizei start, | ||||
|                      GLsizei count, GLenum format, GLenum type, | ||||
|                      const GLvoid *table ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; | ||||
|    struct gl_texture_object *texObj; | ||||
|    struct gl_palette *palette; | ||||
|    GLint comps; | ||||
|    GLubyte *dest; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glColorSubTable"); | ||||
|  | ||||
|    switch (target) { | ||||
|       case GL_TEXTURE_1D: | ||||
|          texObj = texUnit->CurrentD[1]; | ||||
|          palette = &texObj->Palette; | ||||
|          break; | ||||
|       case GL_TEXTURE_2D: | ||||
|          texObj = texUnit->CurrentD[2]; | ||||
|          palette = &texObj->Palette; | ||||
|          break; | ||||
|       case GL_TEXTURE_3D: | ||||
|       case GL_TEXTURE_3D_EXT: | ||||
|          texObj = texUnit->CurrentD[3]; | ||||
|          palette = &texObj->Palette; | ||||
|          break; | ||||
|       case GL_PROXY_TEXTURE_1D: | ||||
|          texObj = ctx->Texture.Proxy1D; | ||||
|          proxy = GL_TRUE; | ||||
|          break; | ||||
|       case GL_PROXY_TEXTURE_2D: | ||||
|          texObj = ctx->Texture.Proxy2D; | ||||
|          proxy = GL_TRUE; | ||||
|          break; | ||||
|       case GL_PROXY_TEXTURE_3D_EXT: | ||||
|          texObj = ctx->Texture.Proxy3D; | ||||
|          proxy = GL_TRUE; | ||||
|          break; | ||||
|       case GL_SHARED_TEXTURE_PALETTE_EXT: | ||||
|          texObj = NULL; | ||||
|          palette = &ctx->Texture.Palette; | ||||
|          break; | ||||
|       default: | ||||
|          gl_error(ctx, GL_INVALID_ENUM, "glColorSubTable(target)"); | ||||
|          gl_error(ctx, GL_INVALID_ENUM, "glColorTableEXT(target)"); | ||||
|          return; | ||||
|    } | ||||
|  | ||||
|    assert(palette); | ||||
|    /* internalformat = just like glTexImage */ | ||||
|  | ||||
|    if (!gl_is_legal_format_and_type(format, type)) { | ||||
|       gl_error(ctx, GL_INVALID_ENUM, "glColorSubTable(format or type)"); | ||||
|    if (table->Width < 1 || table->Width > MAX_TEXTURE_PALETTE_SIZE | ||||
|        || !power_of_two(table->Width)) { | ||||
|       gl_error(ctx, GL_INVALID_VALUE, "glColorTableEXT(width)"); | ||||
|       if (proxy) { | ||||
|          texObj->PaletteSize = 0; | ||||
|          texObj->PaletteIntFormat = (GLenum) 0; | ||||
|          texObj->PaletteFormat = (GLenum) 0; | ||||
|       } | ||||
|       return; | ||||
|    } | ||||
|  | ||||
|    if (count < 1) { | ||||
|       gl_error(ctx, GL_INVALID_VALUE, "glColorSubTable(count)"); | ||||
|       return; | ||||
|    } | ||||
|  | ||||
|    comps = gl_components_in_format(format); | ||||
|    assert(comps > 0);  /* error should be caught sooner */ | ||||
|  | ||||
|    if (start + count > palette->Size) { | ||||
|       gl_error(ctx, GL_INVALID_VALUE, "glColorSubTable(count)"); | ||||
|       return; | ||||
|    } | ||||
|    dest = palette->Table + start * comps * sizeof(GLubyte); | ||||
|    _mesa_unpack_ubyte_color_span(ctx, count, palette->Format, dest, | ||||
|                                  format, type, table, | ||||
|                                  &ctx->Unpack, GL_FALSE); | ||||
|  | ||||
|    if (texObj) { | ||||
|       /* per-texture object palette */ | ||||
|       if (ctx->Driver.UpdateTexturePalette) { | ||||
|          (*ctx->Driver.UpdateTexturePalette)( ctx, texObj ); | ||||
|       texObj->PaletteSize = table->Width; | ||||
|       texObj->PaletteIntFormat = internalFormat; | ||||
|       texObj->PaletteFormat = (GLenum) decode_internal_format(internalFormat); | ||||
|       if (!proxy) { | ||||
|          MEMCPY(texObj->Palette, table->Data, table->Width*table->Components); | ||||
|          if (ctx->Driver.UpdateTexturePalette) { | ||||
|             (*ctx->Driver.UpdateTexturePalette)( ctx, texObj ); | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|    else { | ||||
|       /* shared texture palette */ | ||||
|       ctx->Texture.PaletteSize = table->Width; | ||||
|       ctx->Texture.PaletteIntFormat = internalFormat; | ||||
|       ctx->Texture.PaletteFormat = (GLenum) decode_internal_format(internalFormat); | ||||
|       MEMCPY(ctx->Texture.Palette, table->Data, table->Width*table->Components); | ||||
|       if (ctx->Driver.UpdateTexturePalette) { | ||||
|          (*ctx->Driver.UpdateTexturePalette)( ctx, NULL ); | ||||
|       } | ||||
| @@ -284,96 +197,38 @@ _mesa_ColorSubTable( GLenum target, GLsizei start, | ||||
|  | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_GetColorTable( GLenum target, GLenum format, | ||||
|                      GLenum type, GLvoid *table ) | ||||
| void gl_ColorSubTable( GLcontext *ctx, GLenum target, | ||||
|                        GLsizei start, struct gl_image *data ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; | ||||
|    struct gl_palette *palette; | ||||
|    GLubyte rgba[MAX_TEXTURE_PALETTE_SIZE][4]; | ||||
|    GLint i; | ||||
|    /* XXX TODO */ | ||||
|    gl_problem(ctx, "glColorSubTableEXT not implemented"); | ||||
|    (void) target; | ||||
|    (void) start; | ||||
|    (void) data; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| void gl_GetColorTable( GLcontext *ctx, GLenum target, GLenum format, | ||||
|                        GLenum type, GLvoid *table ) | ||||
| { | ||||
|    ASSERT_OUTSIDE_BEGIN_END(ctx, "glGetBooleanv"); | ||||
|  | ||||
|    switch (target) { | ||||
|       case GL_TEXTURE_1D: | ||||
|          palette = &texUnit->CurrentD[1]->Palette; | ||||
|          break; | ||||
|       case GL_TEXTURE_2D: | ||||
|          palette = &texUnit->CurrentD[2]->Palette; | ||||
|          break; | ||||
|       case GL_TEXTURE_3D: | ||||
|          palette = &texUnit->CurrentD[3]->Palette; | ||||
|       case GL_TEXTURE_3D_EXT: | ||||
|          break; | ||||
|       case GL_SHARED_TEXTURE_PALETTE_EXT: | ||||
|          palette = &ctx->Texture.Palette; | ||||
|          break; | ||||
|       default: | ||||
|          gl_error(ctx, GL_INVALID_ENUM, "glGetColorTable(target)"); | ||||
|          gl_error(ctx, GL_INVALID_ENUM, "glGetColorTableEXT(target)"); | ||||
|          return; | ||||
|    } | ||||
|  | ||||
|    assert(palette); | ||||
|  | ||||
|    switch (palette->Format) { | ||||
|       case GL_ALPHA: | ||||
|          for (i = 0; i < palette->Size; i++) { | ||||
|             rgba[i][RCOMP] = 0; | ||||
|             rgba[i][GCOMP] = 0; | ||||
|             rgba[i][BCOMP] = 0; | ||||
|             rgba[i][ACOMP] = palette->Table[i]; | ||||
|          } | ||||
|          break; | ||||
|       case GL_LUMINANCE: | ||||
|          for (i = 0; i < palette->Size; i++) { | ||||
|             rgba[i][RCOMP] = palette->Table[i]; | ||||
|             rgba[i][GCOMP] = palette->Table[i]; | ||||
|             rgba[i][BCOMP] = palette->Table[i]; | ||||
|             rgba[i][ACOMP] = 255; | ||||
|          } | ||||
|          break; | ||||
|       case GL_LUMINANCE_ALPHA: | ||||
|          for (i = 0; i < palette->Size; i++) { | ||||
|             rgba[i][RCOMP] = palette->Table[i*2+0]; | ||||
|             rgba[i][GCOMP] = palette->Table[i*2+0]; | ||||
|             rgba[i][BCOMP] = palette->Table[i*2+0]; | ||||
|             rgba[i][ACOMP] = palette->Table[i*2+1]; | ||||
|          } | ||||
|          break; | ||||
|       case GL_INTENSITY: | ||||
|          for (i = 0; i < palette->Size; i++) { | ||||
|             rgba[i][RCOMP] = palette->Table[i]; | ||||
|             rgba[i][GCOMP] = palette->Table[i]; | ||||
|             rgba[i][BCOMP] = palette->Table[i]; | ||||
|             rgba[i][ACOMP] = 255; | ||||
|          } | ||||
|          break; | ||||
|       case GL_RGB: | ||||
|          for (i = 0; i < palette->Size; i++) { | ||||
|             rgba[i][RCOMP] = palette->Table[i*3+0]; | ||||
|             rgba[i][GCOMP] = palette->Table[i*3+1]; | ||||
|             rgba[i][BCOMP] = palette->Table[i*3+2]; | ||||
|             rgba[i][ACOMP] = 255; | ||||
|          } | ||||
|          break; | ||||
|       case GL_RGBA: | ||||
|          for (i = 0; i < palette->Size; i++) { | ||||
|             rgba[i][RCOMP] = palette->Table[i*4+0]; | ||||
|             rgba[i][GCOMP] = palette->Table[i*4+1]; | ||||
|             rgba[i][BCOMP] = palette->Table[i*4+2]; | ||||
|             rgba[i][ACOMP] = palette->Table[i*4+3]; | ||||
|          } | ||||
|          break; | ||||
|       default: | ||||
|          gl_problem(ctx, "bad palette format in glGetColorTable"); | ||||
|          return; | ||||
|    } | ||||
|  | ||||
|    gl_pack_rgba_span(ctx, palette->Size, (const GLubyte (*)[]) rgba, | ||||
|                      format, type, table, &ctx->Pack, GL_FALSE); | ||||
|  | ||||
|    gl_problem(ctx, "glGetColorTable not implemented!"); | ||||
|    gl_problem(ctx, "glGetColorTableEXT not implemented!"); | ||||
|    (void) format; | ||||
|    (void) type; | ||||
|    (void) table; | ||||
| @@ -381,37 +236,46 @@ _mesa_GetColorTable( GLenum target, GLenum format, | ||||
|  | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_GetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params ) | ||||
| void gl_GetColorTableParameterfv( GLcontext *ctx, GLenum target, | ||||
|                                   GLenum pname, GLfloat *params ) | ||||
| { | ||||
|    GLint iparams[10]; | ||||
|    _mesa_GetColorTableParameteriv( target, pname, iparams ); | ||||
|  | ||||
|    gl_GetColorTableParameteriv( ctx, target, pname, iparams ); | ||||
|    *params = (GLfloat) iparams[0]; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_GetColorTableParameteriv( GLenum target, GLenum pname, GLint *params ) | ||||
| void gl_GetColorTableParameteriv( GLcontext *ctx, GLenum target, | ||||
|                                   GLenum pname, GLint *params ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; | ||||
|    struct gl_palette *palette; | ||||
|    struct gl_texture_object *texObj; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END(ctx, "glGetColorTableParameter"); | ||||
|  | ||||
|    switch (target) { | ||||
|       case GL_TEXTURE_1D: | ||||
|          palette = &texUnit->CurrentD[1]->Palette; | ||||
|          texObj = texUnit->CurrentD[1]; | ||||
|          break; | ||||
|       case GL_TEXTURE_2D: | ||||
|          palette = &texUnit->CurrentD[2]->Palette; | ||||
|          texObj = texUnit->CurrentD[2]; | ||||
|          break; | ||||
|       case GL_TEXTURE_3D: | ||||
|          palette = &texUnit->CurrentD[3]->Palette; | ||||
|       case GL_TEXTURE_3D_EXT: | ||||
|          texObj = texUnit->CurrentD[3]; | ||||
|          break; | ||||
|       case GL_PROXY_TEXTURE_1D: | ||||
|          texObj = ctx->Texture.Proxy1D; | ||||
|          break; | ||||
|       case GL_PROXY_TEXTURE_2D: | ||||
|          texObj = ctx->Texture.Proxy2D; | ||||
|          break; | ||||
|       case GL_PROXY_TEXTURE_3D: | ||||
|          texObj = ctx->Texture.Proxy3D; | ||||
|          break; | ||||
|       case GL_SHARED_TEXTURE_PALETTE_EXT: | ||||
|          palette = &ctx->Texture.Palette; | ||||
|          texObj = NULL; | ||||
|          break; | ||||
|       default: | ||||
|          gl_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameter(target)"); | ||||
| @@ -419,28 +283,34 @@ _mesa_GetColorTableParameteriv( GLenum target, GLenum pname, GLint *params ) | ||||
|    } | ||||
|  | ||||
|    switch (pname) { | ||||
|       case GL_COLOR_TABLE_FORMAT: | ||||
|          *params = palette->IntFormat; | ||||
|       case GL_COLOR_TABLE_FORMAT_EXT: | ||||
|          if (texObj) | ||||
|             *params = texObj->PaletteIntFormat; | ||||
|          else | ||||
|             *params = ctx->Texture.PaletteIntFormat; | ||||
|          break; | ||||
|       case GL_COLOR_TABLE_WIDTH: | ||||
|          *params = palette->Size; | ||||
|       case GL_COLOR_TABLE_WIDTH_EXT: | ||||
|          if (texObj) | ||||
|             *params = texObj->PaletteSize; | ||||
|          else | ||||
|             *params = ctx->Texture.PaletteSize; | ||||
|          break; | ||||
|       case GL_COLOR_TABLE_RED_SIZE: | ||||
|       case GL_COLOR_TABLE_RED_SIZE_EXT: | ||||
|          *params = 8; | ||||
|          break; | ||||
|       case GL_COLOR_TABLE_GREEN_SIZE: | ||||
|       case GL_COLOR_TABLE_GREEN_SIZE_EXT: | ||||
|          *params = 8; | ||||
|          break; | ||||
|       case GL_COLOR_TABLE_BLUE_SIZE: | ||||
|       case GL_COLOR_TABLE_BLUE_SIZE_EXT: | ||||
|          *params = 8; | ||||
|          break; | ||||
|       case GL_COLOR_TABLE_ALPHA_SIZE: | ||||
|       case GL_COLOR_TABLE_ALPHA_SIZE_EXT: | ||||
|          *params = 8; | ||||
|          break; | ||||
|       case GL_COLOR_TABLE_LUMINANCE_SIZE: | ||||
|       case GL_COLOR_TABLE_LUMINANCE_SIZE_EXT: | ||||
|          *params = 8; | ||||
|          break; | ||||
|       case GL_COLOR_TABLE_INTENSITY_SIZE: | ||||
|       case GL_COLOR_TABLE_INTENSITY_SIZE_EXT: | ||||
|          *params = 8; | ||||
|          break; | ||||
|       default: | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: context.c,v 1.19 1999/11/11 01:22:25 brianp Exp $ */ | ||||
| /* $Id: context.c,v 1.18.2.8 2000/03/06 16:59:26 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.1 | ||||
|  * | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -25,6 +25,8 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* $XFree86: xc/lib/GL/mesa/src/context.c,v 1.4 1999/04/04 00:20:21 dawes Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * If multi-threading is enabled (-DTHREADS) then each thread has it's | ||||
|  * own rendering context.  A thread obtains the pointer to its GLcontext | ||||
| @@ -34,34 +36,43 @@ | ||||
|  */ | ||||
|  | ||||
|  | ||||
|  | ||||
| #ifdef PC_HEADER | ||||
| #include "all.h" | ||||
| #else | ||||
| #include "glheader.h" | ||||
| #ifndef XFree86Server | ||||
| #include <assert.h> | ||||
| #include <math.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #else | ||||
| #include "GL/xf86glx.h" | ||||
| #endif | ||||
| #include "accum.h" | ||||
| #include "alphabuf.h" | ||||
| #include "api.h" | ||||
| #include "clip.h" | ||||
| #include "context.h" | ||||
| #include "cva.h" | ||||
| #include "depth.h" | ||||
| #include "dispatch.h" | ||||
| #include "dlist.h" | ||||
| #include "eval.h" | ||||
| #include "enums.h" | ||||
| #include "extensions.h" | ||||
| #include "fog.h" | ||||
| #include "glapi.h" | ||||
| #include "get.h" | ||||
| #include "hash.h" | ||||
| #include "light.h" | ||||
| #include "lines.h" | ||||
| #include "dlist.h" | ||||
| #include "macros.h" | ||||
| #include "matrix.h" | ||||
| #include "mem.h" | ||||
| #include "mmath.h" | ||||
| #include "pb.h" | ||||
| #include "pipeline.h" | ||||
| #include "points.h" | ||||
| #include "pointers.h" | ||||
| #include "quads.h" | ||||
| #include "shade.h" | ||||
| #include "simple_list.h" | ||||
| @@ -85,6 +96,40 @@ | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Memory allocation functions.  Called via the MALLOC, CALLOC and | ||||
|  * FREE macros when DEBUG symbol is defined. | ||||
|  * You might want to set breakpoints on these functions or plug in | ||||
|  * other memory allocation functions.  The Mesa sources should only | ||||
|  * use the MALLOC and FREE macros (which could also be overriden). | ||||
|  * | ||||
|  * XXX these functions should probably go into a new glmemory.c file. | ||||
|  */ | ||||
|  | ||||
| /* | ||||
|  * Allocate memory (uninitialized) | ||||
|  */ | ||||
| void *gl_malloc(size_t bytes) | ||||
| { | ||||
|    return malloc(bytes); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Allocate memory and initialize to zero. | ||||
|  */ | ||||
| void *gl_calloc(size_t bytes) | ||||
| { | ||||
|    return calloc(1, bytes); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Free memory | ||||
|  */ | ||||
| void gl_free(void *ptr) | ||||
| { | ||||
|    free(ptr); | ||||
| } | ||||
|  | ||||
|  | ||||
| /**********************************************************************/ | ||||
| /*****                  Context and Thread management             *****/ | ||||
| @@ -113,7 +158,7 @@ static void set_thread_context( GLcontext *ctx ) { | ||||
| #else | ||||
|  | ||||
| /* One Current Context pointer for all threads in the address space */ | ||||
| GLcontext *_mesa_current_context = NULL; | ||||
| GLcontext *CC = NULL; | ||||
| struct immediate *CURRENT_INPUT = NULL; | ||||
|  | ||||
| #endif /*THREADS*/ | ||||
| @@ -322,9 +367,9 @@ static struct gl_shared_state *alloc_shared_state( void ) | ||||
|    if (!ss) | ||||
|       return NULL; | ||||
|  | ||||
|    ss->DisplayList = NewHashTable(); | ||||
|    ss->DisplayList = _mesa_NewHashTable(); | ||||
|  | ||||
|    ss->TexObjects = NewHashTable(); | ||||
|    ss->TexObjects = _mesa_NewHashTable(); | ||||
|  | ||||
|    /* Default Texture objects */ | ||||
|    outOfMemory = GL_FALSE; | ||||
| @@ -340,9 +385,9 @@ static struct gl_shared_state *alloc_shared_state( void ) | ||||
|    if (!ss->DisplayList || !ss->TexObjects || outOfMemory) { | ||||
|       /* Ran out of memory at some point.  Free everything and return NULL */ | ||||
|       if (ss->DisplayList) | ||||
|          DeleteHashTable(ss->DisplayList); | ||||
|          _mesa_DeleteHashTable(ss->DisplayList); | ||||
|       if (ss->TexObjects) | ||||
|          DeleteHashTable(ss->TexObjects); | ||||
|          _mesa_DeleteHashTable(ss->TexObjects); | ||||
|       if (ss->DefaultD[1]) | ||||
|          gl_free_texture_object(ss, ss->DefaultD[1]); | ||||
|       if (ss->DefaultD[2]) | ||||
| @@ -365,7 +410,7 @@ static void free_shared_state( GLcontext *ctx, struct gl_shared_state *ss ) | ||||
| { | ||||
|    /* Free display lists */ | ||||
|    while (1) { | ||||
|       GLuint list = HashFirstEntry(ss->DisplayList); | ||||
|       GLuint list = _mesa_HashFirstEntry(ss->DisplayList); | ||||
|       if (list) { | ||||
|          gl_destroy_list(ctx, list); | ||||
|       } | ||||
| @@ -373,7 +418,7 @@ static void free_shared_state( GLcontext *ctx, struct gl_shared_state *ss ) | ||||
|          break; | ||||
|       } | ||||
|    } | ||||
|    DeleteHashTable(ss->DisplayList); | ||||
|    _mesa_DeleteHashTable(ss->DisplayList); | ||||
|  | ||||
|    /* Free texture objects */ | ||||
|    while (ss->TexObjectList) | ||||
| @@ -383,7 +428,7 @@ static void free_shared_state( GLcontext *ctx, struct gl_shared_state *ss ) | ||||
|       /* this function removes from linked list too! */ | ||||
|       gl_free_texture_object(ss, ss->TexObjectList); | ||||
|    } | ||||
|    DeleteHashTable(ss->TexObjects); | ||||
|    _mesa_DeleteHashTable(ss->TexObjects); | ||||
|  | ||||
|    FREE(ss); | ||||
| } | ||||
| @@ -534,6 +579,7 @@ static void init_1d_map( struct gl_1d_map *map, int n, const float *initial ) | ||||
|       for (i=0;i<n;i++) | ||||
|          map->Points[i] = initial[i]; | ||||
|    } | ||||
|    map->Retain = GL_FALSE; | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -552,20 +598,10 @@ static void init_2d_map( struct gl_2d_map *map, int n, const float *initial ) | ||||
|       for (i=0;i<n;i++) | ||||
|          map->Points[i] = initial[i]; | ||||
|    } | ||||
|    map->Retain = GL_FALSE; | ||||
| } | ||||
|  | ||||
|  | ||||
| static void init_palette( struct gl_palette *p ) | ||||
| { | ||||
|    p->Table[0] = 255; | ||||
|    p->Table[1] = 255; | ||||
|    p->Table[2] = 255; | ||||
|    p->Table[3] = 255; | ||||
|    p->Size = 1; | ||||
|    p->IntFormat = GL_RGBA; | ||||
|    p->Format = GL_RGBA; | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Initialize a gl_context structure to default values. | ||||
| @@ -586,7 +622,7 @@ static void initialize_context( GLcontext *ctx ) | ||||
|       gl_matrix_alloc_inv( &ctx->ModelView ); | ||||
|  | ||||
|       ctx->ModelViewStackDepth = 0; | ||||
|       for (i = 0 ; i < MAX_MODELVIEW_STACK_DEPTH ; i++) { | ||||
|       for (i = 0; i < MAX_MODELVIEW_STACK_DEPTH - 1; i++) { | ||||
| 	 gl_matrix_ctr( &ctx->ModelViewStack[i] ); | ||||
| 	 gl_matrix_alloc_inv( &ctx->ModelViewStack[i] ); | ||||
|       } | ||||
| @@ -603,16 +639,16 @@ static void initialize_context( GLcontext *ctx ) | ||||
|       ctx->NearFarStack[0][0] = 1.0; /* These values seem weird by make */ | ||||
|       ctx->NearFarStack[0][1] = 0.0; /* sense mathematically. */ | ||||
|  | ||||
|       for (i = 0 ; i < MAX_PROJECTION_STACK_DEPTH ; i++) { | ||||
|       for (i = 0; i < MAX_PROJECTION_STACK_DEPTH - 1; i++) { | ||||
| 	 gl_matrix_ctr( &ctx->ProjectionStack[i] ); | ||||
| 	 gl_matrix_alloc_inv( &ctx->ProjectionStack[i] ); | ||||
|       } | ||||
|  | ||||
|       /* Texture matrix */ | ||||
|       for (i=0; i<MAX_TEXTURE_UNITS; i++) { | ||||
|       for (i = 0; i < MAX_TEXTURE_UNITS; i++) { | ||||
| 	 gl_matrix_ctr( &ctx->TextureMatrix[i] ); | ||||
| 	 ctx->TextureStackDepth[i] = 0; | ||||
| 	 for (j = 0 ; j < MAX_TEXTURE_STACK_DEPTH ; j++) { | ||||
| 	 for (j = 0; j < MAX_TEXTURE_STACK_DEPTH - 1; j++) { | ||||
| 	    ctx->TextureStack[i][j].inv = 0; | ||||
| 	 } | ||||
|       } | ||||
| @@ -882,9 +918,9 @@ static void initialize_context( GLcontext *ctx ) | ||||
|       ctx->Stencil.ZPassFunc = GL_KEEP; | ||||
|       ctx->Stencil.ZFailFunc = GL_KEEP; | ||||
|       ctx->Stencil.Ref = 0; | ||||
|       ctx->Stencil.ValueMask = 0xff; | ||||
|       ctx->Stencil.ValueMask = STENCIL_MAX; | ||||
|       ctx->Stencil.Clear = 0; | ||||
|       ctx->Stencil.WriteMask = 0xff; | ||||
|       ctx->Stencil.WriteMask = STENCIL_MAX; | ||||
|  | ||||
|       /* Texture group */ | ||||
|       ctx->Texture.CurrentUnit = 0;      /* multitexture */ | ||||
| @@ -894,7 +930,14 @@ static void initialize_context( GLcontext *ctx ) | ||||
|       for (i=0; i<MAX_TEXTURE_UNITS; i++) | ||||
|          init_texture_unit( ctx, i ); | ||||
|  | ||||
|       init_palette(&ctx->Texture.Palette); | ||||
|       ctx->Texture.SharedPalette = GL_FALSE; | ||||
|       ctx->Texture.Palette[0] = 255; | ||||
|       ctx->Texture.Palette[1] = 255; | ||||
|       ctx->Texture.Palette[2] = 255; | ||||
|       ctx->Texture.Palette[3] = 255; | ||||
|       ctx->Texture.PaletteSize = 1; | ||||
|       ctx->Texture.PaletteIntFormat = GL_RGBA; | ||||
|       ctx->Texture.PaletteFormat = GL_RGBA; | ||||
|  | ||||
|       /* Transformation group */ | ||||
|       ctx->Transform.MatrixMode = GL_MODELVIEW; | ||||
| @@ -1028,6 +1071,7 @@ static void initialize_context( GLcontext *ctx ) | ||||
|  | ||||
|       /* For debug/development only */ | ||||
|       ctx->NoRaster = getenv("MESA_NO_RASTER") ? GL_TRUE : GL_FALSE; | ||||
|       ctx->FirstTimeCurrent = GL_TRUE; | ||||
|  | ||||
|       /* Dither disable */ | ||||
|       ctx->NoDither = getenv("MESA_NO_DITHER") ? GL_TRUE : GL_FALSE; | ||||
| @@ -1289,10 +1333,12 @@ GLcontext *gl_create_context( GLvisual *visual, | ||||
|    ctx->Driver.ReadDepthSpanFloat = gl_read_depth_span_float; | ||||
|    ctx->Driver.ReadDepthSpanInt = gl_read_depth_span_int; | ||||
|  | ||||
|     | ||||
| #ifdef PROFILE | ||||
|    init_timings( ctx ); | ||||
| #endif | ||||
|  | ||||
| #ifdef GL_VERSION_1_1 | ||||
|    if (!alloc_proxy_textures(ctx)) { | ||||
|       free_shared_state(ctx, ctx->Shared); | ||||
|       FREE(ctx->VB); | ||||
| @@ -1300,11 +1346,10 @@ GLcontext *gl_create_context( GLvisual *visual, | ||||
|       FREE(ctx); | ||||
|       return NULL; | ||||
|    } | ||||
| #endif | ||||
|  | ||||
|    /* setup API dispatch tables */ | ||||
|    _mesa_init_exec_table( &ctx->Exec ); | ||||
|    _mesa_init_dlist_table( &ctx->Save ); | ||||
|    ctx->CurrentDispatch = &ctx->Exec; | ||||
|    gl_init_api_function_pointers( ctx ); | ||||
|    ctx->API = ctx->Exec;   /* GL_EXECUTE is default */ | ||||
|  | ||||
|    return ctx; | ||||
| } | ||||
| @@ -1325,9 +1370,8 @@ void gl_context_initialize( GLcontext *ctx ) | ||||
| void gl_destroy_context( GLcontext *ctx ) | ||||
| { | ||||
|    if (ctx) { | ||||
|  | ||||
|       GLuint i; | ||||
|       struct gl_shine_tab *s, *tmps; | ||||
|       GLuint i, j; | ||||
|  | ||||
| #ifdef PROFILE | ||||
|       if (getenv("MESA_PROFILE")) { | ||||
| @@ -1336,13 +1380,19 @@ void gl_destroy_context( GLcontext *ctx ) | ||||
| #endif | ||||
|  | ||||
|       gl_matrix_dtr( &ctx->ModelView ); | ||||
|       for (i = 0 ; i < MAX_MODELVIEW_STACK_DEPTH ; i++) { | ||||
|       for (i = 0 ; i < MAX_MODELVIEW_STACK_DEPTH - 1; i++) { | ||||
| 	 gl_matrix_dtr( &ctx->ModelViewStack[i] ); | ||||
|       } | ||||
|       gl_matrix_dtr( &ctx->ProjectionMatrix ); | ||||
|       for (i = 0 ; i < MAX_PROJECTION_STACK_DEPTH ; i++) { | ||||
|       for (i = 0 ; i < MAX_PROJECTION_STACK_DEPTH - 1; i++) { | ||||
| 	 gl_matrix_dtr( &ctx->ProjectionStack[i] ); | ||||
|       } | ||||
|       for (i = 0; i < MAX_TEXTURE_UNITS; i++) { | ||||
| 	 gl_matrix_dtr( &ctx->TextureMatrix[i] ); | ||||
| 	 for (j = 0; j < MAX_TEXTURE_STACK_DEPTH - 1; j++) { | ||||
| 	    gl_matrix_dtr( &ctx->TextureStack[i][j] ); | ||||
| 	 } | ||||
|       } | ||||
|  | ||||
|       FREE( ctx->PB ); | ||||
|  | ||||
| @@ -1418,8 +1468,8 @@ void gl_destroy_context( GLcontext *ctx ) | ||||
|       FREE( (void *) ctx ); | ||||
|  | ||||
| #ifndef THREADS | ||||
|       if (ctx == _mesa_current_context) { | ||||
|          _mesa_current_context = NULL; | ||||
|       if (ctx==CC) { | ||||
|          CC = NULL; | ||||
| 	 CURRENT_INPUT = NULL; | ||||
|       } | ||||
| #endif | ||||
| @@ -1488,42 +1538,52 @@ void gl_destroy_framebuffer( GLframebuffer *buffer ) | ||||
| /* | ||||
|  * Set the current context, binding the given frame buffer to the context. | ||||
|  */ | ||||
| void gl_make_current( GLcontext *newCtx, GLframebuffer *buffer ) | ||||
| void gl_make_current( GLcontext *ctx, GLframebuffer *buffer ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(oldCtx); | ||||
|    GET_CONTEXT; | ||||
|  | ||||
|    /* Flush the old context | ||||
|     */ | ||||
|    if (oldCtx) { | ||||
|       ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(oldCtx, "gl_make_current"); | ||||
|    if (CC) { | ||||
|       ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(CC, "gl_make_current"); | ||||
|    } | ||||
|  | ||||
| #ifdef THREADS | ||||
|    /* TODO: unbind old buffer from context? */ | ||||
|    set_thread_context( newCtx ); | ||||
|    set_thread_context( ctx ); | ||||
| #else | ||||
|    if (oldCtx && oldCtx->Buffer) { | ||||
|    if (CC && CC->Buffer) { | ||||
|       /* unbind frame buffer from context */ | ||||
|       oldCtx->Buffer = NULL; | ||||
|       CC->Buffer = NULL; | ||||
|    } | ||||
|    _mesa_current_context = newCtx; | ||||
|    if (newCtx) { | ||||
|       SET_IMMEDIATE(newCtx, newCtx->input); | ||||
|    CC = ctx; | ||||
|    if (ctx) { | ||||
|       SET_IMMEDIATE(ctx, ctx->input); | ||||
|    } | ||||
| #endif | ||||
|  | ||||
|    if (newCtx) | ||||
|       _glapi_set_dispatch(newCtx->CurrentDispatch); | ||||
|    else | ||||
|       _glapi_set_dispatch(NULL);  /* none current */ | ||||
|  | ||||
|    if (MESA_VERBOSE) fprintf(stderr, "gl_make_current()\n"); | ||||
|  | ||||
|    if (newCtx && buffer) { | ||||
|       /* TODO: check if newCtx and buffer's visual match??? */ | ||||
|       newCtx->Buffer = buffer;      /* Bind the frame buffer to the context */ | ||||
|       newCtx->NewState = NEW_ALL;   /* just to be safe */ | ||||
|       gl_update_state( newCtx ); | ||||
|    if (ctx && buffer) { | ||||
|       /* TODO: check if ctx and buffer's visual match??? */ | ||||
|       ctx->Buffer = buffer;      /* Bind the frame buffer to the context */ | ||||
|       ctx->NewState = NEW_ALL;   /* just to be safe */ | ||||
|       gl_update_state( ctx ); | ||||
|    } | ||||
|  | ||||
|    /* We can use this to help debug user's problems.  Tell the to set | ||||
|     * the MESA_INFO env variable before running their app.  Then the | ||||
|     * first time each context is made current we'll print some useful | ||||
|     * information. | ||||
|     */ | ||||
|    if (ctx && ctx->FirstTimeCurrent) { | ||||
|       if (getenv("MESA_INFO")) { | ||||
|          fprintf(stderr, "Mesa GL_VERSION = %s\n", (char *) gl_GetString(ctx, GL_VERSION)); | ||||
|          fprintf(stderr, "Mesa GL_RENDERER = %s\n", (char *) gl_GetString(ctx, GL_RENDERER)); | ||||
|          fprintf(stderr, "Mesa GL_VENDOR = %s\n", (char *) gl_GetString(ctx, GL_VENDOR)); | ||||
|          fprintf(stderr, "Mesa GL_EXTENSIONS = %s\n", (char *) gl_GetString(ctx, GL_EXTENSIONS)); | ||||
|       } | ||||
|       ctx->FirstTimeCurrent = GL_FALSE; | ||||
|    } | ||||
| } | ||||
|  | ||||
| @@ -1536,7 +1596,7 @@ GLcontext *gl_get_current_context( void ) | ||||
| #ifdef THREADS | ||||
|    return gl_get_thread_context(); | ||||
| #else | ||||
|    return _mesa_current_context; | ||||
|    return CC; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| @@ -1620,73 +1680,26 @@ void gl_copy_context( const GLcontext *src, GLcontext *dst, GLuint mask ) | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * This should be called by device drivers just before they do a | ||||
|  * swapbuffers.  Any pending rendering commands will be executed. | ||||
|  */ | ||||
| void | ||||
| _mesa_swapbuffers(GLcontext *ctx) | ||||
| { | ||||
|    FLUSH_VB( ctx, "swap buffers" ); | ||||
| } | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Return pointer to this context's current API dispatch table. | ||||
|  * It'll either be the immediate-mode execute dispatcher or the | ||||
|  * display list compile dispatcher. | ||||
|  * Someday a GLS library or OpenGL-like debugger may call this function | ||||
|  * to register it's own set of API entry points. | ||||
|  * Input: ctx - the context to set API pointers for | ||||
|  *        api - if NULL, restore original API pointers | ||||
|  *              else, set API function table to this table. | ||||
|  */ | ||||
| struct _glapi_table * | ||||
| _mesa_get_dispatch(GLcontext *ctx) | ||||
| void gl_set_api_table( GLcontext *ctx, const struct gl_api_table *api ) | ||||
| { | ||||
|    return ctx->CurrentDispatch; | ||||
|    if (api) { | ||||
|       MEMCPY( &ctx->API, api, sizeof(struct gl_api_table) ); | ||||
|    } | ||||
|    else { | ||||
|       MEMCPY( &ctx->API, &ctx->Exec, sizeof(struct gl_api_table) ); | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| void | ||||
| _mesa_ResizeBuffersMESA( void ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|  | ||||
|    GLuint buf_width, buf_height; | ||||
|  | ||||
|    if (MESA_VERBOSE & VERBOSE_API) | ||||
|       fprintf(stderr, "glResizeBuffersMESA\n"); | ||||
|  | ||||
|    /* ask device driver for size of output buffer */ | ||||
|    (*ctx->Driver.GetBufferSize)( ctx, &buf_width, &buf_height ); | ||||
|  | ||||
|    /* see if size of device driver's color buffer (window) has changed */ | ||||
|    if (ctx->Buffer->Width == (GLint) buf_width && | ||||
|        ctx->Buffer->Height == (GLint) buf_height) | ||||
|       return; | ||||
|  | ||||
|    ctx->NewState |= NEW_RASTER_OPS;  /* to update scissor / window bounds */ | ||||
|  | ||||
|    /* save buffer size */ | ||||
|    ctx->Buffer->Width = buf_width; | ||||
|    ctx->Buffer->Height = buf_height; | ||||
|  | ||||
|    /* Reallocate other buffers if needed. */ | ||||
|    if (ctx->Visual->DepthBits>0) { | ||||
|       /* reallocate depth buffer */ | ||||
|       (*ctx->Driver.AllocDepthBuffer)( ctx ); | ||||
|    } | ||||
|    if (ctx->Visual->StencilBits>0) { | ||||
|       /* reallocate stencil buffer */ | ||||
|       gl_alloc_stencil_buffer( ctx ); | ||||
|    } | ||||
|    if (ctx->Visual->AccumBits>0) { | ||||
|       /* reallocate accum buffer */ | ||||
|       gl_alloc_accum_buffer( ctx ); | ||||
|    } | ||||
|    if (ctx->Visual->SoftwareAlpha) { | ||||
|       gl_alloc_alpha_buffers( ctx ); | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /**********************************************************************/ | ||||
| /*****                Miscellaneous functions                     *****/ | ||||
| @@ -1809,6 +1822,66 @@ void gl_error( GLcontext *ctx, GLenum error, const char *s ) | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Execute a glGetError command | ||||
|  */ | ||||
| GLenum gl_GetError( GLcontext *ctx ) | ||||
| { | ||||
|    GLenum e = ctx->ErrorValue; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL( ctx, "glGetError", (GLenum) 0); | ||||
|  | ||||
|    if (MESA_VERBOSE & VERBOSE_API) | ||||
|       fprintf(stderr, "glGetError <-- %s\n", gl_lookup_enum_by_nr(e)); | ||||
|  | ||||
|    ctx->ErrorValue = (GLenum) GL_NO_ERROR; | ||||
|    return e; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| void gl_ResizeBuffersMESA( GLcontext *ctx ) | ||||
| { | ||||
|    GLuint buf_width, buf_height; | ||||
|  | ||||
|    if (MESA_VERBOSE & VERBOSE_API) | ||||
|       fprintf(stderr, "glResizeBuffersMESA\n"); | ||||
|  | ||||
|    /* ask device driver for size of output buffer */ | ||||
|    (*ctx->Driver.GetBufferSize)( ctx, &buf_width, &buf_height ); | ||||
|  | ||||
|    /* see if size of device driver's color buffer (window) has changed */ | ||||
|    if (ctx->Buffer->Width == (GLint) buf_width && | ||||
|        ctx->Buffer->Height == (GLint) buf_height) | ||||
|       return; | ||||
|  | ||||
|    ctx->NewState |= NEW_RASTER_OPS;  /* to update scissor / window bounds */ | ||||
|  | ||||
|    /* save buffer size */ | ||||
|    ctx->Buffer->Width = buf_width; | ||||
|    ctx->Buffer->Height = buf_height; | ||||
|  | ||||
|    /* Reallocate other buffers if needed. */ | ||||
|    if (ctx->Visual->DepthBits>0) { | ||||
|       /* reallocate depth buffer */ | ||||
|       (*ctx->Driver.AllocDepthBuffer)( ctx ); | ||||
|    } | ||||
|    if (ctx->Visual->StencilBits>0) { | ||||
|       /* reallocate stencil buffer */ | ||||
|       gl_alloc_stencil_buffer( ctx ); | ||||
|    } | ||||
|    if (ctx->Visual->AccumBits>0) { | ||||
|       /* reallocate accum buffer */ | ||||
|       gl_alloc_accum_buffer( ctx ); | ||||
|    } | ||||
|    if (ctx->Visual->SoftwareAlpha) { | ||||
|       gl_alloc_alpha_buffers( ctx ); | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| /**********************************************************************/ | ||||
| /*****                   State update logic                       *****/ | ||||
| /**********************************************************************/ | ||||
| @@ -1925,21 +1998,17 @@ static void update_pixel_masking( GLcontext *ctx ) | ||||
| static void update_fog_mode( GLcontext *ctx ) | ||||
| { | ||||
|    int old_mode = ctx->FogMode; | ||||
|    ctx->FogMode = FOG_NONE; | ||||
|  | ||||
|    if (ctx->Fog.Enabled) { | ||||
|       if (ctx->Texture.Enabled) | ||||
|          ctx->FogMode = FOG_FRAGMENT; | ||||
|       else if (ctx->Hint.Fog == GL_NICEST) | ||||
|          ctx->FogMode = FOG_FRAGMENT; | ||||
|       else | ||||
|          ctx->FogMode = FOG_VERTEX; | ||||
|       ctx->FogMode = FOG_VERTEX; | ||||
|  | ||||
|       if (ctx->Driver.GetParameteri) | ||||
|          if ((ctx->Driver.GetParameteri)( ctx, DD_HAVE_HARDWARE_FOG )) | ||||
|             ctx->FogMode = FOG_FRAGMENT; | ||||
|    } | ||||
|    else { | ||||
|       ctx->FogMode = FOG_NONE; | ||||
|       if (ctx->Texture.Enabled || ctx->Hint.Fog == GL_NICEST) | ||||
| 	 ctx->FogMode = FOG_FRAGMENT; | ||||
|  | ||||
|       if ( ctx->Driver.GetParameteri &&  | ||||
| 	   ctx->Driver.GetParameteri( ctx, DD_HAVE_HARDWARE_FOG ) ) | ||||
| 	 ctx->FogMode = FOG_FRAGMENT; | ||||
|    } | ||||
|     | ||||
|    if (old_mode != ctx->FogMode) | ||||
| @@ -2078,14 +2147,6 @@ void gl_update_state( GLcontext *ctx ) | ||||
|       ctx->Texture.Unit[1].LastEnvMode = ctx->Texture.Unit[1].EnvMode; | ||||
|    } | ||||
|  | ||||
|    if ((ctx->NewState & ~(NEW_CLIENT_STATE|NEW_TEXTURE_ENABLE)) == 0) { | ||||
|  | ||||
|       if (MESA_VERBOSE&VERBOSE_STATE) | ||||
| 	 fprintf(stderr, "update_state: goto finished\n"); | ||||
|  | ||||
|       goto finished; | ||||
|    } | ||||
|  | ||||
|    if (ctx->NewState & NEW_TEXTURE_MATRIX) { | ||||
|       ctx->Enabled &= ~(ENABLE_TEXMAT0|ENABLE_TEXMAT1); | ||||
|  | ||||
| @@ -2102,7 +2163,7 @@ void gl_update_state( GLcontext *ctx ) | ||||
|       } | ||||
|    } | ||||
|  | ||||
|    if (ctx->NewState & NEW_TEXTURING) { | ||||
|    if (ctx->NewState & (NEW_TEXTURING | NEW_TEXTURE_ENABLE)) { | ||||
|       ctx->Texture.NeedNormals = GL_FALSE; | ||||
|       gl_update_dirty_texobjs(ctx); | ||||
|       ctx->Enabled &= ~(ENABLE_TEXGEN0|ENABLE_TEXGEN1); | ||||
| @@ -2264,7 +2325,7 @@ void gl_update_state( GLcontext *ctx ) | ||||
|       } | ||||
|    } | ||||
|  | ||||
|    if (ctx->NewState & ~(NEW_CLIENT_STATE|NEW_TEXTURE_ENABLE| | ||||
|    if (ctx->NewState & ~(NEW_CLIENT_STATE| | ||||
| 			 NEW_DRIVER_STATE|NEW_USER_CLIP| | ||||
| 			 NEW_POLYGON)) | ||||
|       gl_update_clipmask(ctx); | ||||
| @@ -2272,6 +2333,7 @@ void gl_update_state( GLcontext *ctx ) | ||||
|    if (ctx->NewState & (NEW_LIGHTING| | ||||
| 			NEW_RASTER_OPS| | ||||
| 			NEW_TEXTURING| | ||||
| 			NEW_TEXTURE_ENABLE| | ||||
| 			NEW_TEXTURE_ENV| | ||||
| 			NEW_POLYGON| | ||||
| 			NEW_DRVSTATE0| | ||||
| @@ -2367,7 +2429,7 @@ void gl_update_state( GLcontext *ctx ) | ||||
|       oldnorm = ctx->NeedEyeNormals; | ||||
|  | ||||
|       ctx->NeedNormals = (ctx->Light.Enabled || ctx->Texture.NeedNormals); | ||||
|       ctx->NeedEyeCoords = ((ctx->Fog.Enabled && ctx->Hint.Fog != GL_NICEST) || | ||||
|       ctx->NeedEyeCoords = (ctx->FogMode == FOG_VERTEX || | ||||
| 			    ctx->Point.Attenuated); | ||||
|       ctx->NeedEyeNormals = GL_FALSE; | ||||
|  | ||||
| @@ -2423,7 +2485,6 @@ void gl_update_state( GLcontext *ctx ) | ||||
|       gl_update_normal_transform( ctx ); | ||||
|    } | ||||
|  | ||||
|  finished: | ||||
|    gl_update_pipelines(ctx); | ||||
|    ctx->NewState = 0; | ||||
| } | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user