Compare commits
	
		
			152 Commits
		
	
	
		
			mesa-22.2.
			...
			mesa_3_4_1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | e430f93ea0 | ||
|  | bb70b0eaf8 | ||
|  | b0f1460f13 | ||
|  | 08a9355932 | ||
|  | e9bd590781 | ||
|  | 456480981a | ||
|  | a241b22aaa | ||
|  | e32b1543e8 | ||
|  | 5a7d5d0808 | ||
|  | e3aef4ed72 | ||
|  | 47759b1d82 | ||
|  | 0c769dba55 | ||
|  | 9a1ca37e5b | ||
|  | 0eedea5083 | ||
|  | c3ccae5f49 | ||
|  | 18074cf055 | ||
|  | 1929fbde14 | ||
|  | 7a47ecdf23 | ||
|  | 0f7e5e8a47 | ||
|  | 44779d21a3 | ||
|  | ae5cc3e94c | ||
|  | b15870fe69 | ||
|  | 5c08f57d87 | ||
|  | d6540dbaf2 | ||
|  | 9e33f91f4b | ||
|  | aa2bbcbcd3 | ||
|  | ea083a8b59 | ||
|  | 3b20dc1dd7 | ||
|  | 5b3b871d79 | ||
|  | 6b593c0b7a | ||
|  | 7535dc796a | ||
|  | 8a341f4d38 | ||
|  | 8ea17294b8 | ||
|  | 757e7feb81 | ||
|  | 76ef5a3993 | ||
|  | bae4b31566 | ||
|  | e23ea371e6 | ||
|  | 77743a4e08 | ||
|  | 7510d9a56e | ||
|  | 75b470c146 | ||
|  | 142d00e32f | ||
|  | 50cccb667e | ||
|  | 202ddf7a54 | ||
|  | 3efc845d1b | ||
|  | dc203452eb | ||
|  | f195052952 | ||
|  | adde46e8ee | ||
|  | d9ec7b48d9 | ||
|  | 6fa6c586db | ||
|  | ce764717bc | ||
|  | c6d4a00ca9 | ||
|  | 4cdc441b9a | ||
|  | 17a68017c0 | ||
|  | 6e9605a00d | ||
|  | e5c8261f76 | ||
|  | 57db1be417 | ||
|  | ebeb5da82c | ||
|  | bd1b6ef5af | ||
|  | 672da3532f | ||
|  | 554cd6ba8c | ||
|  | 585b358204 | ||
|  | 1a87813f14 | ||
|  | fab2936ea2 | ||
|  | 510d86231d | ||
|  | 183e09ee42 | ||
|  | feb83f991e | ||
|  | 5c4f8bdfc7 | ||
|  | 16deaa9c49 | ||
|  | 12dbb90d4a | ||
|  | 0bf5284850 | ||
|  | e3650179c6 | ||
|  | c089afb55b | ||
|  | bfaab253d1 | ||
|  | 4c782b7470 | ||
|  | fceecc5bc1 | ||
|  | cb5d29cd17 | ||
|  | 807544498a | ||
|  | 17f2610d03 | ||
|  | 00935d9eab | ||
|  | c8c04359dd | ||
|  | 534bc2e2a9 | ||
|  | 82960fbf69 | ||
|  | b0c8df81ab | ||
|  | ceab228540 | ||
|  | 03614d2f33 | ||
|  | e17c1d2202 | ||
|  | e27b783426 | ||
|  | 18ef8e7c98 | ||
|  | b34a9dab57 | ||
|  | 7a13c83663 | ||
|  | d4e84664a5 | ||
|  | 29f19424ab | ||
|  | 813e8585a6 | ||
|  | 88337d5109 | ||
|  | 77a5bab1a3 | ||
|  | de63653835 | ||
|  | 2f095b9b09 | ||
|  | 94b61f99c4 | ||
|  | 44b450728d | ||
|  | bc2b379ad0 | ||
|  | f35a545d4f | ||
|  | 0248965561 | ||
|  | 29fb6b3525 | ||
|  | 93bff74a02 | ||
|  | 211c30cbc9 | ||
|  | 1ef3d8407b | ||
|  | b64ede6f45 | ||
|  | a11f829108 | ||
|  | 5715ee5d5d | ||
|  | 08056a38ee | ||
|  | 2591e8f1db | ||
|  | b92036499d | ||
|  | 60a0b0d7c6 | ||
|  | c68f4fb958 | ||
|  | b9a3c2b3ce | ||
|  | 2cddd4cd79 | ||
|  | 052512e2ec | ||
|  | dc1e96acdc | ||
|  | 0eb94349b6 | ||
|  | 846101fe60 | ||
|  | 9af68b1222 | ||
|  | 5c4431cc0a | ||
|  | 308b5f2e0d | ||
|  | 013a664712 | ||
|  | 52eee51001 | ||
|  | 5d62414004 | ||
|  | 5917ec0983 | ||
|  | 06e32f455f | ||
|  | 0ead11e448 | ||
|  | 3edbaf7de6 | ||
|  | e6d349d8e4 | ||
|  | c25a8f9317 | ||
|  | 9f5ddba23f | ||
|  | f5de04549e | ||
|  | fb027ada34 | ||
|  | e990e8c166 | ||
|  | 394ecbde83 | ||
|  | 7ea41a18a5 | ||
|  | 262112dafa | ||
|  | e0fd3762ce | ||
|  | 1274afbe0b | ||
|  | 5f9760b572 | ||
|  | 107c1a4d40 | ||
|  | 809c5a7fc7 | ||
|  | aaab86427a | ||
|  | 5e2c92b8b6 | ||
|  | 84e8b8ea5a | ||
|  | 051690168a | ||
|  | 652f3b41c1 | ||
|  | c5e6547a95 | ||
|  | bc8257a729 | ||
|  | b353233325 | 
							
								
								
									
										444
									
								
								Make-config
									
									
									
									
									
								
							
							
						
						
									
										444
									
								
								Make-config
									
									
									
									
									
								
							| @@ -1,8 +1,8 @@ | ||||
| # $Id: Make-config,v 1.25 2000/06/08 15:19:12 brianp Exp $ | ||||
| # $Id: Make-config,v 1.25.4.6 2001/01/24 04:49:27 brianp Exp $ | ||||
|  | ||||
| MESA_MAJOR=3 | ||||
| MESA_MINOR=3 | ||||
| MESA_TINY=0 | ||||
| MESA_MINOR=4 | ||||
| MESA_TINY=1 | ||||
| VERSION=$(MESA_MAJOR).$(MESA_MINOR) | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| @@ -200,7 +200,11 @@ freebsd-386: | ||||
| 	"CFLAGS = -O3 -ffast-math -fPIC -pedantic -I/usr/X11R6/include -DUSE_XSHM -DHZ=100 -DUSE_X86_ASM -DFREEBSD" \ | ||||
| 	"MAKELIB = ../bin/mklib.freebsd" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S" | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S" | ||||
|  | ||||
| gcc: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| @@ -467,136 +471,7 @@ linux-static: | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lm -lpthread" | ||||
|  | ||||
| linux-386: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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  -DPTHREADS -I/usr/X11R6/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S" | ||||
|  | ||||
| linux-386-static: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -O3 -funroll-loops -ansi -pedantic -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DPTHREADS -I/usr/X11R6/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lm -lpthread" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S" | ||||
|  | ||||
| linux-glide: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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 -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L/usr/local/glide/lib -lglide2x" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lglut -lGLU -lGL" | ||||
|  | ||||
| linux-386-glide: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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 -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S" | ||||
|  | ||||
| linux-386-opt-V2-glide: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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 -DPTHREAD -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include"\ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S" | ||||
|  | ||||
| linux-386-opt-glide: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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 -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S" | ||||
|  | ||||
| linux-3dnow: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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 -DPTHREADS -I/usr/X11R6/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \ | ||||
| 	X86/mmx_blend.S \ | ||||
| 	X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 	X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 	X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 	X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 	X86/3dnow_norm_raw.S X86/vertex.S X86/vertex_3dnow.S"  | ||||
|  | ||||
| linux-3dnow-glide: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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 -DPTHREADS -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" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \ | ||||
| 	X86/mmx_blend.S \ | ||||
| 	X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 	X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 	X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 	X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 	X86/3dnow_norm_raw.S X86/vertex.S X86/vertex_3dnow.S \ | ||||
| 	FX/X86/fx_3dnow_fastpath.S" | ||||
|  | ||||
| linux-katmai: | ||||
| linux-x86: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| @@ -609,47 +484,52 @@ linux-katmai: | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \ | ||||
| 	X86/mmx_blend.S \ | ||||
| 	X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 	X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 	X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 	X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 	X86/3dnow_norm_raw.S X86/vertex.S X86/vertex_3dnow.S \ | ||||
| 	X86/katmai_norm_raw.S \ | ||||
| 	X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \ | ||||
| 	X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \ | ||||
| 	X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \ | ||||
| 	X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \ | ||||
| 	X86/vertex_katmai.S" | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S \ | ||||
| 		X86/mmx_blend.S \ | ||||
| 		X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 		X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 		X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 		X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 		X86/3dnow_norm_raw.S X86/3dnow_vertex.S \ | ||||
| 		X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \ | ||||
| 		X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \ | ||||
| 		X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \ | ||||
| 		X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \ | ||||
| 		X86/katmai_norm_raw.S X86/katmai_vertex.S" | ||||
|  | ||||
| linux-katmai-glide: | ||||
| linux-x86-static: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"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_KATMAI_ASM -DUSE_XSHM -DFX -DPTHREADS -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" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"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 -DUSE_KATMAI_ASM -DPTHREADS -I/usr/X11R6/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S \ | ||||
| 	X86/mmx_blend.S \ | ||||
| 	X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 	X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 	X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 	X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 	X86/3dnow_norm_raw.S X86/vertex.S X86/vertex_3dnow.S \ | ||||
| 	FX/X86/fx_3dnow_fastpath.S \ | ||||
| 	X86/katmai_norm_raw.S \ | ||||
| 	X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \ | ||||
| 	X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \ | ||||
| 	X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \ | ||||
| 	X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \ | ||||
| 	X86/vertex_katmai.S"  | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S \ | ||||
| 		X86/mmx_blend.S \ | ||||
| 		X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 		X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 		X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 		X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 		X86/3dnow_norm_raw.S X86/3dnow_vertex.S \ | ||||
| 		X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \ | ||||
| 		X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \ | ||||
| 		X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \ | ||||
| 		X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \ | ||||
| 		X86/katmai_norm_raw.S X86/katmai_vertex.S" | ||||
|  | ||||
| # Contributed by Uwe_Maurer@t-online.de | ||||
| linux-ggi: | ||||
| @@ -674,7 +554,113 @@ linux-386-ggi: | ||||
| 	"CFLAGS = -O3 -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DUSE_X86_ASM -DGGI -DCDECL=" \ | ||||
| 	"MAKELIB = ../bin/mklib.ggi" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lggi -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S" | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S" | ||||
|  | ||||
| linux-glide: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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 -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L/usr/local/glide/lib -lglide2x" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL" | ||||
|  | ||||
| linux-386-glide: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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 -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lm" \ | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S" | ||||
|  | ||||
| linux-386-opt-glide: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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 -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lm" \ | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S" | ||||
|  | ||||
| linux-386-opt-V2-glide: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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 -DPTHREAD -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include"\ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lm" \ | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S" | ||||
|  | ||||
| linux-x86-glide: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"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_KATMAI_ASM -DUSE_XSHM -DFX -DPTHREADS -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" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lm" \ | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S \ | ||||
| 		X86/mmx_blend.S \ | ||||
| 		X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 		X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 		X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 		X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 		X86/3dnow_norm_raw.S X86/3dnow_vertex.S \ | ||||
| 		FX/X86/fx_3dnow_fastpath.S \ | ||||
| 		X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \ | ||||
| 		X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \ | ||||
| 		X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \ | ||||
| 		X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \ | ||||
| 		X86/katmai_norm_raw.S X86/katmai_vertex.S" | ||||
|  | ||||
| linux-alpha: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| @@ -874,7 +860,11 @@ os2-x11: | ||||
| 	"CFLAGS = -Zmt -O3 -m486 -funroll-loops -Wall -Wno-unused -ansi -pedantic -ffast-math -DUSE_X86_ASM -D_SVID_SOURCE -D_BSD_SOURCE -I$(X11ROOT)/XFree86/include" \ | ||||
| 	"MAKELIB = ..\\bin\\mklib-emx.cmd " \ | ||||
| 	"APP_LIB_DEPS = -Zmt -Zcrtdll -Zexe -L$(X11ROOT)/XFree86/lib -lXt -lX11 -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S" | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S" | ||||
|  | ||||
| osf1: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| @@ -1273,19 +1263,7 @@ DEBUG: | ||||
| 	"APP_LIB_DEPS = -lX11 -lXext -lXmu -lXi -lfpe -lm" | ||||
|  | ||||
| # for debugging on Linux systems | ||||
| linux-static-debug: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -DUSE_XSHM -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" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -ltexus -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lvga -lm" \ | ||||
| 	"ASM_SOURCES = X86/x86a.S X86/common_x86asm.S X86/glapi_x86.S X86/vertex.S" | ||||
|  | ||||
| linux-elf-debug: | ||||
| linux-debug: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| @@ -1297,7 +1275,48 @@ linux-elf-debug: | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lvga -L/usr/local/glide/lib -lglide2x" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lglut -lGLU -lGL" | ||||
| 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL" | ||||
|  | ||||
| linux-static-debug: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"GLUT_LIB = libglut.a" \ | ||||
| 	"GLW_LIB = libGLw.a" \ | ||||
| 	"CC = gcc" \ | ||||
| 	"CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -DUSE_XSHM -DDEBUG -DMESA_DEBUG -DSVGA -DFX -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -ltexus -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lvga -lm" \ | ||||
|  | ||||
| linux-x86-debug: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.so" \ | ||||
| 	"GLU_LIB = libGLU.so" \ | ||||
| 	"GLUT_LIB = libglut.so" \ | ||||
| 	"GLW_LIB = libGLw.so" \ | ||||
| 	"CC = gcc -malign-loops=2 -malign-jumps=2 -malign-functions=2" \ | ||||
| 	"CFLAGS = -O2 -g -ansi -pedantic -Wall -Wmissing-prototypes -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM -DPTHREADS -I/usr/X11R6/include -DDEBUG -DMESA_DEBUG" \ | ||||
| 	"MAKELIB = ../bin/mklib.linux" \ | ||||
| 	"GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lm -lpthread" \ | ||||
| 	"GLU_LIB_DEPS = -L../lib -lGL -lm" \ | ||||
| 	"GLUT_LIB_DEPS = -L../lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \ | ||||
| 	"APP_LIB_DEPS = -lm" \ | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S \ | ||||
| 		X86/mmx_blend.S \ | ||||
| 		X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 		X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 		X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 		X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 		X86/3dnow_norm_raw.S X86/3dnow_vertex.S \ | ||||
| 		X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \ | ||||
| 		X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \ | ||||
| 		X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \ | ||||
| 		X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \ | ||||
| 		X86/katmai_norm_raw.S X86/katmai_vertex.S" | ||||
|  | ||||
| linux-glide-debug: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| @@ -1318,14 +1337,51 @@ 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 = -Wall -O2 -pg -ansi -pedantic -ffast-math -DUSE_XSHM -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"APP_LIB_DEPS = -L/usr/X11/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE -lm" \ | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S \ | ||||
| 		X86/mmx_blend.S \ | ||||
| 		X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 		X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 		X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 		X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 		X86/3dnow_norm_raw.S X86/3dnow_vertex.S \ | ||||
| 		FX/X86/fx_3dnow_fastpath.S \ | ||||
| 		X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \ | ||||
| 		X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \ | ||||
| 		X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \ | ||||
| 		X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \ | ||||
| 		X86/katmai_norm_raw.S X86/katmai_vertex.S" | ||||
|  | ||||
| linux-glide-prof: | ||||
| 	$(MAKE) $(MFLAGS) -f Makefile.X11 targets \ | ||||
| 	"GL_LIB = libGL.a" \ | ||||
| 	"GLU_LIB = libGLU.a" \ | ||||
| 	"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 -DUSE_KATMAI_ASM -I/usr/include/glide -I/usr/local/glide/include" \ | ||||
| 	"MAKELIB = ../bin/mklib.ar-ruv" \ | ||||
| 	"APP_LIB_DEPS = -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 X86/glapi_x86.S \ | ||||
| 	X86/mmx_blend.S \ | ||||
| 	X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 	X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 	X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 	X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 	X86/3dnow_norm_raw.S X86/vertex.S X86/vertex_3dnow.S \ | ||||
| 	FX/X86/fx_3dnow_fastpath.S" | ||||
| 	"ASM_SOURCES = X86/common_x86_asm.S X86/glapi_x86.S \ | ||||
| 		X86/x86_xform_raw2.S X86/x86_xform_raw3.S \ | ||||
| 		X86/x86_xform_raw4.S X86/x86_xform_masked2.S \ | ||||
| 		X86/x86_xform_masked3.S X86/x86_xform_masked4.S \ | ||||
| 		X86/x86_cliptest.S X86/x86_vertex.S \ | ||||
| 		X86/mmx_blend.S \ | ||||
| 		X86/3dnow_xform_raw1.S X86/3dnow_xform_raw2.S \ | ||||
| 		X86/3dnow_xform_raw3.S X86/3dnow_xform_raw4.S \ | ||||
| 		X86/3dnow_xform_masked1.S X86/3dnow_xform_masked2.S \ | ||||
| 		X86/3dnow_xform_masked3.S X86/3dnow_xform_masked4.S \ | ||||
| 		X86/3dnow_norm_raw.S X86/3dnow_vertex.S \ | ||||
| 		FX/X86/fx_3dnow_fastpath.S \ | ||||
| 		X86/katmai_xform_raw1.S X86/katmai_xform_masked1.S \ | ||||
| 		X86/katmai_xform_raw2.S X86/katmai_xform_masked2.S \ | ||||
| 		X86/katmai_xform_raw3.S X86/katmai_xform_masked3.S \ | ||||
| 		X86/katmai_xform_raw4.S X86/katmai_xform_masked4.S \ | ||||
| 		X86/katmai_norm_raw.S X86/katmai_vertex.S" | ||||
|   | ||||
							
								
								
									
										43
									
								
								Makefile.X11
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								Makefile.X11
									
									
									
									
									
								
							| @@ -1,20 +1,20 @@ | ||||
| # $Id: Makefile.X11,v 1.32 2000/07/21 16:36:35 brianp Exp $ | ||||
| # $Id: Makefile.X11,v 1.32.2.7 2001/02/07 23:49:26 brianp Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.3 | ||||
| #  | ||||
| # Version:  3.4.1 | ||||
| # | ||||
| # 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"), | ||||
| # 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 | ||||
| @@ -68,18 +68,15 @@ default: | ||||
|  | ||||
| 	@echo "  make linux                for Linux systems, make shared .so libs" | ||||
| 	@echo "  make linux-static         for Linux systems, make static .a libs" | ||||
| 	@echo "  make linux-386            for Linux on Intel, make shared .so libs" | ||||
| 	@echo "  make linux-386-static     for Linux on Intel, make static .a libs" | ||||
| 	@echo "  make linux-x86            for Linux on Intel, make shared .so libs" | ||||
| 	@echo "  make linux-x86-static     for Linux on Intel, make static .a libs" | ||||
| 	@echo "  make linux-ggi            for Linux systems with libggi" | ||||
| 	@echo "  make linux-386-ggi        for Linux systems with libggi w/ Intel assembly" | ||||
| 	@echo "  make linux-glide          for Linux w/ 3Dfx Glide driver" | ||||
| 	@echo "  make linux-386-glide      for Linux w/ 3Dfx Glide driver, Intel assembly" | ||||
| 	@echo "  make linux-386-opt-glide  for Linux with 3Dfx Voodoo1 for GLQuake" | ||||
| 	@echo "  make linux-386-opt-V2-glide  for Linux with 3Dfx Voodoo2 for GLQuake" | ||||
| 	@echo "  make linux-3dnow          for Linux on AMD w/ 3DNow!" | ||||
| 	@echo "  make linux-3dnow-glide    for Linux on AMD w/ 3DNow! for Glide" | ||||
| 	@echo "  make linux-katmai         for Linux on PentiumIII w/ SSE" | ||||
| 	@echo "  make linux-katmai-glide   for Linux on PentiumIII w/ SSE for Glide" | ||||
| 	@echo "  make linux-x86-glide      for Linux w/ all x86 asm for Glide" | ||||
| 	@echo "  make linux-alpha          for Linux on Alpha systems" | ||||
| 	@echo "  make linux-alpha-static   for Linux on Alpha systems, static libs" | ||||
| 	@echo "  make linux-ppc            for Linux on PowerPC systems" | ||||
| @@ -139,13 +136,10 @@ aix aix-sl amix bsdos bsdos4 dgux freebsd freebsd-386 gcc \ | ||||
| hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \ | ||||
| hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \ | ||||
| irix4 irix5 irix5-gcc irix5-dso irix6-o32 irix6-o32-dso \ | ||||
| linux-static-debug linux-elf-debug linux-prof linux-glide-debug \ | ||||
| linux linux-static \ | ||||
| linux-386 linux-386-static \ | ||||
| linux linux-static linux-debug linux-static-debug linux-prof \ | ||||
| linux-x86 linux-x86-static linux-x86-debug \ | ||||
| linux-glide linux-386-glide linux-386-opt-glide \ | ||||
| linux-386-opt-V2-glide \ | ||||
| linux-3dnow linux-3dnow-glide \ | ||||
| linux-katmai linux-katmai-glide \ | ||||
| linux-386-opt-V2-glide linux-x86-glide linux-glide-debug linux-glide-prof \ | ||||
| linux-alpha-static linux-alpha \ | ||||
| linux-ppc-static linux-ppc \ | ||||
| linux-sparc \ | ||||
| @@ -326,10 +320,10 @@ realclean: clean | ||||
|  | ||||
|  | ||||
|  | ||||
| DIRECTORY = Mesa-3.3 | ||||
| LIB_NAME = MesaLib-3.3 | ||||
| DEMO_NAME = MesaDemos-3.3 | ||||
| GLU_NAME = MesaGLU-3.3 | ||||
| DIRECTORY = Mesa-3.4.1 | ||||
| LIB_NAME = MesaLib-3.4.1 | ||||
| DEMO_NAME = MesaDemos-3.4.1 | ||||
| GLU_NAME = MesaGLU-3.4.1 | ||||
| GLUT_NAME = GLUT-3.7 | ||||
|  | ||||
|  | ||||
| @@ -388,6 +382,7 @@ LIB_FILES =	\ | ||||
| 	$(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	\ | ||||
| @@ -463,7 +458,6 @@ LIB_FILES =	\ | ||||
| 	$(DIRECTORY)/src/X86/*.[ch]				\ | ||||
| 	$(DIRECTORY)/src/X86/Makefile.am			\ | ||||
| 	$(DIRECTORY)/src/X86/Makefile.in			\ | ||||
| 	$(DIRECTORY)/src/X86/*.m4				\ | ||||
| 	$(DIRECTORY)/src/X86/*.S				\ | ||||
| 	$(DIRECTORY)/src-glu/README[12]				\ | ||||
| 	$(DIRECTORY)/src-glu/Makefile*				\ | ||||
| @@ -478,6 +472,7 @@ LIB_FILES =	\ | ||||
| 	$(DIRECTORY)/widgets-mesa/README			\ | ||||
| 	$(DIRECTORY)/widgets-mesa/TODO				\ | ||||
| 	$(DIRECTORY)/widgets-mesa/configure			\ | ||||
| 	$(DIRECTORY)/widgets-mesa/configure.in			\ | ||||
| 	$(DIRECTORY)/widgets-mesa/demos/ChangeLog		\ | ||||
| 	$(DIRECTORY)/widgets-mesa/demos/Cube			\ | ||||
| 	$(DIRECTORY)/widgets-mesa/demos/Ed			\ | ||||
| @@ -494,6 +489,8 @@ LIB_FILES =	\ | ||||
| 	$(DIRECTORY)/widgets-mesa/man/Makefile.in		\ | ||||
| 	$(DIRECTORY)/widgets-mesa/man/Mesa*			\ | ||||
| 	$(DIRECTORY)/widgets-mesa/src/ChangeLog			\ | ||||
| 	$(DIRECTORY)/widgets-mesa/src/*.c			\ | ||||
| 	$(DIRECTORY)/widgets-mesa/src/Makefile.in		\ | ||||
| 	$(DIRECTORY)/widgets-sgi/*.[ch]				\ | ||||
| 	$(DIRECTORY)/widgets-sgi/Makefile*			\ | ||||
| 	$(DIRECTORY)/widgets-sgi/README				\ | ||||
|   | ||||
| @@ -1,8 +1,11 @@ | ||||
|  | ||||
|                      3Dfx Glide device driver for Mesa 3.3 | ||||
|                      3Dfx Glide device driver for Mesa 3.4.1 | ||||
| 				(see below for FAQ) | ||||
|  | ||||
|  | ||||
| NOTE: This information is probably somewhat out of date.  A rewrite is | ||||
| overdue. | ||||
|  | ||||
|  | ||||
| What do you need ? | ||||
| ------------------ | ||||
| @@ -13,7 +16,7 @@ What do you need ? | ||||
| 	  under Linux (more information in the "Useful Glide Environment | ||||
| 	  Variables"); | ||||
|  | ||||
| 	- Mesa 3.1; | ||||
| 	- Mesa 3.4.1; | ||||
|  | ||||
| 	- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine). | ||||
| 	  The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not | ||||
| @@ -23,8 +26,6 @@ What do you need ? | ||||
| 	- A compiler supported by the Glide library (Micro$oft VC++ (tested), | ||||
| 	  Watcom (tested), GCC for Linux (tested), etc.); | ||||
|  | ||||
| 	- A lot of patience, this is an alpha release. | ||||
|  | ||||
| 	- It's nice to have two monitors - one for your normal graphics | ||||
| 	  card and one for your 3Dfx card. If something goes wrong with | ||||
| 	  an application using the 3Dfx hardware you can still see your | ||||
| @@ -77,31 +78,28 @@ Linux: | ||||
| 	  If your Glide libraries and headers are in a different directory | ||||
| 	  you'll have to modify the Mesa-config and mklib.glide files. | ||||
|  | ||||
| 	- Unpack the MesaLib-3.1.tar.gz and MesaDemos-3.1.tar.gz archives; | ||||
| 	- Unpack the MesaLib-3.4.1.tar.gz and MesaDemos-3.4.1.tar.gz archives; | ||||
|  | ||||
| 	- If you're going to use a newer Mesa/Glide driver than v0.27 then | ||||
|           unpack the new driver archive over the Mesa directory. | ||||
|  | ||||
| 	- In the Mesa-3.1 directory type "make linux-glide" | ||||
| 	- In the Mesa-3.4.1 directory type "make linux-glide" | ||||
|  | ||||
| 	- Compilation _should_ finish without errors; | ||||
|  | ||||
| 	- Set your LD_LIBRARY_PATH environment variable so that the | ||||
| 	  libglide2x.so and Mesa library files can be found.  For example: | ||||
| 	    setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.1/lib" | ||||
| 	    setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.4.1/lib" | ||||
|  | ||||
| 	- You'll have to run Glide-based programs as root or set the suid | ||||
| 	  bit on executables; | ||||
|  | ||||
| 	- Try a demo: | ||||
| 	    cd gdemos | ||||
| 	    cd demos | ||||
| 	    su | ||||
| 	    setenv MESA_GLX_FX f | ||||
| 	    ./gears     (hit ESC to exit) | ||||
|  | ||||
| 	- You can find the demos especially designed for the Voodoo driver in | ||||
| 	  in the Mesa-3.1/3Dfx/demos directory (type "make" in order to compile | ||||
| 	  everything). | ||||
|  | ||||
| MacOS: | ||||
| ------ | ||||
| @@ -117,13 +115,10 @@ MS Windows: | ||||
|  | ||||
| 	- You must have the vcvars32.bat script in your PATH; | ||||
|  | ||||
| 	- Go to the directory Mesa-3.1 and run the mesafx.bat; | ||||
| 	- Go to the directory Mesa-3.4.1 and run the mesafx.bat; | ||||
|  | ||||
| 	- The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll}, | ||||
| 	  Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and | ||||
|           Voodoo demos); | ||||
|  | ||||
| 	- At the end, you will be in the Mesa-3.1/3Dfx/demos directory; | ||||
| 	- The script will compile everything (Mesa-3.4.1/lib/OpenGL32.{lib,dll}, | ||||
| 	  Mesa-3.4.1/lib/GLU32.{lib,dll}, Mesa-3.4.1/lib/GLUT32.{lib,dll}; | ||||
|  | ||||
| 	- Try some demo (fire.exe, teapot.exe, etc.) in order to check if | ||||
| 	  everything is OK (you can use Alt-Tab or Ctrl-F9 to switch between | ||||
| @@ -135,10 +130,6 @@ MS Windows: | ||||
| 	- I think that you can easy change the Makefile.fx files in order | ||||
| 	  to work with other kind of compilers; | ||||
|  | ||||
| 	- To discover how open the 3Dfx screen, read the sources under | ||||
| 	  the Mesa-3.1/3Dfx/demos directory. You can use the GLUT library or | ||||
|           the Diego Picciani's wgl emulator. | ||||
|  | ||||
| 	NOTE: the MSVC++ 5.0 optimizer is really buggy. Also if you install the | ||||
| 	SP3, you could have some problem (you can disable optimization in order | ||||
| 	solve these kind of problems). | ||||
| @@ -236,7 +227,7 @@ Doing more with Mesa & Linux Glide: | ||||
| 		#endif | ||||
| 		... | ||||
|  | ||||
|        	See the 3Dfx/demos/tunnel.c program | ||||
|        	See the demos/tunnel.c program | ||||
|        	for an example.  You have to set the -DXMESA flag in the Makefile's COPTS | ||||
|        	to enable it. | ||||
|  | ||||
| @@ -395,7 +386,7 @@ Hints and Special Features: | ||||
|         - The Voodoo driver support multiple Voodoo Graphics boards in the | ||||
|           some PC. Using this feature, you can write applications that use | ||||
|           multiple monitors, videoprojectors or HMDs for the output. See | ||||
| 	  Mesa-3.1/3Dfx/demos/tunnel2.c for an example of how setup one | ||||
| 	  Mesa-3.4.1/demos/tunnel2.c for an example of how setup one | ||||
|           context for each board. | ||||
|  | ||||
| 	- The v0.19 introduces a new powerful texture memory manager: the | ||||
| @@ -413,13 +404,8 @@ Hints and Special Features: | ||||
| 	- The Voodoo driver supports the GL_EXT_paletted_texture. it works | ||||
| 	  only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value | ||||
| 	  is ignored because this is a limitation of the the current Glide | ||||
| 	  version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for | ||||
| 	  a demo of this extension. | ||||
|  | ||||
| 	- The Voodoo driver directly supports 3Dfx Global Palette extension. | ||||
| 	  It was written for GLQuake and I think that it isn't a good idea | ||||
| 	  to use this extension for any other purpose (it is a trick). See | ||||
| 	  Mesa-3.1/3Dfx/demos/glbpaltex.c for a demo of this extension. | ||||
| 	  version and of the Voodoo hardware. See Mesa-3.4.1/demos/paltex.c | ||||
| 	  for a demo of this extension. | ||||
|  | ||||
| 	- The Voodoo driver chooses the screen resolution according to the | ||||
| 	  requested window size. If you open a 640x480 window, you will get | ||||
| @@ -490,12 +476,12 @@ version of GLQuake with works with the Mesa/3Dfx/Glide combo. | ||||
| Here's what you need to run GLQuake on Linux: | ||||
|    PC with 100MHz Pentium or better | ||||
|    a 3Dfx-based card | ||||
|    Mesa 3.1 libraries:  libMesaGL.so  libMesaGLU.so | ||||
|    Mesa 3.4.1 libraries:  libGL.so  libGLU.so | ||||
|    Glide 2.4 libraries:  libglide2x.so  libtexus.so | ||||
|    GLQuake for Linux. | ||||
|  | ||||
| Also, the windows version of GLQuake works fine with the Mesa OpenGL32.dll, | ||||
| you have only to copy the Mesa-3.1/lib/OpenGL32.dll in the GLQuake directory | ||||
| you have only to copy the Mesa-3.4.1/lib/OpenGL32.dll in the GLQuake directory | ||||
| in order to test 'MesaQuake'. | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
|  | ||||
|                          Mesa 3.3 Unix/X11 Information | ||||
|                          Mesa 3.4.1 Unix/X11 Information | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -323,4 +323,4 @@ Summary of X-related environment variables: | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| $Id: README.X11,v 3.5 2000/04/04 15:14:48 brianp Exp $ | ||||
| $Id: README.X11,v 3.5.4.2 2001/01/24 04:53:26 brianp Exp $ | ||||
|   | ||||
							
								
								
									
										22
									
								
								docs/RELNOTES-3.4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								docs/RELNOTES-3.4
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
|  | ||||
|                          Mesa 3.4 release notes | ||||
|  | ||||
|                              November 3, 2000 | ||||
|  | ||||
|                              PLEASE READ!!!! | ||||
|  | ||||
|  | ||||
|  | ||||
| Introduction | ||||
| ------------ | ||||
|  | ||||
| Mesa uses an even/odd version number scheme like the Linux kernel. | ||||
| Odd numbered versions (such as 3.3) designate new developmental releases. | ||||
| Even numbered versions (such as 3.4) designate stable releases. | ||||
|  | ||||
| Mesa 3.4 simply fixes bugs found in the Mesa 3.3 release.  For details, | ||||
| see the VERSIONS file. | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| $Id: RELNOTES-3.4,v 1.1.2.2 2000/11/02 18:05:34 brianp Exp $ | ||||
							
								
								
									
										22
									
								
								docs/RELNOTES-3.4.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								docs/RELNOTES-3.4.1
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
|  | ||||
|                          Mesa 3.4.1 release notes | ||||
|  | ||||
|                              February 9, 2001 | ||||
|  | ||||
|                               PLEASE READ!!!! | ||||
|  | ||||
|  | ||||
|  | ||||
| Introduction | ||||
| ------------ | ||||
|  | ||||
| Mesa uses an even/odd version number scheme like the Linux kernel. | ||||
| Odd numbered versions (such as 3.3) designate new developmental releases. | ||||
| Even numbered versions (such as 3.4) designate stable releases. | ||||
|  | ||||
| Mesa 3.4.1 is a maintenance release that simply fixes bugs found since | ||||
| the Mesa 3.4 release.  For details, see the VERSIONS file. | ||||
|  | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| $Id: RELNOTES-3.4.1,v 1.1.2.2 2001/02/07 22:54:04 brianp Exp $ | ||||
| @@ -1,4 +1,4 @@ | ||||
| $Id: VERSIONS,v 1.38 2000/07/21 15:41:59 brianp Exp $ | ||||
| $Id: VERSIONS,v 1.38.2.29 2001/02/14 15:25:06 brianp Exp $ | ||||
|  | ||||
|  | ||||
| Mesa Version History | ||||
| @@ -746,3 +746,58 @@ Mesa Version History | ||||
| 	- gl.h now uses #defines instead of C enums for all tokens | ||||
| 	- glu.h now uses #defines instead of C enums for all tokens | ||||
| 	- moved programs from 3Dfx/demos/ into demos/ directory | ||||
|  | ||||
|  | ||||
| 3.4  November 3, 2000 | ||||
|     New: | ||||
| 	- optimized glDrawPixels for glPixelZoom(1,-1) | ||||
|     Bug Fixes: | ||||
| 	- widgets-mesa/src/*.c files were missing from 3.3 distro | ||||
| 	- include/GL/mesa_wgl.h file was missing from 3.3 distro | ||||
| 	- fixed some Win32 compile problems | ||||
| 	- texture object priorities weren't getting initialized to 1.0 | ||||
| 	- glAreTexturesResident return value was wrong when using hardware | ||||
| 	- glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX) | ||||
| 	- glReadPixels with GLushort packed types was broken | ||||
| 	- fixed a few bugs in the GL_EXT_texture_env_combine texture code | ||||
| 	- glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables | ||||
| 	- fixed some typos/bugs in the VB code | ||||
| 	- glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work | ||||
| 	- optimized glDrawPixels paths weren't being used | ||||
| 	- per-fragment fog calculation didn't work without a Z buffer | ||||
| 	- improved blending accuracy, fixes Glean blendFunc test failures | ||||
| 	- glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly | ||||
| 	- glXGetProcAddressARB() didn't always return the right address | ||||
| 	- gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format | ||||
| 	- texture matrix changes weren't always detected (GLUT projtex demo) | ||||
| 	- fixed random color problem in vertex fog code | ||||
| 	- fixed Glide-related bug that let Quake get a 24-bit Z buffer | ||||
|     Changes: | ||||
| 	- finished internal support for compressed textures for DRI | ||||
|  | ||||
|  | ||||
| 3.4.1  February 14, 2001 | ||||
|     New: | ||||
| 	- fixed some Linux build problems | ||||
| 	- fixed some Windows build problems | ||||
| 	- GL_EXT_texture_env_dot3 extension (Gareth Hughes) | ||||
|     Bug fixes: | ||||
| 	- added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI | ||||
| 	- various state-update code changes needed for DRI bugs | ||||
| 	- disabled pixel transfer ops in glColorTable commands, not needed | ||||
| 	- fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter | ||||
| 	- updated sources and fixed compile problems in widgets-mesa/ | ||||
| 	- GLX_PBUFFER enum value was wrong in glx.h | ||||
| 	- fixed a glColorMaterial lighting bug | ||||
| 	- fixed bad args to Read/WriteStencilSpan in h/w stencil clear function | ||||
| 	- glXCopySubBufferMESA() Y position was off by one | ||||
| 	- Error checking of glTexSubImage3D() was broken (bug 128775) | ||||
| 	- glPopAttrib() didn't restore all derived Mesa state correctly | ||||
| 	- Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL | ||||
| 	  conformance problems at 16bpp. | ||||
| 	- clearing depth buffer with scissoring was broken, would segfault | ||||
| 	- OSMesaGetDepthBuffer() returned bad bytesPerValue value | ||||
| 	- fixed a line clipping bug (reported by Craig McDaniel) | ||||
| 	- fixed RGB color over/underflow bug for very tiny triangles | ||||
|     Known problems: | ||||
| 	- NURBS or evaluator surfaces inside display lists don't always work | ||||
|   | ||||
| @@ -29,6 +29,6 @@ endif | ||||
| EXTRA_DIST = fxmesa.h ggimesa.h osmesa.h svgamesa.h \ | ||||
| 	glx.h glx_mangle.h xmesa.h xmesa_x.h xmesa_xf86.h | ||||
|  | ||||
| GLinclude_HEADERS = gl.h gl_mangle.h glu.h glu_mangle.h \ | ||||
| GLinclude_HEADERS = gl.h glext.h gl_mangle.h glu.h glu_mangle.h \ | ||||
| 	$(INC_FX) $(INC_GGI) $(INC_OSMESA) $(INC_SVGA) $(INC_X11) $(INC_GLUT) | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: gl.h,v 1.44 2000/07/13 17:45:13 brianp Exp $ */ | ||||
| /* $Id: gl.h,v 1.44.4.2 2001/01/06 22:43:00 gareth Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  * | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -2228,6 +2228,19 @@ GLAPI void GLAPIENTRY glResizeBuffersMESA( void ); | ||||
| #endif /* GL_MESA_resize_bufffers */ | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * 220. GL_EXT_texture_env_dot3 | ||||
|  */ | ||||
| #ifndef GL_EXT_texture_env_dot3 | ||||
| #define GL_EXT_texture_env_dot3 1 | ||||
|  | ||||
| #define GL_DOT3_RGB_EXT				0x8740 | ||||
| #define GL_DOT3_RGBA_EXT			0x8741 | ||||
|  | ||||
| #endif /* GL_EXT_texture_env_dot3 */ | ||||
|  | ||||
|  | ||||
| #else  /* GL_GLEXT_LEGACY */ | ||||
|  | ||||
| #include <GL/glext.h> | ||||
|   | ||||
| @@ -13,21 +13,21 @@ extern "C" { | ||||
| ** this file except in compliance with the License. You may obtain a copy | ||||
| ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 | ||||
| ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: | ||||
| **  | ||||
| ** | ||||
| ** http://oss.sgi.com/projects/FreeB | ||||
| **  | ||||
| ** | ||||
| ** Note that, as provided in the License, the Software is distributed on an | ||||
| ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS | ||||
| ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND | ||||
| ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A | ||||
| ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. | ||||
| **  | ||||
| ** | ||||
| ** Original Code. The Original Code is: OpenGL Sample Implementation, | ||||
| ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, | ||||
| ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. | ||||
| ** Copyright in any portions created by third parties is as indicated | ||||
| ** elsewhere herein. All Rights Reserved. | ||||
| **  | ||||
| ** | ||||
| ** Additional Notice Provisions: This software was created using the | ||||
| ** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has | ||||
| ** not been independently verified as being compliant with the OpenGL(R) | ||||
| @@ -46,7 +46,7 @@ extern "C" { | ||||
| /*************************************************************/ | ||||
|  | ||||
| /* Header file version number, required by OpenGL ABI for Linux */ | ||||
| #define GL_GLEXT_VERSION 6 | ||||
| #define GL_GLEXT_VERSION 7 | ||||
|  | ||||
| #ifndef GL_VERSION_1_2 | ||||
| #define GL_CONSTANT_COLOR                 0x8001 | ||||
| @@ -220,12 +220,57 @@ extern "C" { | ||||
| #define GL_COMPRESSED_RGB_ARB             0x84ED | ||||
| #define GL_COMPRESSED_RGBA_ARB            0x84EE | ||||
| #define GL_TEXTURE_COMPRESSION_HINT_ARB   0x84EF | ||||
| #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB         0x86A0 | ||||
| #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 | ||||
| #define GL_TEXTURE_COMPRESSED_ARB         0x86A1 | ||||
| #define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 | ||||
| #define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_ARB_vertex_blend | ||||
| #define GL_MAX_VERTEX_UNITS_ARB           0x86A4 | ||||
| #define GL_ACTIVE_VERTEX_UNITS_ARB        0x86A5 | ||||
| #define GL_WEIGHT_SUM_UNITY_ARB           0x86A6 | ||||
| #define GL_VERTEX_BLEND_ARB               0x86A7 | ||||
| #define GL_CURRENT_WEIGHT_ARB             0x86A8 | ||||
| #define GL_WEIGHT_ARRAY_TYPE_ARB          0x86A9 | ||||
| #define GL_WEIGHT_ARRAY_STRIDE_ARB        0x86AA | ||||
| #define GL_WEIGHT_ARRAY_SIZE_ARB          0x86AB | ||||
| #define GL_WEIGHT_ARRAY_POINTER_ARB       0x86AC | ||||
| #define GL_WEIGHT_ARRAY_ARB               0x86AD | ||||
| #define GL_MODELVIEW0_ARB                 0x1700 | ||||
| #define GL_MODELVIEW1_ARB                 0x850A | ||||
| #define GL_MODELVIEW2_ARB                 0x8722 | ||||
| #define GL_MODELVIEW3_ARB                 0x8723 | ||||
| #define GL_MODELVIEW4_ARB                 0x8724 | ||||
| #define GL_MODELVIEW5_ARB                 0x8725 | ||||
| #define GL_MODELVIEW6_ARB                 0x8726 | ||||
| #define GL_MODELVIEW7_ARB                 0x8727 | ||||
| #define GL_MODELVIEW8_ARB                 0x8728 | ||||
| #define GL_MODELVIEW9_ARB                 0x8729 | ||||
| #define GL_MODELVIEW10_ARB                0x872A | ||||
| #define GL_MODELVIEW11_ARB                0x872B | ||||
| #define GL_MODELVIEW12_ARB                0x872C | ||||
| #define GL_MODELVIEW13_ARB                0x872D | ||||
| #define GL_MODELVIEW14_ARB                0x872E | ||||
| #define GL_MODELVIEW15_ARB                0x872F | ||||
| #define GL_MODELVIEW16_ARB                0x8730 | ||||
| #define GL_MODELVIEW17_ARB                0x8731 | ||||
| #define GL_MODELVIEW18_ARB                0x8732 | ||||
| #define GL_MODELVIEW19_ARB                0x8733 | ||||
| #define GL_MODELVIEW20_ARB                0x8734 | ||||
| #define GL_MODELVIEW21_ARB                0x8735 | ||||
| #define GL_MODELVIEW22_ARB                0x8736 | ||||
| #define GL_MODELVIEW23_ARB                0x8737 | ||||
| #define GL_MODELVIEW24_ARB                0x8738 | ||||
| #define GL_MODELVIEW25_ARB                0x8739 | ||||
| #define GL_MODELVIEW26_ARB                0x873A | ||||
| #define GL_MODELVIEW27_ARB                0x873B | ||||
| #define GL_MODELVIEW28_ARB                0x873C | ||||
| #define GL_MODELVIEW29_ARB                0x873D | ||||
| #define GL_MODELVIEW30_ARB                0x873E | ||||
| #define GL_MODELVIEW31_ARB                0x873F | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_EXT_abgr | ||||
| #define GL_ABGR_EXT                       0x8000 | ||||
| #endif | ||||
| @@ -670,6 +715,18 @@ extern "C" { | ||||
| #ifndef GL_SGIX_tag_sample_buffer | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_FfdMaskSGIX | ||||
| #define GL_TEXTURE_DEFORMATION_BIT_SGIX   0x00000001 | ||||
| #define GL_GEOMETRY_DEFORMATION_BIT_SGIX  0x00000002 | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_polynomial_ffd | ||||
| #define GL_GEOMETRY_DEFORMATION_SGIX      0x8194 | ||||
| #define GL_TEXTURE_DEFORMATION_SGIX       0x8195 | ||||
| #define GL_DEFORMATIONS_MASK_SGIX         0x8196 | ||||
| #define GL_MAX_DEFORMATION_ORDER_SGIX     0x8197 | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_reference_plane | ||||
| #define GL_REFERENCE_PLANE_SGIX           0x817D | ||||
| #define GL_REFERENCE_PLANE_EQUATION_SGIX  0x817E | ||||
| @@ -785,6 +842,14 @@ extern "C" { | ||||
| #define GL_COLOR_INDEX8_EXT               0x80E5 | ||||
| #define GL_COLOR_INDEX12_EXT              0x80E6 | ||||
| #define GL_COLOR_INDEX16_EXT              0x80E7 | ||||
| #define GL_COLOR_TABLE_FORMAT_EXT         0x80D8 | ||||
| #define GL_COLOR_TABLE_WIDTH_EXT          0x80D9 | ||||
| #define GL_COLOR_TABLE_RED_SIZE_EXT       0x80DA | ||||
| #define GL_COLOR_TABLE_GREEN_SIZE_EXT     0x80DB | ||||
| #define GL_COLOR_TABLE_BLUE_SIZE_EXT      0x80DC | ||||
| #define GL_COLOR_TABLE_ALPHA_SIZE_EXT     0x80DD | ||||
| #define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE | ||||
| #define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF | ||||
| #define GL_TEXTURE_INDEX_SIZE_EXT         0x80ED | ||||
| #endif | ||||
|  | ||||
| @@ -926,6 +991,24 @@ extern "C" { | ||||
| #define GL_BGRA_EXT                       0x80E1 | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_async | ||||
| #define GL_ASYNC_MARKER_SGIX              0x8329 | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_async_pixel | ||||
| #define GL_ASYNC_TEX_IMAGE_SGIX           0x835C | ||||
| #define GL_ASYNC_DRAW_PIXELS_SGIX         0x835D | ||||
| #define GL_ASYNC_READ_PIXELS_SGIX         0x835E | ||||
| #define GL_MAX_ASYNC_TEX_IMAGE_SGIX       0x835F | ||||
| #define GL_MAX_ASYNC_DRAW_PIXELS_SGIX     0x8360 | ||||
| #define GL_MAX_ASYNC_READ_PIXELS_SGIX     0x8361 | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_async_histogram | ||||
| #define GL_ASYNC_HISTOGRAM_SGIX           0x832C | ||||
| #define GL_MAX_ASYNC_HISTOGRAM_SGIX       0x832D | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_INTEL_texture_scissor | ||||
| #endif | ||||
|  | ||||
| @@ -1419,6 +1502,11 @@ extern "C" { | ||||
| #define GL_TEXTURE_COLOR_WRITEMASK_SGIS   0x81EF | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_EXT_texture_env_dot3 | ||||
| #define GL_DOT3_RGB_EXT                   0x8740 | ||||
| #define GL_DOT3_RGBA_EXT                  0x8741 | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /*************************************************************/ | ||||
|  | ||||
| @@ -1658,15 +1746,9 @@ typedef void (APIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bia | ||||
| #define GL_EXT_texture3D 1 | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| extern void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); | ||||
| #endif /* GL_GLEXT_PROTOTYPES */ | ||||
| typedef void (APIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_EXT_subtexture | ||||
| /*#define GL_EXT_subtexture 1*/ | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| extern void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); | ||||
| #endif /* GL_GLEXT_PROTOTYPES */ | ||||
| typedef void (APIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); | ||||
| typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); | ||||
| #endif | ||||
|  | ||||
| @@ -2038,6 +2120,20 @@ extern void APIENTRY glTagSampleBufferSGIX (void); | ||||
| typedef void (APIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_polynomial_ffd | ||||
| #define GL_SGIX_polynomial_ffd 1 | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| extern void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); | ||||
| extern void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); | ||||
| extern void APIENTRY glDeformSGIX (GLbitfield); | ||||
| extern void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield); | ||||
| #endif /* GL_GLEXT_PROTOTYPES */ | ||||
| typedef void (APIENTRY * PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); | ||||
| typedef void (APIENTRY * PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); | ||||
| typedef void (APIENTRY * PFNGLDEFORMSGIXPROC) (GLbitfield mask); | ||||
| typedef void (APIENTRY * PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_reference_plane | ||||
| #define GL_SGIX_reference_plane 1 | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| @@ -2306,6 +2402,32 @@ typedef void (APIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode) | ||||
| #define GL_EXT_bgra 1 | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_async | ||||
| #define GL_SGIX_async 1 | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| extern void APIENTRY glAsyncMarkerSGIX (GLuint); | ||||
| extern GLint APIENTRY glFinishAsyncSGIX (GLuint *); | ||||
| extern GLint APIENTRY glPollAsyncSGIX (GLuint *); | ||||
| extern GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei); | ||||
| extern void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei); | ||||
| extern GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint); | ||||
| #endif /* GL_GLEXT_PROTOTYPES */ | ||||
| typedef void (APIENTRY * PFNGLASYNCMARKERSGIXPROC) (GLuint marker); | ||||
| typedef GLint (APIENTRY * PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); | ||||
| typedef GLint (APIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); | ||||
| typedef GLuint (APIENTRY * PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); | ||||
| typedef void (APIENTRY * PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); | ||||
| typedef GLboolean (APIENTRY * PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_async_pixel | ||||
| #define GL_SGIX_async_pixel 1 | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_async_histogram | ||||
| #define GL_SGIX_async_histogram 1 | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_INTEL_parallel_arrays | ||||
| #define GL_INTEL_parallel_arrays 1 | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| @@ -2712,12 +2834,6 @@ extern void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, | ||||
| extern void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); | ||||
| extern void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); | ||||
| extern void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); | ||||
| #ifdef VMS | ||||
|    #define glGetCombinerOutputParameterfvNV glGetCombinerOutputParameterfvN | ||||
|    #define glGetCombinerOutputParameterivNV glGetCombinerOutputParameterivN | ||||
|    #define glGetFinalCombinerInputParameterfvNV glGetFinalCombinerInputParafvNV | ||||
|    #define glGetFinalCombinerInputParameterivNV glGetFinalCombinerInputParaivNV | ||||
| #endif | ||||
| extern void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); | ||||
| extern void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); | ||||
| extern void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); | ||||
| @@ -2918,6 +3034,18 @@ extern void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GL | ||||
| typedef void (APIENTRY * PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_SGIX_igloo_interface | ||||
| #define GL_SGIX_igloo_interface 1 | ||||
| #ifdef GL_GLEXT_PROTOTYPES | ||||
| extern void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *); | ||||
| #endif /* GL_GLEXT_PROTOTYPES */ | ||||
| typedef void (APIENTRY * PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params); | ||||
| #endif | ||||
|  | ||||
| #ifndef GL_EXT_texture_env_dot3 | ||||
| #define GL_EXT_texture_env_dot3 1 | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: glu.h,v 1.22 2000/07/11 14:11:44 brianp Exp $ */ | ||||
| /* $Id: glu.h,v 1.22.4.1 2000/10/26 15:32:46 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -200,7 +200,7 @@ extern "C" { | ||||
| #define GLU_NURBS_ERROR37	100287   /* duplicate point on pwlcurve */ | ||||
|  | ||||
| /* GLU 1.3 and later */ | ||||
| #define GLU_NURBS_MODE ? | ||||
| #define GLU_NURBS_MODE		100160 | ||||
|  | ||||
|  | ||||
| /* Errors */ | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: glx.h,v 1.22 2000/06/23 17:39:18 brianp Exp $ */ | ||||
| /* $Id: glx.h,v 1.22.4.1 2000/11/25 18:52:02 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -158,7 +158,7 @@ extern "C" { | ||||
| #define GLX_DAMAGED			0x8020 | ||||
| #define GLX_SAVED			0x8021 | ||||
| #define GLX_WINDOW			0x8022 | ||||
| #define GLX_PBUFFER			0x8033 | ||||
| #define GLX_PBUFFER			0x8023 | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: mesa_wgl.h,v 1.5 2000/05/22 16:21:27 brianp Exp $ */ | ||||
| /* $Id: mesa_wgl.h,v 1.5.4.1 2000/11/20 17:31:51 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -32,6 +32,7 @@ | ||||
| #define _mesa_wgl_h_ | ||||
|  | ||||
|  | ||||
| #include <windows.h> | ||||
| #include <gl/gl.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
|   | ||||
							
								
								
									
										880
									
								
								include/GL/vms_x_fix.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										880
									
								
								include/GL/vms_x_fix.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,880 @@ | ||||
| /*************************************************************************** | ||||
|  *                                                                         * | ||||
|  * Repair definitions of Xlib when compileing with /name=(as_is) on VMS    * | ||||
|  *                                                                         * | ||||
|  * Author : Jouk Jansen (joukj@hrem.stm.tudelft.nl)                        * | ||||
|  *                                                                         * | ||||
|  * Last revision : 22 August 2000                                          * | ||||
|  *                                                                         * | ||||
|  ***************************************************************************/ | ||||
|  | ||||
| #ifndef VMS_X_FIX | ||||
| #define VMS_X_FIX | ||||
|  | ||||
| #define _XRegisterFilterByType _XREGISTERFILTERBYTYPE  | ||||
| #define XAllocClassHint XALLOCCLASSHINT | ||||
| #define XAllocColor XALLOCCOLOR | ||||
| #define XAllocColorCells XALLOCCOLORCELLS | ||||
| #define XAllocSizeHints XALLOCSIZEHINTS | ||||
| #define XAllocWMHints XALLOCWMHINTS | ||||
| #define XAutoRepeatOff XAUTOREPEATOFF | ||||
| #define XAutoRepeatOn XAUTOREPEATON | ||||
| #define XBaseFontNameListOfFontSet XBASEFONTNAMELISTOFFONTSET | ||||
| #define XBell XBELL | ||||
| #define XBitmapPad XBITMAPPAD | ||||
| #define XChangeActivePointerGrab XCHANGEACTIVEPOINTERGRAB | ||||
| #define XChangeGC XCHANGEGC | ||||
| #define XChangeProperty XCHANGEPROPERTY | ||||
| #define XChangeWindowAttributes XCHANGEWINDOWATTRIBUTES | ||||
| #define XCheckIfEvent XCHECKIFEVENT | ||||
| #define XCheckMaskEvent XCHECKMASKEVENT | ||||
| #define XCheckTypedWindowEvent XCHECKTYPEDWINDOWEVENT | ||||
| #define XCheckWindowEvent XCHECKWINDOWEVENT | ||||
| #define XClearArea XCLEARAREA | ||||
| #define XClearWindow XCLEARWINDOW | ||||
| #define XClipBox XCLIPBOX | ||||
| #define XCloseDisplay XCLOSEDISPLAY | ||||
| #define XCloseIM XCLOSEIM | ||||
| #define XConfigureWindow XCONFIGUREWINDOW | ||||
| #define XConvertSelection XCONVERTSELECTION | ||||
| #define XCopyArea XCOPYAREA | ||||
| #define XCopyGC XCOPYGC | ||||
| #define XCopyPlane XCOPYPLANE | ||||
| #define XCreateBitmapFromData XCREATEBITMAPFROMDATA | ||||
| #define XCreateColormap XCREATECOLORMAP | ||||
| #define XCreateFontCursor XCREATEFONTCURSOR | ||||
| #define XCreateFontSet XCREATEFONTSET | ||||
| #define XCreateGC XCREATEGC | ||||
| #define XCreateIC XCREATEIC | ||||
| #define XCreateImage XCREATEIMAGE | ||||
| #define XCreatePixmap XCREATEPIXMAP | ||||
| #define XCreatePixmapCursor XCREATEPIXMAPCURSOR | ||||
| #define XCreatePixmapFromBitmapData XCREATEPIXMAPFROMBITMAPDATA | ||||
| #define XCreateRegion XCREATEREGION | ||||
| #define XCreateSimpleWindow XCREATESIMPLEWINDOW | ||||
| #define XCreateWindow XCREATEWINDOW | ||||
| #define XDefaultScreenOfDisplay XDEFAULTSCREENOFDISPLAY | ||||
| #define XDefineCursor XDEFINECURSOR | ||||
| #define XDeleteProperty XDELETEPROPERTY | ||||
| #define XDestroyIC XDESTROYIC | ||||
| #define XDestroyRegion XDESTROYREGION | ||||
| #define XDestroyWindow XDESTROYWINDOW | ||||
| #define XDisplayName XDISPLAYNAME | ||||
| #define XDisplayOfScreen XDISPLAYOFSCREEN | ||||
| #define XDrawArc XDRAWARC | ||||
| #define XDrawImageString XDRAWIMAGESTRING | ||||
| #define XDrawImageString16 XDRAWIMAGESTRING16 | ||||
| #define XDrawLine XDRAWLINE | ||||
| #define XDrawLines XDRAWLINES | ||||
| #define XDrawPoint XDRAWPOINT | ||||
| #define XDrawPoints XDRAWPOINTS | ||||
| #define XDrawRectangle XDRAWRECTANGLE | ||||
| #define XDrawSegments XDRAWSEGMENTS | ||||
| #define XDrawString XDRAWSTRING | ||||
| #define XDrawString16 XDRAWSTRING16 | ||||
| #define XEmptyRegion XEMPTYREGION | ||||
| #define XEqualRegion XEQUALREGION | ||||
| #define XEventsQueued XEVENTSQUEUED | ||||
| #define XExtentsOfFontSet XEXTENTSOFFONTSET | ||||
| #define XFillArc XFILLARC | ||||
| #define XFillPolygon XFILLPOLYGON | ||||
| #define XFillRectangle XFILLRECTANGLE | ||||
| #define XFillRectangles XFILLRECTANGLES | ||||
| #define XFilterEvent XFILTEREVENT | ||||
| #define XFlush XFLUSH | ||||
| #define XFontsOfFontSet XFONTSOFFONTSET | ||||
| #define XFree XFREE | ||||
| #define XFreeColormap XFREECOLORMAP | ||||
| #define XFreeColors XFREECOLORS | ||||
| #define XFreeCursor XFREECURSOR | ||||
| #define XFreeFont XFREEFONT | ||||
| #define XFreeFontInfo XFREEFONTINFO | ||||
| #define XFreeFontNames XFREEFONTNAMES | ||||
| #define XFreeFontSet XFREEFONTSET | ||||
| #define XFreeGC XFREEGC | ||||
| #define XFreeModifiermap XFREEMODIFIERMAP | ||||
| #define XFreePixmap XFREEPIXMAP | ||||
| #define XFreeStringList XFREESTRINGLIST | ||||
| #define XGetAtomName XGETATOMNAME | ||||
| #define XGetDefault XGETDEFAULT | ||||
| #define XGetErrorDatabaseText XGETERRORDATABASETEXT | ||||
| #define XGetErrorText XGETERRORTEXT | ||||
| #define XGetFontProperty XGETFONTPROPERTY | ||||
| #define XGetGCValues XGETGCVALUES | ||||
| #define XGetGeometry XGETGEOMETRY | ||||
| #define XGetICValues XGETICVALUES | ||||
| #define XGetIMValues XGETIMVALUES | ||||
| #define XGetImage XGETIMAGE | ||||
| #define XGetKeyboardControl XGETKEYBOARDCONTROL | ||||
| #define XGetModifierMapping XGETMODIFIERMAPPING | ||||
| #define XGetMotionEvents XGETMOTIONEVENTS | ||||
| #define XGetNormalHints XGETNORMALHINTS | ||||
| #define XGetSelectionOwner XGETSELECTIONOWNER | ||||
| #define XGetSubImage XGETSUBIMAGE | ||||
| #define XGetVisualInfo XGETVISUALINFO | ||||
| #define XGetWMColormapWindows XGETWMCOLORMAPWINDOWS | ||||
| #define XGetWMHints XGETWMHINTS | ||||
| #define XGetWMName XGETWMNAME | ||||
| #define XGetWMNormalHints XGETWMNORMALHINTS | ||||
| #define XGetWindowAttributes XGETWINDOWATTRIBUTES | ||||
| #define XGetWindowProperty XGETWINDOWPROPERTY | ||||
| #define XGrabKeyboard XGRABKEYBOARD | ||||
| #define XGrabPointer XGRABPOINTER | ||||
| #define XGrabServer XGRABSERVER | ||||
| #define XHeightOfScreen XHEIGHTOFSCREEN | ||||
| #define XIfEvent XIFEVENT | ||||
| #define XInternAtom XINTERNATOM | ||||
| #define XIntersectRegion XINTERSECTREGION | ||||
| #define XKeycodeToKeysym XKEYCODETOKEYSYM | ||||
| #define XKeysymToKeycode XKEYSYMTOKEYCODE | ||||
| #define XKeysymToString XKEYSYMTOSTRING | ||||
| #define XListFonts XLISTFONTS | ||||
| #define XListFontsWithInfo XLISTFONTSWITHINFO | ||||
| #define XListPixmapFormats XLISTPIXMAPFORMATS | ||||
| #define XListProperties XLISTPROPERTIES | ||||
| #define XLoadQueryFont XLOADQUERYFONT | ||||
| #define XLookupString XLOOKUPSTRING | ||||
| #define XLowerWindow XLOWERWINDOW | ||||
| #define XMapRaised XMAPRAISED | ||||
| #define XMapWindow XMAPWINDOW | ||||
| #define XMatchVisualInfo XMATCHVISUALINFO | ||||
| #define XMoveResizeWindow XMOVERESIZEWINDOW | ||||
| #define XMoveWindow XMOVEWINDOW | ||||
| #define XNextEvent XNEXTEVENT | ||||
| #define XOffsetRegion XOFFSETREGION | ||||
| #define XOpenDisplay XOPENDISPLAY | ||||
| #define XOpenIM XOPENIM | ||||
| #define XParseColor XPARSECOLOR | ||||
| #define XParseGeometry XPARSEGEOMETRY | ||||
| #define XPeekEvent XPEEKEVENT | ||||
| #define XPending XPENDING | ||||
| #define XPointInRegion XPOINTINREGION | ||||
| #define XPolygonRegion XPOLYGONREGION | ||||
| #define XPutBackEvent XPUTBACKEVENT | ||||
| #define XPutImage XPUTIMAGE | ||||
| #define XQueryColor XQUERYCOLOR | ||||
| #define XQueryColors XQUERYCOLORS | ||||
| #define XQueryExtension XQUERYEXTENSION | ||||
| #define XQueryPointer XQUERYPOINTER | ||||
| #define XQueryTree XQUERYTREE | ||||
| #define XRaiseWindow XRAISEWINDOW | ||||
| #define XReconfigureWMWindow XRECONFIGUREWMWINDOW | ||||
| #define XRectInRegion XRECTINREGION | ||||
| #define XRefreshKeyboardMapping XREFRESHKEYBOARDMAPPING | ||||
| #define XReparentWindow XREPARENTWINDOW | ||||
| #define XResizeWindow XRESIZEWINDOW | ||||
| #define XRestackWindows XRESTACKWINDOWS | ||||
| #define XRootWindowOfScreen XROOTWINDOWOFSCREEN | ||||
| #define XScreenNumberOfScreen XSCREENNUMBEROFSCREEN | ||||
| #define XSelectAsyncEvent XSELECTASYNCEVENT | ||||
| #define XSelectAsyncInput XSELECTASYNCINPUT | ||||
| #define XSelectInput XSELECTINPUT | ||||
| #define XSendEvent XSENDEVENT | ||||
| #define XServerVendor XSERVERVENDOR | ||||
| #define XSetBackground XSETBACKGROUND | ||||
| #define XSetClassHint XSETCLASSHINT | ||||
| #define XSetClipMask XSETCLIPMASK | ||||
| #define XSetClipOrigin XSETCLIPORIGIN | ||||
| #define XSetClipRectangles XSETCLIPRECTANGLES | ||||
| #define XSetCloseDownMode XSETCLOSEDOWNMODE | ||||
| #define XSetCommand XSETCOMMAND | ||||
| #define XSetDashes XSETDASHES | ||||
| #define XSetErrorHandler XSETERRORHANDLER | ||||
| #define XSetFillStyle XSETFILLSTYLE | ||||
| #define XSetFont XSETFONT | ||||
| #define XSetForeground XSETFOREGROUND | ||||
| #define XSetFunction XSETFUNCTION | ||||
| #define XSetGraphicsExposures XSETGRAPHICSEXPOSURES | ||||
| #define XSetICFocus XSETICFOCUS | ||||
| #define XSetICValues XSETICVALUES | ||||
| #define XSetIOErrorHandler XSETIOERRORHANDLER | ||||
| #define XSetInputFocus XSETINPUTFOCUS | ||||
| #define XSetLineAttributes XSETLINEATTRIBUTES | ||||
| #define XSetLocaleModifiers XSETLOCALEMODIFIERS | ||||
| #define XSetNormalHints XSETNORMALHINTS | ||||
| #define XSetRegion XSETREGION | ||||
| #define XSetSelectionOwner XSETSELECTIONOWNER | ||||
| #define XSetStipple XSETSTIPPLE | ||||
| #define XSetSubwindowMode XSETSUBWINDOWMODE | ||||
| #define XSetTSOrigin XSETTSORIGIN | ||||
| #define XSetTile XSETTILE | ||||
| #define XSetTransientForHint XSETTRANSIENTFORHINT | ||||
| #define XSetWMColormapWindows XSETWMCOLORMAPWINDOWS | ||||
| #define XSetWMHints XSETWMHINTS | ||||
| #define XSetWMIconName XSETWMICONNAME | ||||
| #define XSetWMName XSETWMNAME | ||||
| #define XSetWMNormalHints XSETWMNORMALHINTS | ||||
| #define XSetWMProperties XSETWMPROPERTIES | ||||
| #define XSetWMProtocols XSETWMPROTOCOLS | ||||
| #define XSetWindowBackground XSETWINDOWBACKGROUND | ||||
| #define XSetWindowBackgroundPixmap XSETWINDOWBACKGROUNDPIXMAP | ||||
| #define XSetWindowColormap XSETWINDOWCOLORMAP | ||||
| #define XShapeCombineMask XSHAPECOMBINEMASK | ||||
| #define XShapeCombineRectangles XSHAPECOMBINERECTANGLES | ||||
| #define XShapeGetRectangles XSHAPEGETRECTANGLES | ||||
| #define XShrinkRegion XSHRINKREGION | ||||
| #define XStoreColor XSTORECOLOR | ||||
| #define XStoreColors XSTORECOLORS | ||||
| #define XStoreName XSTORENAME | ||||
| #define XStringToKeysym XSTRINGTOKEYSYM | ||||
| #define XSubtractRegion XSUBTRACTREGION | ||||
| #define XSupportsLocale XSUPPORTSLOCALE | ||||
| #define XSync XSYNC | ||||
| #define XSynchronize XSYNCHRONIZE | ||||
| #define XTextExtents XTEXTEXTENTS | ||||
| #define XTextExtents16 XTEXTEXTENTS16 | ||||
| #define XTextWidth XTEXTWIDTH | ||||
| #define XTextWidth16 XTEXTWIDTH16 | ||||
| #define XTranslateCoordinates XTRANSLATECOORDINATES | ||||
| #define XUndefineCursor XUNDEFINECURSOR | ||||
| #define XUngrabKeyboard XUNGRABKEYBOARD | ||||
| #define XUngrabPointer XUNGRABPOINTER | ||||
| #define XUngrabServer XUNGRABSERVER | ||||
| #define XUnionRectWithRegion XUNIONRECTWITHREGION | ||||
| #define XUnionRegion XUNIONREGION | ||||
| #define XUnmapWindow XUNMAPWINDOW | ||||
| #define _XUnregisterFilter _XUNREGISTERFILTER | ||||
| #define XUnsetICFocus XUNSETICFOCUS | ||||
| #define XVaCreateNestedList XVACREATENESTEDLIST | ||||
| #define XVisualIDFromVisual XVISUALIDFROMVISUAL | ||||
| #define XWidthOfScreen XWIDTHOFSCREEN | ||||
| #define XWindowEvent XWINDOWEVENT | ||||
| #define XWithdrawWindow XWITHDRAWWINDOW | ||||
| #define XXorRegion XXORREGION | ||||
| #define XmAddProtocolCallback XMADDPROTOCOLCALLBACK | ||||
| #define XmAddProtocols XMADDPROTOCOLS | ||||
| #define XmChangeColor XMCHANGECOLOR | ||||
| #define XmClipboardCopy XMCLIPBOARDCOPY | ||||
| #define XmClipboardEndCopy XMCLIPBOARDENDCOPY | ||||
| #define XmClipboardInquireLength XMCLIPBOARDINQUIRELENGTH | ||||
| #define XmClipboardLock XMCLIPBOARDLOCK | ||||
| #define XmClipboardRetrieve XMCLIPBOARDRETRIEVE | ||||
| #define XmClipboardStartCopy XMCLIPBOARDSTARTCOPY | ||||
| #define XmClipboardUnlock XMCLIPBOARDUNLOCK | ||||
| #define XmCreateArrowButton XMCREATEARROWBUTTON | ||||
| #define XmCreateArrowButtonGadget XMCREATEARROWBUTTONGADGET | ||||
| #define XmCreateCascadeButton XMCREATECASCADEBUTTON | ||||
| #define XmCreateDialogShell XMCREATEDIALOGSHELL | ||||
| #define XmCreateDragIcon XMCREATEDRAGICON | ||||
| #define XmCreateDrawingArea XMCREATEDRAWINGAREA | ||||
| #define XmCreateDrawnButton XMCREATEDRAWNBUTTON | ||||
| #define XmCreateFileSelectionBox XMCREATEFILESELECTIONBOX | ||||
| #define XmCreateFileSelectionDialog XMCREATEFILESELECTIONDIALOG | ||||
| #define XmCreateForm XMCREATEFORM | ||||
| #define XmCreateFormDialog XMCREATEFORMDIALOG | ||||
| #define XmCreateFrame XMCREATEFRAME | ||||
| #define XmCreateInformationDialog XMCREATEINFORMATIONDIALOG | ||||
| #define XmCreateLabelGadget XMCREATELABELGADGET | ||||
| #define XmCreateMainWindow XMCREATEMAINWINDOW | ||||
| #define XmCreateMenuBar XMCREATEMENUBAR | ||||
| #define XmCreateMessageBox XMCREATEMESSAGEBOX | ||||
| #define XmCreateMessageDialog XMCREATEMESSAGEDIALOG | ||||
| #define XmCreateOptionMenu XMCREATEOPTIONMENU | ||||
| #define XmCreatePanedWindow XMCREATEPANEDWINDOW | ||||
| #define XmCreatePopupMenu XMCREATEPOPUPMENU | ||||
| #define XmCreatePromptDialog XMCREATEPROMPTDIALOG | ||||
| #define XmCreatePulldownMenu XMCREATEPULLDOWNMENU | ||||
| #define XmCreatePushButton XMCREATEPUSHBUTTON | ||||
| #define XmCreatePushButtonGadget XMCREATEPUSHBUTTONGADGET | ||||
| #define XmCreateQuestionDialog XMCREATEQUESTIONDIALOG | ||||
| #define XmCreateRadioBox XMCREATERADIOBOX | ||||
| #define XmCreateRowColumn XMCREATEROWCOLUMN | ||||
| #define XmCreateScale XMCREATESCALE | ||||
| #define XmCreateScrollBar XMCREATESCROLLBAR | ||||
| #define XmCreateScrolledList XMCREATESCROLLEDLIST | ||||
| #define XmCreateScrolledText XMCREATESCROLLEDTEXT | ||||
| #define XmCreateScrolledWindow XMCREATESCROLLEDWINDOW | ||||
| #define XmCreateSelectionDialog XMCREATESELECTIONDIALOG | ||||
| #define XmCreateSeparator XMCREATESEPARATOR | ||||
| #define XmCreateSeparatorGadget XMCREATESEPARATORGADGET | ||||
| #define XmCreateTemplateDialog XMCREATETEMPLATEDIALOG | ||||
| #define XmCreateText XMCREATETEXT | ||||
| #define XmCreateTextField XMCREATETEXTFIELD | ||||
| #define XmCreateToggleButton XMCREATETOGGLEBUTTON | ||||
| #define XmCreateToggleButtonGadget XMCREATETOGGLEBUTTONGADGET | ||||
| #define XmDragStart XMDRAGSTART | ||||
| #define XmDropSiteRegister XMDROPSITEREGISTER | ||||
| #define XmDropSiteUnregister XMDROPSITEUNREGISTER | ||||
| #define XmDropSiteUpdate XMDROPSITEUPDATE | ||||
| #define XmDropTransferStart XMDROPTRANSFERSTART | ||||
| #define XmFileSelectionBoxGetChild XMFILESELECTIONBOXGETCHILD | ||||
| #define XmFileSelectionDoSearch XMFILESELECTIONDOSEARCH | ||||
| #define XmFontListAppendEntry XMFONTLISTAPPENDENTRY | ||||
| #define XmFontListCopy XMFONTLISTCOPY | ||||
| #define XmFontListCreate XMFONTLISTCREATE | ||||
| #define XmFontListEntryCreate XMFONTLISTENTRYCREATE | ||||
| #define XmFontListEntryFree XMFONTLISTENTRYFREE | ||||
| #define XmFontListEntryGetFont XMFONTLISTENTRYGETFONT | ||||
| #define XmFontListEntryGetTag XMFONTLISTENTRYGETTAG | ||||
| #define XmFontListEntryLoad XMFONTLISTENTRYLOAD | ||||
| #define XmFontListFree XMFONTLISTFREE | ||||
| #define XmFontListFreeFontContext XMFONTLISTFREEFONTCONTEXT | ||||
| #define XmFontListGetNextFont XMFONTLISTGETNEXTFONT | ||||
| #define XmFontListInitFontContext XMFONTLISTINITFONTCONTEXT | ||||
| #define XmFontListNextEntry XMFONTLISTNEXTENTRY | ||||
| #define XmGetColors XMGETCOLORS | ||||
| #define XmGetFocusWidget XMGETFOCUSWIDGET | ||||
| #define XmGetMenuCursor XMGETMENUCURSOR | ||||
| #define XmGetPixmapByDepth XMGETPIXMAPBYDEPTH | ||||
| #define XmGetTearOffControl XMGETTEAROFFCONTROL | ||||
| #define XmGetXmDisplay XMGETXMDISPLAY | ||||
| #define XmImMbLookupString XMIMMBLOOKUPSTRING | ||||
| #define XmImRegister XMIMREGISTER | ||||
| #define XmImSetFocusValues XMIMSETFOCUSVALUES | ||||
| #define XmImSetValues XMIMSETVALUES | ||||
| #define XmImUnregister XMIMUNREGISTER | ||||
| #define XmImUnsetFocus XMIMUNSETFOCUS | ||||
| #define XmInternAtom XMINTERNATOM | ||||
| #define XmIsMotifWMRunning XMISMOTIFWMRUNNING | ||||
| #define XmListAddItem XMLISTADDITEM | ||||
| #define XmListAddItemUnselected XMLISTADDITEMUNSELECTED | ||||
| #define XmListAddItemsUnselected XMLISTADDITEMSUNSELECTED | ||||
| #define XmListDeleteAllItems XMLISTDELETEALLITEMS | ||||
| #define XmListDeleteItemsPos XMLISTDELETEITEMSPOS | ||||
| #define XmListDeletePos XMLISTDELETEPOS | ||||
| #define XmListDeselectAllItems XMLISTDESELECTALLITEMS | ||||
| #define XmListDeselectPos XMLISTDESELECTPOS | ||||
| #define XmListGetKbdItemPos XMLISTGETKBDITEMPOS | ||||
| #define XmListGetMatchPos XMLISTGETMATCHPOS | ||||
| #define XmListGetSelectedPos XMLISTGETSELECTEDPOS | ||||
| #define XmListPosSelected XMLISTPOSSELECTED | ||||
| #define XmListSelectItem XMLISTSELECTITEM | ||||
| #define XmListSelectPos XMLISTSELECTPOS | ||||
| #define XmListSetBottomPos XMLISTSETBOTTOMPOS | ||||
| #define XmListSetItem XMLISTSETITEM | ||||
| #define XmListSetKbdItemPos XMLISTSETKBDITEMPOS | ||||
| #define XmListSetPos XMLISTSETPOS | ||||
| #define XmMainWindowSetAreas XMMAINWINDOWSETAREAS | ||||
| #define XmMenuPosition XMMENUPOSITION | ||||
| #define XmMessageBoxGetChild XMMESSAGEBOXGETCHILD | ||||
| #define XmOptionButtonGadget XMOPTIONBUTTONGADGET | ||||
| #define XmOptionLabelGadget XMOPTIONLABELGADGET | ||||
| #define XmProcessTraversal XMPROCESSTRAVERSAL | ||||
| #define XmQmotif XMQMOTIF | ||||
| #define XmRemoveProtocolCallback XMREMOVEPROTOCOLCALLBACK | ||||
| #define XmRepTypeGetId XMREPTYPEGETID | ||||
| #define XmRepTypeGetRecord XMREPTYPEGETRECORD | ||||
| #define XmRepTypeRegister XMREPTYPEREGISTER | ||||
| #define XmRepTypeValidValue XMREPTYPEVALIDVALUE | ||||
| #define XmScrollBarSetValues XMSCROLLBARSETVALUES | ||||
| #define XmScrolledWindowSetAreas XMSCROLLEDWINDOWSETAREAS | ||||
| #define XmSelectionBoxGetChild XMSELECTIONBOXGETCHILD | ||||
| #define XmStringByteCompare XMSTRINGBYTECOMPARE | ||||
| #define XmStringCompare XMSTRINGCOMPARE | ||||
| #define XmStringConcat XMSTRINGCONCAT | ||||
| #define XmStringCopy XMSTRINGCOPY | ||||
| #define XmStringCreate XMSTRINGCREATE | ||||
| #define XmStringCreateLocalized XMSTRINGCREATELOCALIZED | ||||
| #define XmStringCreateLtoR XMSTRINGCREATELTOR | ||||
| #define XmStringCreateSimple XMSTRINGCREATESIMPLE | ||||
| #define XmStringDraw XMSTRINGDRAW | ||||
| #define XmStringDrawUnderline XMSTRINGDRAWUNDERLINE | ||||
| #define XmStringExtent XMSTRINGEXTENT | ||||
| #define XmStringFree XMSTRINGFREE | ||||
| #define XmStringFreeContext XMSTRINGFREECONTEXT | ||||
| #define XmStringGetLtoR XMSTRINGGETLTOR | ||||
| #define XmStringGetNextComponent XMSTRINGGETNEXTCOMPONENT | ||||
| #define XmStringGetNextSegment XMSTRINGGETNEXTSEGMENT | ||||
| #define XmStringInitContext XMSTRINGINITCONTEXT | ||||
| #define XmStringLength XMSTRINGLENGTH | ||||
| #define XmStringLtoRCreate XMSTRINGLTORCREATE | ||||
| #define XmStringNConcat XMSTRINGNCONCAT | ||||
| #define XmStringSegmentCreate XMSTRINGSEGMENTCREATE | ||||
| #define XmStringWidth XMSTRINGWIDTH | ||||
| #define XmTextClearSelection XMTEXTCLEARSELECTION | ||||
| #define XmTextFieldGetEditable XMTEXTFIELDGETEDITABLE | ||||
| #define XmTextFieldGetInsertionPosition XMTEXTFIELDGETINSERTIONPOSITION | ||||
| #define XmTextFieldGetLastPosition XMTEXTFIELDGETLASTPOSITION | ||||
| #define XmTextFieldGetSelection XMTEXTFIELDGETSELECTION | ||||
| #define XmTextFieldGetString XMTEXTFIELDGETSTRING | ||||
| #define XmTextFieldInsert XMTEXTFIELDINSERT | ||||
| #define XmTextFieldRemove XMTEXTFIELDREMOVE | ||||
| #define XmTextFieldSetSelection XMTEXTFIELDSETSELECTION | ||||
| #define XmTextFieldSetString XMTEXTFIELDSETSTRING | ||||
| #define XmTextGetCursorPosition XMTEXTGETCURSORPOSITION | ||||
| #define XmTextGetInsertionPosition XMTEXTGETINSERTIONPOSITION | ||||
| #define XmTextGetLastPosition XMTEXTGETLASTPOSITION | ||||
| #define XmTextGetMaxLength XMTEXTGETMAXLENGTH | ||||
| #define XmTextGetSelection XMTEXTGETSELECTION | ||||
| #define XmTextGetSelectionPosition XMTEXTGETSELECTIONPOSITION | ||||
| #define XmTextGetString XMTEXTGETSTRING | ||||
| #define XmTextInsert XMTEXTINSERT | ||||
| #define XmTextRemove XMTEXTREMOVE | ||||
| #define XmTextReplace XMTEXTREPLACE | ||||
| #define XmTextSetCursorPosition XMTEXTSETCURSORPOSITION | ||||
| #define XmTextSetHighlight XMTEXTSETHIGHLIGHT | ||||
| #define XmTextSetInsertionPosition XMTEXTSETINSERTIONPOSITION | ||||
| #define XmTextSetSelection XMTEXTSETSELECTION | ||||
| #define XmTextSetString XMTEXTSETSTRING | ||||
| #define XmToggleButtonGadgetGetState XMTOGGLEBUTTONGADGETGETSTATE | ||||
| #define XmToggleButtonGadgetSetState XMTOGGLEBUTTONGADGETSETSTATE | ||||
| #define XmToggleButtonGetState XMTOGGLEBUTTONGETSTATE | ||||
| #define XmToggleButtonSetState XMTOGGLEBUTTONSETSTATE | ||||
| #define XmUpdateDisplay XMUPDATEDISPLAY | ||||
| #define XmVaCreateSimpleRadioBox XMVACREATESIMPLERADIOBOX | ||||
| #define XmbDrawString XMBDRAWSTRING | ||||
| #define XmbLookupString XMBLOOKUPSTRING | ||||
| #define XmbResetIC XMBRESETIC | ||||
| #define XmbSetWMProperties XMBSETWMPROPERTIES | ||||
| #define XmbTextEscapement XMBTEXTESCAPEMENT | ||||
| #define XmbTextExtents XMBTEXTEXTENTS | ||||
| #define XmbTextListToTextProperty XMBTEXTLISTTOTEXTPROPERTY | ||||
| #define XmbTextPropertyToTextList XMBTEXTPROPERTYTOTEXTLIST | ||||
| #define XmuClientWindow XMUCLIENTWINDOW | ||||
| #define XmuPrintDefaultErrorMessage XMUPRINTDEFAULTERRORMESSAGE | ||||
| #define XrmGetDatabase XRMGETDATABASE | ||||
| #define XrmGetResource XRMGETRESOURCE | ||||
| #define XrmPutStringResource XRMPUTSTRINGRESOURCE | ||||
| #define XrmQuarkToString XRMQUARKTOSTRING | ||||
| #define XrmStringToQuark XRMSTRINGTOQUARK | ||||
| #define XtAddCallback XTADDCALLBACK | ||||
| #define XtAddCallbacks XTADDCALLBACKS | ||||
| #define XtAddEventHandler XTADDEVENTHANDLER | ||||
| #define XtAddGrab XTADDGRAB | ||||
| #define XtAllocateGC XTALLOCATEGC | ||||
| #define XtAppAddActions XTAPPADDACTIONS | ||||
| #define XtAppAddInput XTAPPADDINPUT | ||||
| #define XtAppAddTimeOut XTAPPADDTIMEOUT | ||||
| #define XtAppCreateShell XTAPPCREATESHELL | ||||
| #define XtAppInitialize XTAPPINITIALIZE | ||||
| #define XtAppNextEvent XTAPPNEXTEVENT | ||||
| #define XtAppPeekEvent XTAPPPEEKEVENT | ||||
| #define XtAppPending XTAPPPENDING | ||||
| #define XtAppProcessEvent XTAPPPROCESSEVENT | ||||
| #define XtAppSetErrorHandler XTAPPSETERRORHANDLER | ||||
| #define XtAppSetFallbackResources XTAPPSETFALLBACKRESOURCES | ||||
| #define XtAppSetWarningHandler XTAPPSETWARNINGHANDLER | ||||
| #define XtAppSetWarningMsgHandler XTAPPSETWARNINGMSGHANDLER | ||||
| #define XtAppWarning XTAPPWARNING | ||||
| #define XtCallActionProc XTCALLACTIONPROC | ||||
| #define XtCallCallbackList XTCALLCALLBACKLIST | ||||
| #define XtCallCallbacks XTCALLCALLBACKS | ||||
| #define XtConfigureWidget XTCONFIGUREWIDGET | ||||
| #define XtConvertAndStore XTCONVERTANDSTORE | ||||
| #define XtCreateApplicationContext XTCREATEAPPLICATIONCONTEXT | ||||
| #define XtCreateManagedWidget XTCREATEMANAGEDWIDGET | ||||
| #define XtCreatePopupShell XTCREATEPOPUPSHELL | ||||
| #define XtCreateWidget XTCREATEWIDGET | ||||
| #define XtDatabase XTDATABASE | ||||
| #define XtDestroyWidget XTDESTROYWIDGET | ||||
| #define XtDisownSelection XTDISOWNSELECTION | ||||
| #define XtDispatchEvent XTDISPATCHEVENT | ||||
| #define XtDisplayOfObject XTDISPLAYOFOBJECT | ||||
| #define XtDisplayStringConvWarning XTDISPLAYSTRINGCONVWARNING | ||||
| #define XtDisplayToApplicationContext XTDISPLAYTOAPPLICATIONCONTEXT | ||||
| #define XtAppAddWorkProc XTAPPADDWORKPROC | ||||
| #define XtRemoveWorkProc XTREMOVEWORKPROC | ||||
| #define XtFree XTFREE | ||||
| #define XtGetActionKeysym XTGETACTIONKEYSYM | ||||
| #define XtGetActionList XTGETACTIONLIST | ||||
| #define XtGetApplicationNameAndClass XTGETAPPLICATIONNAMEANDCLASS | ||||
| #define XtGetApplicationResources XTGETAPPLICATIONRESOURCES | ||||
| #define XtGetGC XTGETGC | ||||
| #define XtGetMultiClickTime XTGETMULTICLICKTIME | ||||
| #define XtGetSelectionValue XTGETSELECTIONVALUE | ||||
| #define XtGetSelectionValues XTGETSELECTIONVALUES | ||||
| #define XtGetSubresources XTGETSUBRESOURCES | ||||
| #define XtGetValues XTGETVALUES | ||||
| #define XtGrabKeyboard XTGRABKEYBOARD | ||||
| #define XtGrabPointer XTGRABPOINTER | ||||
| #define XtHasCallbacks XTHASCALLBACKS | ||||
| #define XtInitializeWidgetClass XTINITIALIZEWIDGETCLASS | ||||
| #define XtInsertEventHandler XTINSERTEVENTHANDLER | ||||
| #define XtIsManaged XTISMANAGED | ||||
| #define XtIsObject XTISOBJECT | ||||
| #define XtIsSensitive XTISSENSITIVE | ||||
| #define XtIsSubclass XTISSUBCLASS | ||||
| #define XtLastTimestampProcessed XTLASTTIMESTAMPPROCESSED | ||||
| #define XtMakeGeometryRequest XTMAKEGEOMETRYREQUEST | ||||
| #define XtMakeResizeRequest XTMAKERESIZEREQUEST | ||||
| #define XtMalloc XTMALLOC | ||||
| #define XtManageChild XTMANAGECHILD | ||||
| #define XtManageChildren XTMANAGECHILDREN | ||||
| #define XtMergeArgLists XTMERGEARGLISTS | ||||
| #define XtMoveWidget XTMOVEWIDGET | ||||
| #define XtName XTNAME | ||||
| #define XtNameToWidget XTNAMETOWIDGET | ||||
| #define XtOpenDisplay XTOPENDISPLAY | ||||
| #define XtOverrideTranslations XTOVERRIDETRANSLATIONS | ||||
| #define XtOwnSelection XTOWNSELECTION | ||||
| #define XtParseTranslationTable XTPARSETRANSLATIONTABLE | ||||
| #define XtPopdown XTPOPDOWN | ||||
| #define XtPopup XTPOPUP | ||||
| #define XtQueryGeometry XTQUERYGEOMETRY | ||||
| #define XtRealizeWidget XTREALIZEWIDGET | ||||
| #define XtRealloc XTREALLOC | ||||
| #define XtReleaseGC XTRELEASEGC | ||||
| #define XtRemoveAllCallbacks XTREMOVEALLCALLBACKS | ||||
| #define XtRemoveCallback XTREMOVECALLBACK | ||||
| #define XtRemoveEventHandler XTREMOVEEVENTHANDLER | ||||
| #define XtRemoveGrab XTREMOVEGRAB | ||||
| #define XtRemoveInput XTREMOVEINPUT | ||||
| #define XtRemoveTimeOut XTREMOVETIMEOUT | ||||
| #define XtResizeWidget XTRESIZEWIDGET | ||||
| #define XtResolvePathname XTRESOLVEPATHNAME | ||||
| #define XtSetKeyboardFocus XTSETKEYBOARDFOCUS | ||||
| #define XtSetMappedWhenManaged XTSETMAPPEDWHENMANAGED | ||||
| #define XtSetSensitive XTSETSENSITIVE | ||||
| #define XtSetTypeConverter XTSETTYPECONVERTER | ||||
| #define XtSetValues XTSETVALUES | ||||
| #define XtShellStrings XTSHELLSTRINGS | ||||
| #define XtStrings XTSTRINGS | ||||
| #define XtToolkitInitialize XTTOOLKITINITIALIZE | ||||
| #define XtTranslateCoords XTTRANSLATECOORDS | ||||
| #define XtTranslateKeycode XTTRANSLATEKEYCODE | ||||
| #define XtUngrabKeyboard XTUNGRABKEYBOARD | ||||
| #define XtUngrabPointer XTUNGRABPOINTER | ||||
| #define XtUnmanageChild XTUNMANAGECHILD | ||||
| #define XtUnmanageChildren XTUNMANAGECHILDREN | ||||
| #define XtUnrealizeWidget XTUNREALIZEWIDGET | ||||
| #define XtVaCreateManagedWidget XTVACREATEMANAGEDWIDGET | ||||
| #define XtVaCreateWidget XTVACREATEWIDGET | ||||
| #define XtVaGetValues XTVAGETVALUES | ||||
| #define XtVaSetValues XTVASETVALUES | ||||
| #define XtWarning XTWARNING | ||||
| #define XtWidgetToApplicationContext XTWIDGETTOAPPLICATIONCONTEXT | ||||
| #define XtWindowOfObject XTWINDOWOFOBJECT | ||||
| #define XtWindowToWidget XTWINDOWTOWIDGET | ||||
| #define XwcDrawString XWCDRAWSTRING | ||||
| #define XwcFreeStringList XWCFREESTRINGLIST | ||||
| #define XwcTextEscapement XWCTEXTESCAPEMENT | ||||
| #define XwcTextExtents XWCTEXTEXTENTS | ||||
| #define XwcTextListToTextProperty XWCTEXTLISTTOTEXTPROPERTY | ||||
| #define XwcTextPropertyToTextList XWCTEXTPROPERTYTOTEXTLIST | ||||
| #define _XmBottomShadowColorDefault _XMBOTTOMSHADOWCOLORDEFAULT | ||||
| #define _XmClearBorder _XMCLEARBORDER | ||||
| #define _XmConfigureObject _XMCONFIGUREOBJECT | ||||
| #define _XmDestroyParentCallback _XMDESTROYPARENTCALLBACK | ||||
| #define _XmDrawArrow _XMDRAWARROW | ||||
| #define _XmDrawShadows _XMDRAWSHADOWS | ||||
| #define _XmFontListGetDefaultFont _XMFONTLISTGETDEFAULTFONT | ||||
| #define _XmFromHorizontalPixels _XMFROMHORIZONTALPIXELS | ||||
| #define _XmFromVerticalPixels _XMFROMVERTICALPIXELS | ||||
| #define _XmGetClassExtensionPtr _XMGETCLASSEXTENSIONPTR | ||||
| #define _XmGetDefaultFontList _XMGETDEFAULTFONTLIST | ||||
| #define _XmGetTextualDragIcon _XMGETTEXTUALDRAGICON | ||||
| #define _XmGetWidgetExtData _XMGETWIDGETEXTDATA | ||||
| #define _XmGrabKeyboard _XMGRABKEYBOARD | ||||
| #define _XmGrabPointer _XMGRABPOINTER | ||||
| #define _XmInheritClass _XMINHERITCLASS | ||||
| #define _XmInputInGadget _XMINPUTINGADGET | ||||
| #define _XmMakeGeometryRequest _XMMAKEGEOMETRYREQUEST | ||||
| #define _XmMenuPopDown _XMMENUPOPDOWN | ||||
| #define _XmMoveObject _XMMOVEOBJECT | ||||
| #define _XmNavigChangeManaged _XMNAVIGCHANGEMANAGED | ||||
| #define _XmOSBuildFileList _XMOSBUILDFILELIST | ||||
| #define _XmOSFileCompare _XMOSFILECOMPARE | ||||
| #define _XmOSFindPatternPart _XMOSFINDPATTERNPART | ||||
| #define _XmOSQualifyFileSpec _XMOSQUALIFYFILESPEC | ||||
| #define _XmPostPopupMenu _XMPOSTPOPUPMENU | ||||
| #define _XmPrimitiveEnter _XMPRIMITIVEENTER | ||||
| #define _XmPrimitiveLeave _XMPRIMITIVELEAVE | ||||
| #define _XmRedisplayGadgets _XMREDISPLAYGADGETS | ||||
| #define _XmShellIsExclusive _XMSHELLISEXCLUSIVE | ||||
| #define _XmStringDraw _XMSTRINGDRAW | ||||
| #define _XmStringGetTextConcat _XMSTRINGGETTEXTCONCAT | ||||
| #define _XmStrings _XMSTRINGS | ||||
| #define _XmToHorizontalPixels _XMTOHORIZONTALPIXELS | ||||
| #define _XmToVerticalPixels _XMTOVERTICALPIXELS | ||||
| #define _XmTopShadowColorDefault _XMTOPSHADOWCOLORDEFAULT | ||||
| #define _Xm_fastPtr _XM_FASTPTR | ||||
| #define _XtCheckSubclassFlag _XTCHECKSUBCLASSFLAG | ||||
| #define _XtInherit _XTINHERIT | ||||
| #define _XtInheritTranslations _XTINHERITTRANSLATIONS | ||||
| #define applicationShellWidgetClass APPLICATIONSHELLWIDGETCLASS | ||||
| #define compositeWidgetClass COMPOSITEWIDGETCLASS | ||||
| #define overrideShellWidgetClass OVERRIDESHELLWIDGETCLASS | ||||
| #define shellWidgetClass SHELLWIDGETCLASS | ||||
| #define topLevelShellClassRec TOPLEVELSHELLCLASSREC | ||||
| #define topLevelShellWidgetClass TOPLEVELSHELLWIDGETCLASS | ||||
| #define transientShellWidgetClass TRANSIENTSHELLWIDGETCLASS | ||||
| #define vendorShellClassRec VENDORSHELLCLASSREC | ||||
| #define vendorShellWidgetClass VENDORSHELLWIDGETCLASS | ||||
| #define wmShellWidgetClass WMSHELLWIDGETCLASS | ||||
| #define xmArrowButtonWidgetClass XMARROWBUTTONWIDGETCLASS | ||||
| #define xmCascadeButtonClassRec XMCASCADEBUTTONCLASSREC | ||||
| #define xmCascadeButtonGadgetClass XMCASCADEBUTTONGADGETCLASS | ||||
| #define xmCascadeButtonWidgetClass XMCASCADEBUTTONWIDGETCLASS | ||||
| #define xmDialogShellWidgetClass XMDIALOGSHELLWIDGETCLASS | ||||
| #define xmDrawingAreaWidgetClass XMDRAWINGAREAWIDGETCLASS | ||||
| #define xmDrawnButtonWidgetClass XMDRAWNBUTTONWIDGETCLASS | ||||
| #define xmFileSelectionBoxWidgetClass XMFILESELECTIONBOXWIDGETCLASS | ||||
| #define xmFormWidgetClass XMFORMWIDGETCLASS | ||||
| #define xmFrameWidgetClass XMFRAMEWIDGETCLASS | ||||
| #define xmGadgetClass XMGADGETCLASS | ||||
| #define xmLabelGadgetClass XMLABELGADGETCLASS | ||||
| #define xmLabelWidgetClass XMLABELWIDGETCLASS | ||||
| #define xmListWidgetClass XMLISTWIDGETCLASS | ||||
| #define xmMainWindowWidgetClass XMMAINWINDOWWIDGETCLASS | ||||
| #define xmManagerClassRec XMMANAGERCLASSREC | ||||
| #define xmManagerWidgetClass XMMANAGERWIDGETCLASS | ||||
| #define xmMenuShellWidgetClass XMMENUSHELLWIDGETCLASS | ||||
| #define xmMessageBoxWidgetClass XMMESSAGEBOXWIDGETCLASS | ||||
| #define xmPrimitiveClassRec XMPRIMITIVECLASSREC | ||||
| #define xmPrimitiveWidgetClass XMPRIMITIVEWIDGETCLASS | ||||
| #define xmPushButtonClassRec XMPUSHBUTTONCLASSREC | ||||
| #define xmPushButtonGadgetClass XMPUSHBUTTONGADGETCLASS | ||||
| #define xmPushButtonWidgetClass XMPUSHBUTTONWIDGETCLASS | ||||
| #define xmRowColumnWidgetClass XMROWCOLUMNWIDGETCLASS | ||||
| #define xmSashWidgetClass XMSASHWIDGETCLASS | ||||
| #define xmScrollBarWidgetClass XMSCROLLBARWIDGETCLASS | ||||
| #define xmScrolledWindowClassRec XMSCROLLEDWINDOWCLASSREC | ||||
| #define xmScrolledWindowWidgetClass XMSCROLLEDWINDOWWIDGETCLASS | ||||
| #define xmSeparatorGadgetClass XMSEPARATORGADGETCLASS | ||||
| #define xmSeparatorWidgetClass XMSEPARATORWIDGETCLASS | ||||
| #define xmTextFieldWidgetClass XMTEXTFIELDWIDGETCLASS | ||||
| #define xmTextWidgetClass XMTEXTWIDGETCLASS | ||||
| #define xmToggleButtonGadgetClass XMTOGGLEBUTTONGADGETCLASS | ||||
| #define xmToggleButtonWidgetClass XMTOGGLEBUTTONWIDGETCLASS | ||||
| #define XtRegisterDrawable _XTREGISTERWINDOW | ||||
| #define XtUnregisterDrawable _XTUNREGISTERWINDOW | ||||
| #define XQueryFont XQUERYFONT | ||||
| #define XSetPlaneMask XSETPLANEMASK | ||||
| #define XChangeKeyboardControl XCHANGEKEYBOARDCONTROL | ||||
| #define XDestroySubwindows XDESTROYSUBWINDOWS | ||||
| #define XFreeDeviceList XFREEDEVICELIST | ||||
| #define XFreeDeviceState XFREEDEVICESTATE | ||||
| #define XGetExtensionVersion XGETEXTENSIONVERSION | ||||
| #define XGetRGBColormaps XGETRGBCOLORMAPS | ||||
| #define XIconifyWindow XICONIFYWINDOW | ||||
| #define XInstallColormap XINSTALLCOLORMAP | ||||
| #define XListInputDevices XLISTINPUTDEVICES | ||||
| #define XLookupKeysym XLOOKUPKEYSYM | ||||
| #define XOpenDevice XOPENDEVICE | ||||
| #define XQueryDeviceState XQUERYDEVICESTATE | ||||
| #define XSelectExtensionEvent XSELECTEXTENSIONEVENT | ||||
| #define XWarpPointer XWARPPOINTER | ||||
| #define XmuLookupStandardColormap XMULOOKUPSTANDARDCOLORMAP | ||||
| #define XAllocNamedColor XALLOCNAMEDCOLOR | ||||
| #define XBlackPixelOfScreen XBLACKPIXELOFSCREEN | ||||
| #define XDefaultColormap XDEFAULTCOLORMAP | ||||
| #define XDefaultColormapOfScreen XDEFAULTCOLORMAPOFSCREEN | ||||
| #define XDefaultDepth XDEFAULTDEPTH | ||||
| #define XDefaultScreen XDEFAULTSCREEN | ||||
| #define XDefaultVisual XDEFAULTVISUAL | ||||
| #define XSetIconName XSETICONNAME | ||||
| #define XtInitialize XTINITIALIZE | ||||
| #define XtMainLoop XTMAINLOOP | ||||
| #define DtSaverGetWindows DTSAVERGETWINDOWS | ||||
| #define XAddHosts XADDHOSTS | ||||
| #define XDisableAccessControl XDISABLEACCESSCONTROL | ||||
| #define XEnableAccessControl XENABLEACCESSCONTROL | ||||
| #define XFillArcs XFILLARCS | ||||
| #define XForceScreenSaver XFORCESCREENSAVER | ||||
| #define XGetScreenSaver XGETSCREENSAVER | ||||
| #define XListHosts XLISTHOSTS | ||||
| #define XReadBitmapFile XREADBITMAPFILE | ||||
| #define XRemoveHosts XREMOVEHOSTS | ||||
| #define XResetScreenSaver XRESETSCREENSAVER | ||||
| #define XResourceManagerString XRESOURCEMANAGERSTRING | ||||
| #define XSetScreenSaver XSETSCREENSAVER | ||||
| #define XStringListToTextProperty XSTRINGLISTTOTEXTPROPERTY | ||||
| #define XrmDestroyDatabase XRMDESTROYDATABASE | ||||
| #define XrmGetFileDatabase XRMGETFILEDATABASE | ||||
| #define XrmGetStringDatabase XRMGETSTRINGDATABASE | ||||
| #define XrmInitialize XRMINITIALIZE | ||||
| #define XrmMergeDatabases XRMMERGEDATABASES | ||||
| #define XrmParseCommand XRMPARSECOMMAND | ||||
| #define XrmPutLineResource XRMPUTLINERESOURCE | ||||
| #define XrmQPutStringResource XRMQPUTSTRINGRESOURCE | ||||
| #define XrmStringToBindingQuarkList XRMSTRINGTOBINDINGQUARKLIST | ||||
| #define XrmStringToQuark XRMSTRINGTOQUARK | ||||
| #define XmCreateLabel XMCREATELABEL | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
| extern void XtFree(char*); | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #define pthread_attr_create PTHREAD_ATTR_CREATE | ||||
| #define pthread_attr_delete PTHREAD_ATTR_DELETE | ||||
| #define pthread_attr_destroy PTHREAD_ATTR_DESTROY | ||||
| #define pthread_attr_getdetach_np PTHREAD_ATTR_GETDETACH_NP | ||||
| #define pthread_attr_getguardsize_np PTHREAD_ATTR_GETGUARDSIZE_NP | ||||
| #define pthread_attr_getinheritsched PTHREAD_ATTR_GETINHERITSCHED | ||||
| #define pthread_attr_getprio PTHREAD_ATTR_GETPRIO | ||||
| #define pthread_attr_getsched PTHREAD_ATTR_GETSCHED | ||||
| #define pthread_attr_getschedparam PTHREAD_ATTR_GETSCHEDPARAM | ||||
| #define pthread_attr_getstacksize PTHREAD_ATTR_GETSTACKSIZE | ||||
| #define pthread_attr_init PTHREAD_ATTR_INIT | ||||
| #define pthread_attr_setdetach_np PTHREAD_ATTR_SETDETACH_NP | ||||
| #define pthread_attr_setdetachstate PTHREAD_ATTR_SETDETACHSTATE | ||||
| #define pthread_attr_setguardsize_np PTHREAD_ATTR_SETGUARDSIZE_NP | ||||
| #define pthread_attr_setinheritsched PTHREAD_ATTR_SETINHERITSCHED | ||||
| #define pthread_attr_setprio PTHREAD_ATTR_SETPRIO | ||||
| #define pthread_attr_setsched PTHREAD_ATTR_SETSCHED | ||||
| #define pthread_attr_setschedparam PTHREAD_ATTR_SETSCHEDPARAM | ||||
| #define pthread_attr_setschedpolicy PTHREAD_ATTR_SETSCHEDPOLICY | ||||
| #define pthread_attr_setstacksize PTHREAD_ATTR_SETSTACKSIZE | ||||
| #define pthread_cancel PTHREAD_CANCEL | ||||
| #define pthread_cancel_e PTHREAD_CANCEL_E | ||||
| #define pthread_cond_broadcast PTHREAD_COND_BROADCAST | ||||
| #define pthread_cond_destroy PTHREAD_COND_DESTROY | ||||
| #define pthread_cond_init PTHREAD_COND_INIT | ||||
| #define pthread_cond_sig_preempt_int_np PTHREAD_COND_SIG_PREEMPT_INT_NP | ||||
| #define pthread_cond_signal PTHREAD_COND_SIGNAL | ||||
| #define pthread_cond_signal_int_np PTHREAD_COND_SIGNAL_INT_NP | ||||
| #define pthread_cond_timedwait PTHREAD_COND_TIMEDWAIT | ||||
| #define pthread_cond_wait PTHREAD_COND_WAIT | ||||
| #define pthread_condattr_create PTHREAD_CONDATTR_CREATE | ||||
| #define pthread_condattr_delete PTHREAD_CONDATTR_DELETE | ||||
| #define pthread_condattr_init PTHREAD_CONDATTR_INIT | ||||
| #define pthread_create PTHREAD_CREATE | ||||
| #define pthread_delay_np PTHREAD_DELAY_NP | ||||
| #define pthread_detach PTHREAD_DETACH | ||||
| #define pthread_equal PTHREAD_EQUAL | ||||
| #define pthread_exc_fetch_fp_np PTHREAD_EXC_FETCH_FP_NP | ||||
| #define pthread_exc_handler_np PTHREAD_EXC_HANDLER_NP | ||||
| #define pthread_exc_pop_ctx_np PTHREAD_EXC_POP_CTX_NP | ||||
| #define pthread_exc_push_ctx_np PTHREAD_EXC_PUSH_CTX_NP | ||||
| #define pthread_exc_savecontext_np PTHREAD_EXC_SAVECONTEXT_NP | ||||
| #define pthread_exit PTHREAD_EXIT | ||||
| #define pthread_get_expiration_np PTHREAD_GET_EXPIRATION_NP | ||||
| #define pthread_getprio PTHREAD_GETPRIO | ||||
| #define pthread_getschedparam PTHREAD_GETSCHEDPARAM | ||||
| #define pthread_getscheduler PTHREAD_GETSCHEDULER | ||||
| #define pthread_getspecific PTHREAD_GETSPECIFIC | ||||
| #define pthread_getunique_np PTHREAD_GETUNIQUE_NP | ||||
| #define pthread_join PTHREAD_JOIN | ||||
| #define pthread_join32 PTHREAD_JOIN32 | ||||
| #define pthread_keycreate PTHREAD_KEYCREATE | ||||
| #define pthread_key_create PTHREAD_KEY_CREATE | ||||
| #define pthread_kill PTHREAD_KILL | ||||
| #define pthread_lock_global_np PTHREAD_LOCK_GLOBAL_NP | ||||
| #define pthread_mutex_destroy PTHREAD_MUTEX_DESTROY | ||||
| #define pthread_mutex_init PTHREAD_MUTEX_INIT | ||||
| #define pthread_mutex_lock PTHREAD_MUTEX_LOCK | ||||
| #define pthread_mutex_trylock PTHREAD_MUTEX_TRYLOCK | ||||
| #define pthread_mutex_unlock PTHREAD_MUTEX_UNLOCK | ||||
| #define pthread_mutexattr_create PTHREAD_MUTEXATTR_CREATE | ||||
| #define pthread_mutexattr_delete PTHREAD_MUTEXATTR_DELETE | ||||
| #define pthread_mutexattr_destroy PTHREAD_MUTEXATTR_DESTROY | ||||
| #define pthread_mutexattr_getkind_np PTHREAD_MUTEXATTR_GETKIND_NP | ||||
| #define pthread_mutexattr_init PTHREAD_MUTEXATTR_INIT | ||||
| #define pthread_mutexattr_setkind_np PTHREAD_MUTEXATTR_SETKIND_NP | ||||
| #define pthread_mutexattr_settype_np PTHREAD_MUTEXATTR_SETTYPE_NP | ||||
| #define pthread_once PTHREAD_ONCE | ||||
| #define pthread_resume_np PTHREAD_RESUME_NP | ||||
| #define pthread_self PTHREAD_SELF | ||||
| #define pthread_setasynccancel PTHREAD_SETASYNCCANCEL | ||||
| #define pthread_setcancel PTHREAD_SETCANCEL | ||||
| #define pthread_setcancelstate PTHREAD_SETCANCELSTATE | ||||
| #define pthread_setprio PTHREAD_SETPRIO | ||||
| #define pthread_setschedparam PTHREAD_SETSCHEDPARAM | ||||
| #define pthread_setscheduler PTHREAD_SETSCHEDULER | ||||
| #define pthread_setspecific PTHREAD_SETSPECIFIC | ||||
| #define pthread_suspend_np PTHREAD_SUSPEND_NP | ||||
| #define pthread_testcancel PTHREAD_TESTCANCEL | ||||
| #define pthread_unlock_global_np PTHREAD_UNLOCK_GLOBAL_NP | ||||
| #define pthread_yield PTHREAD_YIELD | ||||
| #define pthread_yield_np PTHREAD_YIELD_NP | ||||
| #define XDefaultRootWindow XDEFAULTROOTWINDOW | ||||
| #define XDisplayCells XDISPLAYCELLS | ||||
| #define XMaxRequestSize XMAXREQUESTSIZE | ||||
| #define XScreenOfDisplay XSCREENOFDISPLAY | ||||
| #define XSetFillRule XSETFILLRULE | ||||
| #define XmActivateProtocol XMACTIVATEPROTOCOL | ||||
| #define XmCreateBulletinBoardDialog XMCREATEBULLETINBOARDDIALOG | ||||
| #define XmCreateErrorDialog XMCREATEERRORDIALOG | ||||
| #define XmCreateWarningDialog XMCREATEWARNINGDIALOG | ||||
| #define XmCvtCTToXmString XMCVTCTTOXMSTRING | ||||
| #define XmDestroyPixmap XMDESTROYPIXMAP | ||||
| #define XmGetPixmap XMGETPIXMAP | ||||
| #define XmInstallImage XMINSTALLIMAGE | ||||
| #define XmListAddItems XMLISTADDITEMS | ||||
| #define XmListDeleteItem XMLISTDELETEITEM | ||||
| #define XmListItemExists XMLISTITEMEXISTS | ||||
| #define XmListItemPos XMLISTITEMPOS | ||||
| #define XmListReplaceItems XMLISTREPLACEITEMS | ||||
| #define XmListReplaceItemsPos XMLISTREPLACEITEMSPOS | ||||
| #define XmRemoveProtocols XMREMOVEPROTOCOLS | ||||
| #define XmRemoveTabGroup XMREMOVETABGROUP | ||||
| #define XmSetColorCalculation XMSETCOLORCALCULATION | ||||
| #define XmTextCopy XMTEXTCOPY | ||||
| #define XmTextCut XMTEXTCUT | ||||
| #define XmTextFieldClearSelection XMTEXTFIELDCLEARSELECTION | ||||
| #define XmTextFieldCopy XMTEXTFIELDCOPY | ||||
| #define XmTextFieldCut XMTEXTFIELDCUT | ||||
| #define XmTextFieldGetMaxLength XMTEXTFIELDGETMAXLENGTH | ||||
| #define XmTextFieldGetSelectionPosition XMTEXTFIELDGETSELECTIONPOSITION | ||||
| #define XmTextFieldPaste XMTEXTFIELDPASTE | ||||
| #define XmTextFieldReplace XMTEXTFIELDREPLACE | ||||
| #define XmTextFieldSetAddMode XMTEXTFIELDSETADDMODE | ||||
| #define XmTextFieldSetHighlight XMTEXTFIELDSETHIGHLIGHT | ||||
| #define XmTextFieldSetInsertionPosition XMTEXTFIELDSETINSERTIONPOSITION | ||||
| #define XmTextFieldSetMaxLength XMTEXTFIELDSETMAXLENGTH | ||||
| #define XmTextFieldShowPosition XMTEXTFIELDSHOWPOSITION | ||||
| #define XmTextGetEditable XMTEXTGETEDITABLE | ||||
| #define XmTextPaste XMTEXTPASTE | ||||
| #define XmTextPosToXY XMTEXTPOSTOXY | ||||
| #define XmTextSetEditable XMTEXTSETEDITABLE | ||||
| #define XmTextShowPosition XMTEXTSHOWPOSITION | ||||
| #define XmUninstallImage XMUNINSTALLIMAGE | ||||
| #define XmuCvtStringToBitmap XMUCVTSTRINGTOBITMAP | ||||
| #define XrmPutFileDatabase XRMPUTFILEDATABASE | ||||
| #define XtAddConverter XTADDCONVERTER | ||||
| #define XtError XTERROR | ||||
| #define XtVaCreatePopupShell XTVACREATEPOPUPSHELL | ||||
| #define pthread_attr_getschedpolicy PTHREAD_ATTR_GETSCHEDPOLICY | ||||
| #define pthread_key_delete PTHREAD_KEY_DELETE | ||||
| #define xmBulletinBoardWidgetClass XMBULLETINBOARDWIDGETCLASS | ||||
| #define xmScaleWidgetClass XMSCALEWIDGETCLASS | ||||
| #define XtDisplay XTDISPLAY | ||||
| #define XtScreen XTSCREEN | ||||
| #define XAllocIconSize XALLOCICONSIZE | ||||
| #define XAllocStandardColormap XALLOCSTANDARDCOLORMAP | ||||
| #define XAllowEvents XALLOWEVENTS | ||||
| #define XBlackPixel XBLACKPIXEL | ||||
| #define XCopyColormapAndFree XCOPYCOLORMAPANDFREE | ||||
| #define XDefaultGC XDEFAULTGC | ||||
| #define XDisplayHeight XDISPLAYHEIGHT | ||||
| #define XDisplayWidth XDISPLAYWIDTH | ||||
| #define XGetCommand XGETCOMMAND | ||||
| #define XGetIconSizes XGETICONSIZES | ||||
| #define XKillClient XKILLCLIENT | ||||
| #define XListInstalledColormaps XLISTINSTALLEDCOLORMAPS | ||||
| #define XRootWindow XROOTWINDOW | ||||
| #define XWMGeometry XWMGEOMETRY | ||||
| #define XWhitePixel XWHITEPIXEL | ||||
| #define XrmCombineDatabase XRMCOMBINEDATABASE | ||||
| #define XrmCombineFileDatabase XRMCOMBINEFILEDATABASE | ||||
| #define XSetStandardProperties XSETSTANDARDPROPERTIES | ||||
| #define XSetState XSETSTATE | ||||
| #define XDrawRectangles XDRAWRECTANGLES | ||||
| #define XGrabButton XGRABBUTTON | ||||
| #define XLookupColor XLOOKUPCOLOR | ||||
| #define XMapSubwindows XMAPSUBWINDOWS | ||||
| #define XRecolorCursor XRECOLORCURSOR | ||||
| #define XStoreBytes XSTOREBYTES | ||||
| #define XUngrabButton XUNGRABBUTTON | ||||
| #define XUninstallColormap XUNINSTALLCOLORMAP | ||||
| #define lib$wait LIB$WAIT | ||||
| #define lib$find_file LIB$FIND_FILE | ||||
| #define lib$find_file_end LIB$FIND_FILE_END | ||||
| #define lib$set_symbol LIB$SET_SYMBOL | ||||
| #define lib$sfree1_dd LIB$SFREE1_DD | ||||
| #define lib$spawn LIB$SPAWN | ||||
| #define sys$assign SYS$ASSIGN | ||||
| #define sys$crembx SYS$CREMBX | ||||
| #define sys$dassgn SYS$DASSGN | ||||
| #define sys$dclexh SYS$DCLEXH | ||||
| #define sys$getdviw SYS$GETDVIW | ||||
| #define sys$getsyiw SYS$GETSYIW | ||||
| #define sys$qio SYS$QIO | ||||
| #define sys$qiow SYS$QIOW | ||||
| #define sys$setef SYS$SETEF | ||||
| #define sys$synch SYS$SYNCH | ||||
| #define XDrawText XDRAWTEXT | ||||
| #define XtCloseDisplay XTCLOSEDISPLAY | ||||
| #define XtDestroyApplicationContext XTDESTROYAPPLICATIONCONTEXT | ||||
| #define lib$ediv LIB$EDIV | ||||
| #define lib$subx LIB$SUBX | ||||
| #define sys$bintim SYS$BINTIM | ||||
| #define sys$gettim SYS$GETTIM | ||||
| #define XFetchName XFETCHNAME | ||||
| #define XPeekIfEvent XPEEKIFEVENT | ||||
| #define XQueryKeymap XQUERYKEYMAP | ||||
| #endif | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: xmesa.h,v 1.8 2000/05/02 02:30:01 brianp Exp $ */ | ||||
| /* $Id: xmesa.h,v 1.8.4.1 2000/11/02 18:08:28 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -89,7 +89,7 @@ extern struct Library *XLibBase; | ||||
|  | ||||
|  | ||||
| #define XMESA_MAJOR_VERSION 3 | ||||
| #define XMESA_MINOR_VERSION 3 | ||||
| #define XMESA_MINOR_VERSION 4 | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,36 +1,13 @@ | ||||
| /* $Id: bounce.c,v 1.2 2000/06/27 17:04:43 brianp Exp $ */ | ||||
| /* $Id: bounce.c,v 1.2.4.1 2000/08/16 20:36:32 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Bouncing ball demo.  Color index mode only! | ||||
|  * Bouncing ball demo. | ||||
|  * | ||||
|  * This program is in the public domain | ||||
|  * | ||||
|  * Brian Paul | ||||
|  */ | ||||
|  | ||||
| /* Conversion to GLUT by Mark J. Kilgard */ | ||||
|  | ||||
| /* | ||||
|  * $Log: bounce.c,v $ | ||||
|  * Revision 1.2  2000/06/27 17:04:43  brianp | ||||
|  * fixed compiler warnings | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:40  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 3.3  1999/03/18 08:16:14  joukj | ||||
|  * | ||||
|  *     cmpstr needs string.h to included to avoid warnings | ||||
|  * | ||||
|  * Revision 3.2  1998/11/28 01:13:02  brianp | ||||
|  * now sets an initial window position and size | ||||
|  * | ||||
|  * Revision 3.1  1998/11/28 01:06:57  brianp | ||||
|  * now works in RGB mode by default | ||||
|  * | ||||
|  * Revision 3.0  1998/02/14 18:42:29  brianp | ||||
|  * initial rev | ||||
|  * | ||||
|  * Conversion to GLUT by Mark J. Kilgard | ||||
|  */ | ||||
|  | ||||
|  | ||||
| @@ -84,9 +61,9 @@ make_ball(void) | ||||
|         glColor3f(1, 1, 1); | ||||
|       } | ||||
|  | ||||
|       x = COS(b) * COS(a); | ||||
|       y = SIN(b) * COS(a); | ||||
|       z = SIN(a); | ||||
|       x = radius * COS(b) * COS(a); | ||||
|       y = radius * SIN(b) * COS(a); | ||||
|       z = radius * SIN(a); | ||||
|       glVertex3f(x, y, z); | ||||
|  | ||||
|       x = radius * COS(b) * COS(a + da); | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| # Makefile for GLUT-based demo programs for VMS | ||||
| # Makefile for core library for VMS | ||||
| # contributed by Jouk Jansen  joukj@crys.chem.uva.nl | ||||
|  | ||||
| # Last revision : 3 May 1999 | ||||
|  | ||||
| .first | ||||
| 	define gl [-.include.gl] | ||||
| @@ -9,55 +9,172 @@ | ||||
|  | ||||
| ##### MACROS ##### | ||||
|  | ||||
| VPATH = RCS | ||||
|  | ||||
| INCDIR = [-.include] | ||||
| CFLAGS = /include=$(INCDIR)/prefix=all | ||||
| LIBDIR = [-.lib] | ||||
| CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)/name=(as_is,short) | ||||
|  | ||||
| .ifdef SHARE | ||||
| GL_LIBS = $(XLIBS) | ||||
| .else | ||||
| GL_LIBS = [-.lib]libGLUT/l,libMesaGLU/l,libMesaGL/l,$(XLIBS) | ||||
| .endif | ||||
| CORE_SOURCES = aatriangle.c accum.c alpha.c alphabuf.c attrib.c \ | ||||
| bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \ | ||||
| dispatch.c \ | ||||
| dlist.c drawpix.c enable.c eval.c feedback.c fog.c \ | ||||
| get.c hash.c hint.c image.c imaging.c light.c lines.c logic.c masking.c matrix.c \ | ||||
| mem.c glapi.c glapinoop.c \ | ||||
| mmath.c pb.c pixel.c points.c polygon.c \ | ||||
| quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \ | ||||
| stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \ | ||||
| varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \ | ||||
| zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \ | ||||
| pipeline.c stages.c state.c vertices.c [.x86]x86.c | ||||
|  | ||||
| LIB_DEP = [-.lib]$(GL_LIB) [-.lib]$(GLU_LIB) [-.lib]$(GLUT_LIB) | ||||
| DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]xfonts.c \ | ||||
| [.x]xmesa1.c [.x]xmesa2.c [.x]xmesa3.c [.x]xmesa4.c \ | ||||
| [.osmesa]osmesa.c \ | ||||
| [.svga]svgamesa.c \ | ||||
| [.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c [.fx]fxvsetup.c [.fx]fxsetup.c \ | ||||
| [.fx]fxtrifuncs.c [.fx]fxclip.c [.fx]fxfastpath.c [.fx]fxpipeline.c\ | ||||
| [.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c [.fx]fxsanity.c\ | ||||
| [.fx]fxglidew.c | ||||
|  | ||||
| PROGS = bounce.exe;,clearspd.exe;,drawpix.exe;,gamma.exe;,gears.exe;,\ | ||||
| 	glinfo.exe;,glutfx.exe;,isosurf.exe;,morph3d.exe;,osdemo.exe;,\ | ||||
| 	paltex.exe;,pointblast.exe;,reflect.exe;,spectex.exe;,stex3d.exe;,\ | ||||
| 	tessdemo.exe;,texcyl.exe;,texobj.exe;,trispd.exe;,winpos.exe; | ||||
| ASM_SOURCES = | ||||
|  | ||||
| OBJECTS =aatriangle.obj,\ | ||||
| accum.obj,alpha.obj,alphabuf.obj,attrib.obj,\ | ||||
| bitmap.obj,blend.obj,buffers.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\ | ||||
| dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj | ||||
|  | ||||
|  | ||||
| OBJECTS3=get.obj,hash.obj,hint.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,\ | ||||
| matrix.obj,glapi.obj,glapinoop.obj,dispatch.obj,imaging.obj,mem.obj,\ | ||||
| mmath.obj,pb.obj,pixel.obj,points.obj | ||||
|  | ||||
| OBJECTS7=polygon.obj,\ | ||||
| quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj,\ | ||||
| pixeltex.obj | ||||
|  | ||||
| OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\ | ||||
| triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj | ||||
|  | ||||
| OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\ | ||||
| 	config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,state.obj,\ | ||||
| 	vertices.obj,[.x86]x86.obj | ||||
|  | ||||
| OBJECTS2=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]xfonts.obj,\ | ||||
| [.x]xmesa1.obj,[.x]xmesa2.obj,[.x]xmesa3.obj,[.x]xmesa4.obj,\ | ||||
| [.osmesa]osmesa.obj,\ | ||||
| [.svga]svgamesa.obj | ||||
|  | ||||
| OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\ | ||||
| [.fx]fxsetup.obj,[.fx]fxclip.obj,[.fx]fxfastpath.obj,[.fx]fxpipeline.obj | ||||
|  | ||||
| OBJECTS8=[.fx]fxtrifuncs.obj,[.fx]fxsanity.obj,[.fx]fxglidew.obj,\ | ||||
| [.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj | ||||
|  | ||||
| ##### RULES ##### | ||||
| .obj.exe : | ||||
| 	link $(MMS$TARGET_NAME),$(GL_LIBS) | ||||
|  | ||||
| VERSION=Mesa V3.1 | ||||
|  | ||||
| ##### TARGETS ##### | ||||
| default : | ||||
| 	$(MMS)$(MMSQUALIFIERS) $(PROGS) | ||||
| # Make the library | ||||
| $(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\ | ||||
| 	$(OBJECTS5) $(OBJECTS8) $(OBJECTS7) $(OBJECTS6) | ||||
| .ifdef SHARE | ||||
|   @ WRITE_ SYS$OUTPUT "  generating mesagl1.opt" | ||||
|   @ OPEN_/WRITE FILE  mesagl1.opt | ||||
|   @ WRITE_ FILE "!" | ||||
|   @ WRITE_ FILE "! mesagl1.opt generated by DESCRIP.$(MMS_EXT)"  | ||||
|   @ WRITE_ FILE "!" | ||||
|   @ WRITE_ FILE "IDENTIFICATION=""$(VERSION)""" | ||||
|   @ WRITE_ FILE "GSMATCH=LEQUAL,3,1 | ||||
|   @ WRITE_ FILE "$(OBJECTS)" | ||||
|   @ WRITE_ FILE "$(OBJECTS3)" | ||||
|   @ WRITE_ FILE "$(OBJECTS4)" | ||||
|   @ WRITE_ FILE "$(OBJECTS7)" | ||||
|   @ WRITE_ FILE "$(OBJECTS6)" | ||||
|   @ WRITE_ FILE "$(OBJECTS2)" | ||||
|   @ WRITE_ FILE "$(OBJECTS5)" | ||||
|   @ WRITE_ FILE "$(OBJECTS8)" | ||||
|   @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE" | ||||
|   @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/SHARE" | ||||
|   @ CLOSE_ FILE | ||||
|   @ WRITE_ SYS$OUTPUT "  generating mesagl.map ..." | ||||
|   @ LINK_/NODEB/NOSHARE/NOEXE/MAP=mesagl.map/FULL mesagl1.opt/OPT | ||||
|   @ WRITE_ SYS$OUTPUT "  analyzing mesagl.map ..." | ||||
|   @ @[-.vms]ANALYZE_MAP.COM mesagl.map mesagl.opt | ||||
|   @ WRITE_ SYS$OUTPUT "  linking $(GL_LIB) ..." | ||||
|   @ LINK_/NODEB/SHARE=$(GL_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt | ||||
| .else | ||||
|   @ $(MAKELIB) $(GL_LIB) $(OBJECTS) | ||||
|   @ library $(GL_LIB) $(OBJECTS2) | ||||
|   @ library $(GL_LIB) $(OBJECTS3) | ||||
|   @ library $(GL_LIB) $(OBJECTS4) | ||||
|   @ library $(GL_LIB) $(OBJECTS5) | ||||
|   @ library $(GL_LIB) $(OBJECTS8) | ||||
|   @ library $(GL_LIB) $(OBJECTS7) | ||||
|   @ library $(GL_LIB) $(OBJECTS6) | ||||
| .endif | ||||
|   @ rename $(GL_LIB)* $(LIBDIR) | ||||
|  | ||||
| clean : | ||||
| 	purge | ||||
| 	delete *.obj;* | ||||
|  | ||||
| realclean : | ||||
| 	delete $(PROGS) | ||||
| 	delete *.obj;* | ||||
| aatriangle.obj : aatriangle.c | ||||
|  | ||||
| bounce.exe; : bounce.obj $(LIB_DEP) | ||||
| clearspd.exe; : clearspd.obj $(LIB_DEP) | ||||
| drawpix.exe; : drawpix.obj $(LIB_DEP) | ||||
| gamma.exe; : gamma.obj $(LIB_DEP) | ||||
| gears.exe; : gears.obj $(LIB_DEP) | ||||
| glinfo.exe; : glinfo.obj $(LIB_DEP) | ||||
| glutfx.exe; : glutfx.obj $(LIB_DEP) | ||||
| isosurf.exe; : isosurf.obj $(LIB_DEP) | ||||
| morph3d.exe; : morph3d.obj $(LIB_DEP) | ||||
| osdemo.exe; : osdemo.obj $(LIB_DEP) | ||||
| paltex.exe; : paltex.obj $(LIB_DEP) | ||||
| pointblast.exe; : pointblast.obj $(LIB_DEP) | ||||
| reflect.exe; : reflect.obj $(LIB_DEP) | ||||
| spectex.exe; : spectex.obj $(LIB_DEP) | ||||
| stex3d.exe; : stex3d.obj $(LIB_DEP) | ||||
| tessdemo.exe; : tessdemo.obj $(LIB_DEP) | ||||
| texcyl.exe; : texcyl.obj $(LIB_DEP) | ||||
| texobj.exe; : texobj.obj $(LIB_DEP) | ||||
| trispd.exe; : trispd.obj $(LIB_DEP) | ||||
| winpos.exe; : winpos.obj $(LIB_DEP) | ||||
| triangle.obj : triangle.c | ||||
|  | ||||
| pixeltex.obj : pixeltex.c | ||||
|  | ||||
| [.x86]x86.obj : [.x86]x86.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x86]x86.obj [.x86]x86.c | ||||
| [.x]glxapi.obj : [.x]glxapi.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]glxapi.obj [.x]glxapi.c | ||||
| [.x]fakeglx.obj : [.x]fakeglx.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]fakeglx.obj [.x]fakeglx.c | ||||
| [.x]xfonts.obj : [.x]xfonts.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xfonts.obj [.x]xfonts.c | ||||
| [.x]xmesa1.obj : [.x]xmesa1.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa1.obj [.x]xmesa1.c | ||||
| [.x]xmesa2.obj : [.x]xmesa2.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa2.obj [.x]xmesa2.c | ||||
| [.x]xmesa3.obj : [.x]xmesa3.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa3.obj [.x]xmesa3.c | ||||
| [.x]xmesa4.obj : [.x]xmesa4.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa4.obj [.x]xmesa4.c | ||||
| [.osmesa]osmesa.obj : [.osmesa]osmesa.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.osmesa]osmesa.obj [.osmesa]osmesa.c | ||||
| [.svga]svgamesa.obj : [.svga]svgamesa.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.svga]svgamesa.obj [.svga]svgamesa.c | ||||
| [.fx]fxapi.obj : [.fx]fxapi.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxapi.obj [.fx]fxapi.c | ||||
| [.fx]fxclip.obj : [.fx]fxclip.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxclip.obj [.fx]fxclip.c | ||||
| [.fx]fxcva.obj : [.fx]fxcva.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.c | ||||
| [.fx]fxdd.obj : [.fx]fxdd.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxdd.obj [.fx]fxdd.c | ||||
| [.fx]fxddtex.obj : [.fx]fxddtex.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxddtex.obj [.fx]fxddtex.c | ||||
| [.fx]fxfastpath.obj : [.fx]fxfastpath.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxfastpath.obj [.fx]fxfastpath.c | ||||
| [.fx]fxpipeline.obj : [.fx]fxpipeline.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxpipeline.obj [.fx]fxpipeline.c | ||||
| [.fx]fxsanity.obj : [.fx]fxsanity.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxsanity.obj [.fx]fxsanity.c | ||||
| [.fx]fxvsetup.obj : [.fx]fxvsetup.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c | ||||
| [.fx]fxsetup.obj : [.fx]fxsetup.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c | ||||
| [.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c | ||||
| [.fx]fxrender.obj : [.fx]fxrender.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c | ||||
| [.fx]fxtexman.obj : [.fx]fxtexman.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c | ||||
| [.fx]fxddspan.obj : [.fx]fxddspan.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c | ||||
| [.fx]fxglidew.obj : [.fx]fxglidew.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxglidew.obj [.fx]fxglidew.c | ||||
|  | ||||
| .include mms_depend. | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: gloss.c,v 1.4 2000/06/27 17:04:43 brianp Exp $ */ | ||||
| /* $Id: gloss.c,v 1.4.4.1 2000/08/29 21:17:25 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Specular reflection demo.  The specular highlight is modulated by | ||||
| @@ -46,7 +46,7 @@ static GLfloat DXrot = 1.0, DYrot = 2.5; | ||||
| static GLfloat Black[4] = { 0, 0, 0, 0 }; | ||||
| static GLfloat White[4] = { 1, 1, 1, 1 }; | ||||
| static GLfloat Diffuse[4] = { .3, .3, 1.0, 1.0 };  /* blue */ | ||||
| static GLfloat Shininess = 15; | ||||
| static GLfloat Shininess = 6; | ||||
|  | ||||
| static GLuint BaseTexture, SpecularTexture; | ||||
| static GLboolean DoSpecTexture = GL_TRUE; | ||||
|   | ||||
| @@ -561,24 +561,28 @@ static void drawSample( int x, int y, int w, int h, | ||||
|    if ( drawSmooth ) { | ||||
|       glShadeModel( GL_SMOOTH ); | ||||
|    } | ||||
|    else { | ||||
|       glShadeModel( GL_FLAT ); | ||||
|       glColor4f(1, 1, 1, 1); | ||||
|    } | ||||
|    if ( drawTextured ) { | ||||
|       glEnable( GL_TEXTURE_2D ); | ||||
|    } | ||||
|  | ||||
|    glBegin( GL_QUADS ); | ||||
|       glColor4f( 1.0, 0.0, 0.0, 1.0 ); | ||||
|       if ( drawSmooth )  glColor4f( 1.0, 0.0, 1.0, 1.0 ); | ||||
|       glTexCoord2f( 0.0, 0.0 ); | ||||
|       glVertex2f( -0.8, -0.8 ); | ||||
|  | ||||
|       glColor4f( 0.0, 1.0, 0.0, 1.0 ); | ||||
|       if ( drawSmooth )  glColor4f( 1.0, 0.0, 1.0, 1.0 ); | ||||
|       glTexCoord2f( 1.0, 0.0 ); | ||||
|       glVertex2f( 0.8, -0.8 ); | ||||
|  | ||||
|       glColor4f( 0.0, 0.0, 1.0, 1.0 ); | ||||
|       if ( drawSmooth )  glColor4f( 0.0, 1.0, 0.0, 1.0 ); | ||||
|       glTexCoord2f( 1.0, 1.0 ); | ||||
|       glVertex2f( 0.8, 0.8 ); | ||||
|  | ||||
|       glColor4f( 1.0, 1.0, 1.0, 1.0 ); | ||||
|       if ( drawSmooth )  glColor4f( 0.0, 1.0, 0.0, 1.0 ); | ||||
|       glTexCoord2f( 0.0, 1.0 ); | ||||
|       glVertex2f( -0.8, 0.8 ); | ||||
|    glEnd(); | ||||
| @@ -587,7 +591,18 @@ static void drawSample( int x, int y, int w, int h, | ||||
|    glShadeModel( GL_FLAT ); | ||||
|    glDisable( GL_TEXTURE_2D ); | ||||
|  | ||||
|    if ( displayLevelInfo ) { | ||||
|    if ( envMode->mode == GL_DECAL && | ||||
|         (format->baseFormat == GL_ALPHA || | ||||
|          format->baseFormat == GL_LUMINANCE || | ||||
|          format->baseFormat == GL_LUMINANCE_ALPHA || | ||||
|          format->baseFormat == GL_INTENSITY)) { | ||||
|       /* undefined format/mode combination */ | ||||
|       begin2D( w, h ); | ||||
|       drawStringOutline( "UNDEFINED MODE", 15, h / 2, | ||||
|                          labelLevelColor0, labelLevelColor1 ); | ||||
|       end2D(); | ||||
|    } | ||||
|    else if ( displayLevelInfo ) { | ||||
|       GLint width, height, border, components; | ||||
|       GLint redSize, greenSize, blueSize, alphaSize; | ||||
|       GLint luminanceSize, intensitySize; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: trispd.c,v 1.1 1999/08/19 00:55:40 jtg Exp $ */ | ||||
| /* $Id: trispd.c,v 1.1.1.1.6.1 2000/10/26 15:26:27 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Simple GLUT program to measure triangle strip rendering speed. | ||||
| @@ -7,8 +7,11 @@ | ||||
|  | ||||
| /* | ||||
|  * $Log: trispd.c,v $ | ||||
|  * Revision 1.1  1999/08/19 00:55:40  jtg | ||||
|  * Initial revision | ||||
|  * Revision 1.1.1.1.6.1  2000/10/26 15:26:27  brianp | ||||
|  * added a glFinish() call | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:40  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 3.4  1999/03/28 18:24:37  brianp | ||||
|  * minor clean-up | ||||
| @@ -107,6 +110,7 @@ static void Display( void ) | ||||
| 	 } | ||||
|       } | ||||
|    } | ||||
|    glFinish(); | ||||
|    t1 = glutGet(GLUT_ELAPSED_TIME) * 0.001; | ||||
|     | ||||
|    if (t1-t0 < MinPeriod) { | ||||
|   | ||||
| @@ -27,7 +27,8 @@ static int fullscreen = 1; | ||||
| static int WIDTH = 640; | ||||
| static int HEIGHT = 480; | ||||
|  | ||||
| #define FRAME 50 | ||||
| static GLint T0 = 0; | ||||
| static GLint Frames = 0; | ||||
|  | ||||
| #define NUMBLOC 5 | ||||
|  | ||||
| @@ -56,7 +57,7 @@ static float v = 0.5; | ||||
| static float alpha = 90.0; | ||||
| static float beta = 90.0; | ||||
|  | ||||
| static int fog = 0; | ||||
| static int fog = 1; | ||||
| static int bfcull = 1; | ||||
| static int usetex = 1; | ||||
| static int cstrip = 0; | ||||
| @@ -154,21 +155,6 @@ drawobjs(int *l, float *f) | ||||
|       } | ||||
| } | ||||
|  | ||||
| static float | ||||
| gettime(void) | ||||
| { | ||||
|    static clock_t told = 0; | ||||
|    clock_t tnew, ris; | ||||
|  | ||||
|    tnew = clock(); | ||||
|  | ||||
|    ris = tnew - told; | ||||
|  | ||||
|    told = tnew; | ||||
|  | ||||
|    return (ris / (float) CLOCKS_PER_SEC); | ||||
| } | ||||
|  | ||||
| static void | ||||
| calcposobs(void) | ||||
| { | ||||
| @@ -221,7 +207,6 @@ key(unsigned char k, int x, int y) | ||||
|       XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW); | ||||
|       break; | ||||
| #endif | ||||
|  | ||||
|    case 'j': | ||||
|       joyactive = (!joyactive); | ||||
|       break; | ||||
| @@ -257,6 +242,7 @@ key(unsigned char k, int x, int y) | ||||
|       fprintf(stderr, "Done.\n"); | ||||
|       break; | ||||
|    } | ||||
|    glutPostRedisplay(); | ||||
| } | ||||
|  | ||||
| static void | ||||
| @@ -366,10 +352,9 @@ dojoy(void) | ||||
| static void | ||||
| draw(void) | ||||
| { | ||||
|    static int count = 0; | ||||
|    static char frbuf[80]; | ||||
|    static char frbuf[80] = ""; | ||||
|    int i; | ||||
|    float fr, base, offset; | ||||
|    float base, offset; | ||||
|  | ||||
|    dojoy(); | ||||
|  | ||||
| @@ -416,11 +401,6 @@ draw(void) | ||||
|    glPopMatrix(); | ||||
|    glPopMatrix(); | ||||
|  | ||||
|    if ((count % FRAME) == 0) { | ||||
|       fr = gettime(); | ||||
|       sprintf(frbuf, "Frame rate: %f", FRAME / fr); | ||||
|    } | ||||
|  | ||||
|    glDisable(GL_TEXTURE_2D); | ||||
|    glDisable(GL_FOG); | ||||
|    glShadeModel(GL_FLAT); | ||||
| @@ -449,9 +429,27 @@ draw(void) | ||||
|  | ||||
|    glutSwapBuffers(); | ||||
|  | ||||
|    count++; | ||||
|    Frames++; | ||||
|    { | ||||
|       GLint t = glutGet(GLUT_ELAPSED_TIME); | ||||
|       if (t - T0 >= 2000) { | ||||
|          GLfloat seconds = (t - T0) / 1000.0; | ||||
|          GLfloat fps = Frames / seconds; | ||||
|          sprintf(frbuf, "Frame rate: %f", fps); | ||||
|          T0 = t; | ||||
|          Frames = 0; | ||||
|       } | ||||
|    } | ||||
| } | ||||
|  | ||||
| static void | ||||
| idle(void) | ||||
| { | ||||
|    glutPostRedisplay(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| int | ||||
| main(int ac, char **av) | ||||
| { | ||||
| @@ -500,7 +498,7 @@ main(int ac, char **av) | ||||
|    glutDisplayFunc(draw); | ||||
|    glutKeyboardFunc(key); | ||||
|    glutSpecialFunc(special); | ||||
|    glutIdleFunc(draw); | ||||
|    glutIdleFunc(idle); | ||||
|  | ||||
|    glEnable(GL_BLEND); | ||||
|    /*glBlendFunc(GL_SRC_ALPHA_SATURATE,GL_ONE); */ | ||||
|   | ||||
| @@ -88,7 +88,7 @@ void drawSquares(GLenum mode) | ||||
| void processHits (GLint hits, GLuint buffer[]) | ||||
| { | ||||
|    unsigned int i, j; | ||||
|    GLuint ii, jj, names, *ptr; | ||||
|    GLuint ii = 0, jj = 0, names, *ptr; | ||||
|  | ||||
|    printf ("hits = %d\n", hits); | ||||
|    ptr = (GLuint *) buffer; | ||||
|   | ||||
| @@ -65,7 +65,7 @@ void makeCheckImage(void) | ||||
|      | ||||
|    for (i = 0; i < checkImageHeight; i++) { | ||||
|       for (j = 0; j < checkImageWidth; j++) { | ||||
|          c = ((((i&0x8)==0)^((j&0x8))==0))*255; | ||||
|          c = (((i&0x8)==0)^((j&0x8)==0))*255; | ||||
|          checkImage[i][j][0] = (GLubyte) c; | ||||
|          checkImage[i][j][1] = (GLubyte) c; | ||||
|          checkImage[i][j][2] = (GLubyte) c; | ||||
|   | ||||
| @@ -41,55 +41,55 @@ GLint cubeList = 1; | ||||
| float scp[18][3] = { | ||||
|     { | ||||
| 	1.000000, 0.000000, 0.000000 | ||||
|     },	 | ||||
|     }, | ||||
|     { | ||||
| 	1.000000, 0.000000, 5.000000 | ||||
|     }, | ||||
|     { | ||||
| 	0.707107, 0.707107, 0.000000 | ||||
|     },	 | ||||
|     }, | ||||
|     { | ||||
| 	0.707107, 0.707107, 5.000000 | ||||
|     }, | ||||
|     { | ||||
| 	0.000000, 1.000000, 0.000000 | ||||
|     },	 | ||||
|     }, | ||||
|     { | ||||
| 	0.000000, 1.000000, 5.000000 | ||||
|     }, | ||||
|     { | ||||
| 	-0.707107, 0.707107, 0.000000 | ||||
|     },	 | ||||
|     }, | ||||
|     { | ||||
| 	-0.707107, 0.707107, 5.000000 | ||||
|     }, | ||||
|     { | ||||
| 	-1.000000, 0.000000, 0.000000 | ||||
|     },	 | ||||
|     }, | ||||
|     { | ||||
| 	-1.000000, 0.000000, 5.000000 | ||||
|     }, | ||||
|     { | ||||
| 	-0.707107, -0.707107, 0.000000 | ||||
|     },	 | ||||
|     }, | ||||
|     { | ||||
| 	-0.707107, -0.707107, 5.000000 | ||||
|     }, | ||||
|     { | ||||
| 	0.000000, -1.000000, 0.000000 | ||||
|     },	 | ||||
|     }, | ||||
|     { | ||||
| 	0.000000, -1.000000, 5.000000 | ||||
|     }, | ||||
|     { | ||||
| 	0.707107, -0.707107, 0.000000 | ||||
|     },	 | ||||
|     }, | ||||
|     { | ||||
| 	0.707107, -0.707107, 5.000000 | ||||
|     }, | ||||
|     { | ||||
| 	1.000000, 0.000000, 0.000000 | ||||
|     },	 | ||||
|     }, | ||||
|     { | ||||
| 	1.000000, 0.000000, 5.000000 | ||||
|     }, | ||||
| @@ -136,7 +136,7 @@ static void Init(void) | ||||
|     static float back_mat_diffuse[] = {1.0, 0.0, 0.0, 1.0}; | ||||
|     static float lmodel_ambient[] = {0.0, 0.0, 0.0, 1.0}; | ||||
|     static float fog_color[] = {0.8, 0.8, 0.8, 1.0}; | ||||
|      | ||||
|  | ||||
|     glFrontFace(GL_CW); | ||||
|  | ||||
|     glEnable(GL_DEPTH_TEST); | ||||
| @@ -148,7 +148,7 @@ static void Init(void) | ||||
|     glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); | ||||
|     glEnable(GL_LIGHTING); | ||||
|     glEnable(GL_LIGHT0); | ||||
|      | ||||
|  | ||||
|     glMaterialfv(GL_FRONT, GL_SHININESS, front_mat_shininess); | ||||
|     glMaterialfv(GL_FRONT, GL_SPECULAR, front_mat_specular); | ||||
|     glMaterialfv(GL_FRONT, GL_DIFFUSE, front_mat_diffuse); | ||||
| @@ -258,7 +258,7 @@ static GLenum Args(int argc, char **argv) | ||||
|     GLint i; | ||||
|  | ||||
|     rgb = GL_TRUE; | ||||
|     doubleBuffer = GL_FALSE; | ||||
|     doubleBuffer = GL_TRUE; | ||||
|  | ||||
|     for (i = 1; i < argc; i++) { | ||||
| 	if (strcmp(argv[i], "-ci") == 0) { | ||||
|   | ||||
| @@ -123,7 +123,7 @@ static void Draw(void) | ||||
|     } else { | ||||
| 	glDisable(GL_LINE_STIPPLE); | ||||
|     } | ||||
|      | ||||
|  | ||||
|     if (mode2) { | ||||
| 	ci = CI_OFFSET; | ||||
| 	glEnable(GL_LINE_SMOOTH); | ||||
| @@ -170,7 +170,7 @@ static GLenum Args(int argc, char **argv) | ||||
|     GLint i; | ||||
|  | ||||
|     rgb = GL_TRUE; | ||||
|     doubleBuffer = GL_FALSE; | ||||
|     doubleBuffer = GL_TRUE; | ||||
|  | ||||
|     for (i = 1; i < argc; i++) { | ||||
| 	if (strcmp(argv[i], "-ci") == 0) { | ||||
|   | ||||
| @@ -26,7 +26,7 @@ | ||||
|  * Nov 20, 1995 use stdlib's rand()/srand() instead of random()/srand48(), etc. | ||||
|  */ | ||||
|  | ||||
| /*  | ||||
| /* | ||||
|  * Modified by Li Wei(liwei@aiar.xjtu.edu.cn) to be able to run in Windows | ||||
|  * 6/13 | ||||
|  * | ||||
| @@ -83,7 +83,7 @@ void FillTorus(float rc, int numc, float rt, int numt) | ||||
|  | ||||
|     pi = 3.14159265358979323846; | ||||
|     twopi = 2 * pi; | ||||
|   | ||||
|  | ||||
|     for (i = 0; i < numc; i++) { | ||||
| 	glBegin(GL_QUAD_STRIP); | ||||
|         for (j = 0; j <= numt; j++) { | ||||
| @@ -136,7 +136,7 @@ void DrawScene(void) | ||||
|     } | ||||
|  | ||||
|     glPushMatrix(); | ||||
|      | ||||
|  | ||||
|     glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); | ||||
|     gluLookAt(0,0,10, 0,0,0, 0,1,0); | ||||
|  | ||||
| @@ -252,7 +252,7 @@ void Init(void) | ||||
|     dests[GREENRING][1] = bottom_y; | ||||
|     dests[GREENRING][2] = bottom_z; | ||||
|  | ||||
|     base = 2.0;  | ||||
|     base = 2.0; | ||||
|     height = 2.0; | ||||
|     theTorus = glGenLists(1); | ||||
|     glNewList(theTorus, GL_COMPILE); | ||||
| @@ -321,7 +321,7 @@ GLenum Args(int argc, char **argv) | ||||
|     GLint i; | ||||
|  | ||||
|     rgb = GL_TRUE; | ||||
|     doubleBuffer = GL_FALSE; | ||||
|     doubleBuffer = GL_TRUE; | ||||
|  | ||||
|     for (i = 1; i < argc; i++) { | ||||
| 	if (strcmp(argv[i], "-ci") == 0) { | ||||
|   | ||||
| @@ -326,7 +326,7 @@ static GLenum Args(int argc, char **argv) | ||||
| { | ||||
|     GLint i; | ||||
|  | ||||
|     doubleBuffer = GL_FALSE; | ||||
|     doubleBuffer = GL_TRUE; | ||||
|  | ||||
|     for (i = 1; i < argc; i++) { | ||||
| 	if (strcmp(argv[i], "-sb") == 0) { | ||||
|   | ||||
| @@ -85,7 +85,7 @@ float c[6][4][4][3] = { | ||||
| 	{ | ||||
| 	    { | ||||
| 		1.0, 1.0, -1.0 | ||||
| 	    },  | ||||
| 	    }, | ||||
| 	    { | ||||
| 		0.0, 1.0, -1.0 | ||||
| 	    }, | ||||
| @@ -102,10 +102,10 @@ float c[6][4][4][3] = { | ||||
| 	    }, | ||||
| 	    { | ||||
| 		-1.0, 1.0, -1.0 | ||||
| 	    },  | ||||
| 	    }, | ||||
| 	    { | ||||
| 		-1.0, 0.0, -1.0 | ||||
| 	    },  | ||||
| 	    }, | ||||
| 	    { | ||||
| 		0.0, 0.0, -1.0 | ||||
| 	    }, | ||||
| @@ -269,7 +269,7 @@ float c[6][4][4][3] = { | ||||
| 	    { | ||||
| 		-1.0, 0.0, -1.0 | ||||
| 	    }, | ||||
| 	},  | ||||
| 	}, | ||||
| 	{ | ||||
| 	    { | ||||
| 		-1.0, 1.0, 0.0 | ||||
| @@ -283,7 +283,7 @@ float c[6][4][4][3] = { | ||||
| 	    { | ||||
| 		-1.0, 0.0, 0.0 | ||||
| 	    }, | ||||
| 	},  | ||||
| 	}, | ||||
| 	{ | ||||
| 	    { | ||||
| 		-1.0, 0.0, 1.0 | ||||
| @@ -297,7 +297,7 @@ float c[6][4][4][3] = { | ||||
| 	    { | ||||
| 		-1.0, 0.0, 0.0 | ||||
| 	    }, | ||||
| 	},  | ||||
| 	}, | ||||
| 	{ | ||||
| 	    { | ||||
| 		-1.0, -1.0, 0.0 | ||||
| @@ -311,7 +311,7 @@ float c[6][4][4][3] = { | ||||
| 	    { | ||||
| 		-1.0, 0.0, 0.0 | ||||
| 	    }, | ||||
| 	},  | ||||
| 	}, | ||||
|     }, | ||||
|     { | ||||
| 	{ | ||||
| @@ -463,8 +463,8 @@ GLfloat identity[16] = { | ||||
| void BuildCylinder(int numEdges) | ||||
| { | ||||
|     int i, top = 1.0, bottom = -1.0; | ||||
|     float x[100], y[100], angle;  | ||||
|      | ||||
|     float x[100], y[100], angle; | ||||
|  | ||||
|     for (i = 0; i <= numEdges; i++) { | ||||
| 	angle = i * 2.0 * PI / numEdges; | ||||
| 	x[i] = cos(angle);   /* was cosf() */ | ||||
| @@ -505,7 +505,7 @@ void BuildTorus(float rc, int numc, float rt, int numt) | ||||
|  | ||||
|     pi = 3.14159265358979323846; | ||||
|     twopi = 2.0 * pi; | ||||
|   | ||||
|  | ||||
|     glNewList(torus, GL_COMPILE); | ||||
|     for (i = 0; i < numc; i++) { | ||||
| 	glBegin(GL_QUAD_STRIP); | ||||
| @@ -542,7 +542,7 @@ void BuildCage(void) | ||||
|     left   = -4.0; | ||||
|     bottom = -4.0; | ||||
|     right  = 4.0; | ||||
|     top    = 4.0;  | ||||
|     top    = 4.0; | ||||
|  | ||||
|     inc = 2.0 * 4.0 * 0.1; | ||||
|  | ||||
| @@ -631,7 +631,7 @@ void BuildCube(void) | ||||
|     glNewList(cube, GL_COMPILE); | ||||
|     for (i = 0; i < 6; i++) { | ||||
| 	for (j = 0; j < 4; j++) { | ||||
| 	    glNormal3fv(n[i]);  | ||||
| 	    glNormal3fv(n[i]); | ||||
| 	    glBegin(GL_POLYGON); | ||||
| 		glVertex3fv(c[i][j][0]); | ||||
| 		glVertex3fv(c[i][j][1]); | ||||
| @@ -670,7 +670,7 @@ void SetDeepestColor(void) | ||||
|     glGetIntegerv(GL_BLUE_BITS, &blueBits); | ||||
|  | ||||
|     deepestColor = (redBits >= greenBits) ? COLOR_RED : COLOR_GREEN; | ||||
|     deepestColor = (deepestColor >= blueBits) ? deepestColor : COLOR_BLUE;  | ||||
|     deepestColor = (deepestColor >= blueBits) ? deepestColor : COLOR_BLUE; | ||||
| } | ||||
|  | ||||
| void SetDefaultSettings(void) | ||||
| @@ -726,17 +726,17 @@ void Init(void) | ||||
| 	image->data = AlphaPadImage(image->sizeX*image->sizeY, | ||||
|                                     image->data, 128); | ||||
| 	glPixelStorei(GL_UNPACK_ALIGNMENT, 1); | ||||
| 	gluBuild2DMipmaps(GL_TEXTURE_2D, numComponents,  | ||||
| 			  image->sizeX, image->sizeY,  | ||||
| 	gluBuild2DMipmaps(GL_TEXTURE_2D, numComponents, | ||||
| 			  image->sizeX, image->sizeY, | ||||
| 			  GL_RGBA, GL_UNSIGNED_BYTE, image->data); | ||||
|     } else { | ||||
| 	image = LoadPPM(imageFileName); | ||||
| 	glPixelStorei(GL_UNPACK_ALIGNMENT, 1); | ||||
| 	gluBuild2DMipmaps(GL_TEXTURE_2D, numComponents,  | ||||
| 			  image->sizeX, image->sizeY,  | ||||
| 	gluBuild2DMipmaps(GL_TEXTURE_2D, numComponents, | ||||
| 			  image->sizeX, image->sizeY, | ||||
| 			  GL_RGB, GL_UNSIGNED_BYTE, image->data); | ||||
|     } | ||||
|      | ||||
|  | ||||
|     glFogf(GL_FOG_DENSITY, 0.125); | ||||
|     glFogi(GL_FOG_MODE, GL_LINEAR); | ||||
|     glFogf(GL_FOG_START, 4.0); | ||||
| @@ -747,7 +747,7 @@ void Init(void) | ||||
|     glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); | ||||
|     glLightfv(GL_LIGHT0, GL_SPECULAR, specular); | ||||
|     glLightfv(GL_LIGHT0, GL_POSITION, position); | ||||
|      | ||||
|  | ||||
|     glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, mat_shininess); | ||||
|     glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular); | ||||
|     glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse); | ||||
| @@ -845,7 +845,7 @@ void Draw(void) | ||||
|     if (autoRotate) { | ||||
| 	xRotation += .75; | ||||
| 	yRotation += .375; | ||||
|     }  | ||||
|     } | ||||
|     glutSwapBuffers(); | ||||
| } | ||||
|  | ||||
| @@ -964,7 +964,7 @@ GLenum Args(int argc, char **argv) | ||||
| { | ||||
|     GLint i; | ||||
|  | ||||
|     doubleBuffer = GL_FALSE; | ||||
|     doubleBuffer = GL_TRUE; | ||||
|     numComponents = 4; | ||||
|  | ||||
|     for (i = 1; i < argc; i++) { | ||||
|   | ||||
| @@ -281,7 +281,7 @@ static GLenum Args(int argc, char **argv) | ||||
| { | ||||
|     GLint i; | ||||
|  | ||||
|     doubleBuffer = GL_FALSE; | ||||
|     doubleBuffer = GL_TRUE; | ||||
|  | ||||
|     for (i = 1; i < argc; i++) { | ||||
| 	if (strcmp(argv[i], "-sb") == 0) { | ||||
|   | ||||
| @@ -285,7 +285,7 @@ static GLenum Args(int argc, char **argv) | ||||
| { | ||||
|     GLint i; | ||||
|  | ||||
|     doubleBuffer = GL_FALSE; | ||||
|     doubleBuffer = GL_TRUE; | ||||
|  | ||||
|     for (i = 1; i < argc; i++) { | ||||
| 	if (strcmp(argv[i], "-sb") == 0) { | ||||
|   | ||||
| @@ -128,7 +128,7 @@ static void Animate(void) | ||||
| 		    glColor3fv(facet->color); | ||||
| 		} else { | ||||
| 		    thisColor = facet->color; | ||||
| 		    glMaterialfv(GL_FRONT_AND_BACK, GL_COLOR_INDEXES,  | ||||
| 		    glMaterialfv(GL_FRONT_AND_BACK, GL_COLOR_INDEXES, | ||||
| 				 facet->color); | ||||
| 		} | ||||
| 	    } else { | ||||
| @@ -182,12 +182,12 @@ static void Animate(void) | ||||
|     } | ||||
| } | ||||
|  | ||||
| static void SetColorMap(void)  | ||||
| static void SetColorMap(void) | ||||
| { | ||||
|     static float green[3] = {0.2, 1.0, 0.2}; | ||||
|     static float red[3] = {1.0, 0.2, 0.2}; | ||||
|     float *color, percent; | ||||
|     GLint *indexes, entries, i, j; | ||||
|     float *color = 0, percent; | ||||
|     GLint *indexes = 0, entries, i, j; | ||||
|  | ||||
|     entries = glutGet(GLUT_WINDOW_COLORMAP_SIZE); | ||||
|  | ||||
| @@ -360,7 +360,7 @@ static void InitMaterials(void) | ||||
|     glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside); | ||||
|     glEnable(GL_LIGHTING); | ||||
|     glEnable(GL_LIGHT0); | ||||
|      | ||||
|  | ||||
|     glMaterialfv(GL_FRONT, GL_SHININESS, front_mat_shininess); | ||||
|     glMaterialfv(GL_FRONT, GL_SPECULAR, front_mat_specular); | ||||
|     glMaterialfv(GL_FRONT, GL_DIFFUSE, front_mat_diffuse); | ||||
| @@ -394,7 +394,7 @@ static void Init(void) | ||||
|     glClearColor(0.0, 0.0, 0.0, 0.0); | ||||
|  | ||||
|     glShadeModel(GL_FLAT); | ||||
|      | ||||
|  | ||||
|     glFrontFace(GL_CW); | ||||
|  | ||||
|     glEnable(GL_DEPTH_TEST); | ||||
| @@ -515,7 +515,7 @@ static GLenum Args(int argc, char **argv) | ||||
|     GLint i; | ||||
|  | ||||
|     rgb = GL_TRUE; | ||||
|     doubleBuffer = GL_FALSE; | ||||
|     doubleBuffer = GL_TRUE; | ||||
|     frames = 10; | ||||
|     widthX = 10; | ||||
|     widthY = 10; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: glxheads.c,v 1.1 2000/06/13 19:41:30 brianp Exp $ */ | ||||
| /* $Id: glxheads.c,v 1.1.4.1 2000/11/10 17:17:23 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Exercise multiple GLX connections on multiple X displays. | ||||
| @@ -139,7 +139,7 @@ AddHead(const char *displayName) | ||||
|    if (!glXMakeCurrent(dpy, win, ctx)) { | ||||
|       Error(displayName, "glXMakeCurrent failed"); | ||||
|       printf("glXMakeCurrent failed in Redraw()\n"); | ||||
|       return; | ||||
|       return NULL; | ||||
|    } | ||||
|  | ||||
|    /* save the info for this head */ | ||||
|   | ||||
| @@ -53,7 +53,7 @@ PERFORMANCE OF THIS SOFTWARE. | ||||
| #include <stdio.h> | ||||
| #include <string.h> | ||||
|  | ||||
| /*#undef GL_EXT_polygon_offset   uncomment to use new version*/ | ||||
| #undef GL_EXT_polygon_offset  /* use GL 1.1 version instead of extension */ | ||||
|  | ||||
|  | ||||
| #ifndef EXIT_FAILURE | ||||
|   | ||||
| @@ -1,61 +1,62 @@ | ||||
| LIBRARY GLU32 | ||||
| DESCRIPTION 'GLU for Windows Mesa' | ||||
| EXETYPE WINDOWS | ||||
| CODE MOVEABLE DISCARDABLE | ||||
| DATA MOVEABLE SINGLE | ||||
| HEAPSIZE 256000 | ||||
|  | ||||
| STACKSIZE 4096 | ||||
|  | ||||
| EXPORTS | ||||
|     gluLookAt | ||||
|     gluOrtho2D | ||||
|     gluPerspective | ||||
|     gluPickMatrix | ||||
|     gluProject | ||||
|     gluUnProject | ||||
|     gluErrorString | ||||
|     gluScaleImage | ||||
|     gluBuild1DMipmaps | ||||
|     gluBuild2DMipmaps | ||||
|     gluNewQuadric | ||||
|     gluDeleteQuadric | ||||
|     gluQuadricDrawStyle | ||||
|     gluQuadricOrientation | ||||
|     gluQuadricNormals | ||||
|     gluQuadricTexture | ||||
|     gluQuadricCallback | ||||
|     gluCylinder | ||||
|     gluSphere | ||||
|     gluDisk | ||||
|     gluPartialDisk | ||||
|     gluNewNurbsRenderer | ||||
|     gluDeleteNurbsRenderer | ||||
|     gluLoadSamplingMatrices | ||||
|     gluNurbsProperty | ||||
|     gluGetNurbsProperty | ||||
|     gluBeginCurve | ||||
|     gluEndCurve | ||||
|     gluNurbsCurve | ||||
|     gluBeginSurface | ||||
|     gluEndSurface | ||||
|     gluNurbsSurface | ||||
|     gluBeginTrim | ||||
|     gluEndTrim | ||||
|     gluPwlCurve | ||||
|     gluNurbsCallback | ||||
|     gluNewTess | ||||
|     gluDeleteTess | ||||
|     gluTessBeginPolygon | ||||
|     gluTessBeginContour | ||||
|     gluTessVertex | ||||
|     gluTessEndContour | ||||
|     gluTessEndPolygon | ||||
|     gluTessProperty | ||||
|     gluTessNormal | ||||
|     gluTessCallback | ||||
|     gluGetTessProperty | ||||
|     gluBeginPolygon | ||||
|     gluNextContour | ||||
|     gluEndPolygon | ||||
|     gluGetString | ||||
| LIBRARY GLU32 | ||||
| DESCRIPTION 'GLU for Windows Mesa' | ||||
| EXETYPE WINDOWS | ||||
| CODE MOVEABLE DISCARDABLE | ||||
| DATA MOVEABLE SINGLE | ||||
| HEAPSIZE 256000 | ||||
|  | ||||
| STACKSIZE 4096 | ||||
|  | ||||
| EXPORTS | ||||
|     gluLookAt | ||||
|     gluOrtho2D | ||||
|     gluPerspective | ||||
|     gluPickMatrix | ||||
|     gluProject | ||||
|     gluUnProject | ||||
|     gluErrorString | ||||
|     gluScaleImage | ||||
|     gluBuild1DMipmaps | ||||
|     gluBuild2DMipmaps | ||||
|     gluNewQuadric | ||||
|     gluDeleteQuadric | ||||
|     gluQuadricDrawStyle | ||||
|     gluQuadricOrientation | ||||
|     gluQuadricNormals | ||||
|     gluQuadricTexture | ||||
|     gluQuadricCallback | ||||
|     gluCylinder | ||||
|     gluSphere | ||||
|     gluDisk | ||||
|     gluPartialDisk | ||||
|     gluNewNurbsRenderer | ||||
|     gluDeleteNurbsRenderer | ||||
|     gluLoadSamplingMatrices | ||||
|     gluNurbsProperty | ||||
|     gluGetNurbsProperty | ||||
|     gluBeginCurve | ||||
|     gluEndCurve | ||||
|     gluNurbsCurve | ||||
|     gluBeginSurface | ||||
|     gluEndSurface | ||||
|     gluNurbsSurface | ||||
|     gluBeginTrim | ||||
|     gluEndTrim | ||||
|     gluPwlCurve | ||||
|     gluNurbsCallback | ||||
|     gluNewTess | ||||
|     gluDeleteTess | ||||
| ;    gluTessBeginPolygon | ||||
| ;    gluTessBeginContour | ||||
|     gluTessVertex | ||||
| ;    gluTessEndContour | ||||
| ;    gluTessEndPolygon | ||||
| ;    gluTessProperty | ||||
| ;    gluTessNormal | ||||
|     gluTessCallback | ||||
| ;    gluGetTessProperty | ||||
|     gluBeginPolygon | ||||
|     gluNextContour | ||||
|     gluEndPolygon | ||||
|     gluGetString | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| # Makefile for GLU for VMS | ||||
| # Makefile for core library for VMS | ||||
| # contributed by Jouk Jansen  joukj@crys.chem.uva.nl | ||||
| # Last revision : 3 May 1999 | ||||
|  | ||||
| .first | ||||
| 	define gl [-.include.gl] | ||||
| @@ -10,28 +11,74 @@ | ||||
|  | ||||
| VPATH = RCS | ||||
|  | ||||
| INCDIR = $disk2:[-.include] | ||||
| INCDIR = [-.include] | ||||
| LIBDIR = [-.lib] | ||||
| CFLAGS = /include=$(INCDIR)/define=(FBIND=1) | ||||
| CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)/name=(as_is,short) | ||||
|  | ||||
| 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 | ||||
| CORE_SOURCES = aatriangle.c accum.c alpha.c alphabuf.c attrib.c \ | ||||
| bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \ | ||||
| dispatch.c \ | ||||
| dlist.c drawpix.c enable.c eval.c feedback.c fog.c \ | ||||
| get.c hash.c hint.c image.c imaging.c light.c lines.c logic.c masking.c matrix.c \ | ||||
| mem.c glapi.c glapinoop.c \ | ||||
| mmath.c pb.c pixel.c points.c polygon.c \ | ||||
| quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \ | ||||
| stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \ | ||||
| varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \ | ||||
| zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \ | ||||
| pipeline.c stages.c state.c vertices.c [.x86]x86.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_clip.obj | ||||
| DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]xfonts.c \ | ||||
| [.x]xmesa1.c [.x]xmesa2.c [.x]xmesa3.c [.x]xmesa4.c \ | ||||
| [.osmesa]osmesa.c \ | ||||
| [.svga]svgamesa.c \ | ||||
| [.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c [.fx]fxvsetup.c [.fx]fxsetup.c \ | ||||
| [.fx]fxtrifuncs.c [.fx]fxclip.c [.fx]fxfastpath.c [.fx]fxpipeline.c\ | ||||
| [.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c [.fx]fxsanity.c\ | ||||
| [.fx]fxglidew.c | ||||
|  | ||||
| ASM_SOURCES = | ||||
|  | ||||
| OBJECTS =aatriangle.obj,\ | ||||
| accum.obj,alpha.obj,alphabuf.obj,attrib.obj,\ | ||||
| bitmap.obj,blend.obj,buffers.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\ | ||||
| dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj | ||||
|  | ||||
|  | ||||
| OBJECTS3=get.obj,hash.obj,hint.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,\ | ||||
| matrix.obj,glapi.obj,glapinoop.obj,dispatch.obj,imaging.obj,mem.obj,\ | ||||
| mmath.obj,pb.obj,pixel.obj,points.obj | ||||
|  | ||||
| OBJECTS7=polygon.obj,\ | ||||
| quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj,\ | ||||
| pixeltex.obj | ||||
|  | ||||
| OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\ | ||||
| triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj | ||||
|  | ||||
| OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\ | ||||
| 	config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,state.obj,\ | ||||
| 	vertices.obj,[.x86]x86.obj | ||||
|  | ||||
| OBJECTS2=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]xfonts.obj,\ | ||||
| [.x]xmesa1.obj,[.x]xmesa2.obj,[.x]xmesa3.obj,[.x]xmesa4.obj,\ | ||||
| [.osmesa]osmesa.obj,\ | ||||
| [.svga]svgamesa.obj | ||||
|  | ||||
| OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\ | ||||
| [.fx]fxsetup.obj,[.fx]fxclip.obj,[.fx]fxfastpath.obj,[.fx]fxpipeline.obj | ||||
|  | ||||
| OBJECTS8=[.fx]fxtrifuncs.obj,[.fx]fxsanity.obj,[.fx]fxglidew.obj,\ | ||||
| [.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj | ||||
|  | ||||
| ##### RULES ##### | ||||
|  | ||||
| VERSION=MesaGlu V3.1 | ||||
| VERSION=Mesa V3.1 | ||||
|  | ||||
| ##### TARGETS ##### | ||||
|  | ||||
| # Make the library: | ||||
| $(LIBDIR)$(GLU_LIB) : $(OBJECTS) | ||||
| # Make the library | ||||
| $(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\ | ||||
| 	$(OBJECTS5) $(OBJECTS8) $(OBJECTS7) $(OBJECTS6) | ||||
| .ifdef SHARE | ||||
|   @ WRITE_ SYS$OUTPUT "  generating mesagl1.opt" | ||||
|   @ OPEN_/WRITE FILE  mesagl1.opt | ||||
| @@ -41,7 +88,13 @@ $(LIBDIR)$(GLU_LIB) : $(OBJECTS) | ||||
|   @ WRITE_ FILE "IDENTIFICATION=""$(VERSION)""" | ||||
|   @ WRITE_ FILE "GSMATCH=LEQUAL,3,1 | ||||
|   @ WRITE_ FILE "$(OBJECTS)" | ||||
|   @ WRITE_ FILE "[-.lib]libmesagl.exe/SHARE" | ||||
|   @ WRITE_ FILE "$(OBJECTS3)" | ||||
|   @ WRITE_ FILE "$(OBJECTS4)" | ||||
|   @ WRITE_ FILE "$(OBJECTS7)" | ||||
|   @ WRITE_ FILE "$(OBJECTS6)" | ||||
|   @ WRITE_ FILE "$(OBJECTS2)" | ||||
|   @ WRITE_ FILE "$(OBJECTS5)" | ||||
|   @ WRITE_ FILE "$(OBJECTS8)" | ||||
|   @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE" | ||||
|   @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/SHARE" | ||||
|   @ CLOSE_ FILE | ||||
| @@ -49,16 +102,79 @@ $(LIBDIR)$(GLU_LIB) : $(OBJECTS) | ||||
|   @ LINK_/NODEB/NOSHARE/NOEXE/MAP=mesagl.map/FULL mesagl1.opt/OPT | ||||
|   @ WRITE_ SYS$OUTPUT "  analyzing mesagl.map ..." | ||||
|   @ @[-.vms]ANALYZE_MAP.COM mesagl.map mesagl.opt | ||||
|   @ WRITE_ SYS$OUTPUT "  linking $(GLU_LIB) ..." | ||||
|   @ LINK_/noinform/NODEB/SHARE=$(GLU_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt | ||||
|   @ WRITE_ SYS$OUTPUT "  linking $(GL_LIB) ..." | ||||
|   @ LINK_/NODEB/SHARE=$(GL_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt | ||||
| .else | ||||
|   @ $(MAKELIB) $(GLU_LIB) $(OBJECTS) | ||||
|   @ $(MAKELIB) $(GL_LIB) $(OBJECTS) | ||||
|   @ library $(GL_LIB) $(OBJECTS2) | ||||
|   @ library $(GL_LIB) $(OBJECTS3) | ||||
|   @ library $(GL_LIB) $(OBJECTS4) | ||||
|   @ library $(GL_LIB) $(OBJECTS5) | ||||
|   @ library $(GL_LIB) $(OBJECTS8) | ||||
|   @ library $(GL_LIB) $(OBJECTS7) | ||||
|   @ library $(GL_LIB) $(OBJECTS6) | ||||
| .endif | ||||
|   @ rename $(GLU_LIB)* $(LIBDIR) | ||||
|   @ rename $(GL_LIB)* $(LIBDIR) | ||||
|  | ||||
| clean : | ||||
| 	delete *.obj;* | ||||
| 	purge | ||||
| 	delete *.obj;* | ||||
|  | ||||
| include mms_depend. | ||||
| aatriangle.obj : aatriangle.c | ||||
|  | ||||
| triangle.obj : triangle.c | ||||
|  | ||||
| pixeltex.obj : pixeltex.c | ||||
|  | ||||
| [.x86]x86.obj : [.x86]x86.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x86]x86.obj [.x86]x86.c | ||||
| [.x]glxapi.obj : [.x]glxapi.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]glxapi.obj [.x]glxapi.c | ||||
| [.x]fakeglx.obj : [.x]fakeglx.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]fakeglx.obj [.x]fakeglx.c | ||||
| [.x]xfonts.obj : [.x]xfonts.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xfonts.obj [.x]xfonts.c | ||||
| [.x]xmesa1.obj : [.x]xmesa1.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa1.obj [.x]xmesa1.c | ||||
| [.x]xmesa2.obj : [.x]xmesa2.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa2.obj [.x]xmesa2.c | ||||
| [.x]xmesa3.obj : [.x]xmesa3.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa3.obj [.x]xmesa3.c | ||||
| [.x]xmesa4.obj : [.x]xmesa4.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa4.obj [.x]xmesa4.c | ||||
| [.osmesa]osmesa.obj : [.osmesa]osmesa.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.osmesa]osmesa.obj [.osmesa]osmesa.c | ||||
| [.svga]svgamesa.obj : [.svga]svgamesa.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.svga]svgamesa.obj [.svga]svgamesa.c | ||||
| [.fx]fxapi.obj : [.fx]fxapi.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxapi.obj [.fx]fxapi.c | ||||
| [.fx]fxclip.obj : [.fx]fxclip.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxclip.obj [.fx]fxclip.c | ||||
| [.fx]fxcva.obj : [.fx]fxcva.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.c | ||||
| [.fx]fxdd.obj : [.fx]fxdd.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxdd.obj [.fx]fxdd.c | ||||
| [.fx]fxddtex.obj : [.fx]fxddtex.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxddtex.obj [.fx]fxddtex.c | ||||
| [.fx]fxfastpath.obj : [.fx]fxfastpath.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxfastpath.obj [.fx]fxfastpath.c | ||||
| [.fx]fxpipeline.obj : [.fx]fxpipeline.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxpipeline.obj [.fx]fxpipeline.c | ||||
| [.fx]fxsanity.obj : [.fx]fxsanity.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxsanity.obj [.fx]fxsanity.c | ||||
| [.fx]fxvsetup.obj : [.fx]fxvsetup.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c | ||||
| [.fx]fxsetup.obj : [.fx]fxsetup.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c | ||||
| [.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c | ||||
| [.fx]fxrender.obj : [.fx]fxrender.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c | ||||
| [.fx]fxtexman.obj : [.fx]fxtexman.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c | ||||
| [.fx]fxddspan.obj : [.fx]fxddspan.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c | ||||
| [.fx]fxglidew.obj : [.fx]fxglidew.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxglidew.obj [.fx]fxglidew.c | ||||
|  | ||||
| .include mms_depend. | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: glu.c,v 1.21 2000/07/18 01:13:28 brianp Exp $ */ | ||||
| /* $Id: glu.c,v 1.21.2.2 2001/01/24 04:49:27 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
| @@ -302,7 +302,7 @@ const GLubyte *GLAPIENTRY | ||||
| gluGetString(GLenum name) | ||||
| { | ||||
|    static char *extensions = "GL_EXT_abgr"; | ||||
|    static char *version = "1.1 Mesa 3.3"; | ||||
|    static char *version = "1.1 Mesa 3.4.1"; | ||||
|  | ||||
|    switch (name) { | ||||
|    case GLU_EXTENSIONS: | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: mipmap.c,v 1.7 2000/07/11 14:11:04 brianp Exp $ */ | ||||
| /* $Id: mipmap.c,v 1.7.4.1 2000/10/26 21:48:37 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  * Copyright (C) 1995-2000  Brian Paul | ||||
|  * | ||||
|  * This library is free software; you can redistribute it and/or | ||||
| @@ -576,6 +576,7 @@ bytes_per_pixel(GLenum format, GLenum type) | ||||
|       n = 2; | ||||
|       break; | ||||
|    case GL_RGB: | ||||
|    case GL_BGR: | ||||
|       n = 3; | ||||
|       break; | ||||
|    case GL_RGBA: | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: nurbscrv.c,v 1.2 2000/07/11 14:11:04 brianp Exp $ */ | ||||
| /* $Id: nurbscrv.c,v 1.2.4.1 2000/11/10 17:17:22 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -359,7 +359,7 @@ do_nurbs_curve(GLUnurbsObj * nobj) | ||||
|    GLint n_ctrl; | ||||
|    GLfloat *new_geom_ctrl, *new_color_ctrl, *new_normal_ctrl, | ||||
|       *new_texture_ctrl; | ||||
|    GLfloat *geom_ctrl, *color_ctrl, *normal_ctrl, *texture_ctrl; | ||||
|    GLfloat *geom_ctrl = 0, *color_ctrl = 0, *normal_ctrl = 0, *texture_ctrl = 0; | ||||
|    GLint *factors; | ||||
|    GLint i, j; | ||||
|    GLint geom_dim, color_dim = 0, normal_dim = 0, texture_dim = 0; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: nurbsutl.c,v 1.3 2000/07/11 20:39:00 brianp Exp $ */ | ||||
| /* $Id: nurbsutl.c,v 1.3.4.1 2000/11/10 17:17:22 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -130,7 +130,7 @@ set_new_t_min_t_max(knot_str_type * geom_knot, knot_str_type * color_knot, | ||||
| 		    knot_str_type * normal_knot, knot_str_type * texture_knot, | ||||
| 		    GLfloat maximal_min_knot, GLfloat minimal_max_knot) | ||||
| { | ||||
|    GLuint t_min, t_max, cnt; | ||||
|    GLuint t_min = 0, t_max = 0, cnt = 0; | ||||
|  | ||||
|    if (minimal_max_knot - maximal_min_knot < EPSILON) { | ||||
|       /* knot common range empty */ | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: polytest.c,v 1.3 2000/07/11 14:11:04 brianp Exp $ */ | ||||
| /* $Id: polytest.c,v 1.3.4.1 2000/11/10 17:17:22 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -786,7 +786,7 @@ cut_out_hole(GLUtriangulatorObj * tobj, | ||||
|    tess_vertex *v1, *v2, *tmp_vertex; | ||||
|    GLuint vertex1_cnt, vertex2_cnt, tmp_vertex_cnt; | ||||
|    GLuint i, j, k; | ||||
|    GLenum test; | ||||
|    GLenum test = 0; | ||||
|  | ||||
|    /* find an edge connecting contour and hole not intersecting any other */ | ||||
|    /* edge belonging to either the contour or any of the other holes */ | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| # Makefile for GLUT for VMS | ||||
| # Makefile for core library for VMS | ||||
| # contributed by Jouk Jansen  joukj@crys.chem.uva.nl | ||||
| # Last revision : 3 May 1999 | ||||
|  | ||||
| .first | ||||
| 	define gl [-.include.gl] | ||||
| @@ -7,122 +8,77 @@ | ||||
| .include [-]mms-config. | ||||
|  | ||||
| ##### MACROS ##### | ||||
| GLUT_MAJOR = 3 | ||||
| GLUT_MINOR = 7 | ||||
|  | ||||
| VPATH = RCS | ||||
|  | ||||
| INCDIR = [-.include] | ||||
| LIBDIR = [-.lib] | ||||
| CFLAGS = /nowarn/include=$(INCDIR)/prefix=all | ||||
| CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)/name=(as_is,short) | ||||
|  | ||||
| SOURCES = \ | ||||
| glut_8x13.c \ | ||||
| glut_9x15.c \ | ||||
| glut_bitmap.c \ | ||||
| glut_bwidth.c \ | ||||
| glut_cindex.c \ | ||||
| glut_cmap.c \ | ||||
| glut_cursor.c \ | ||||
| glut_dials.c \ | ||||
| glut_dstr.c \ | ||||
| glut_event.c \ | ||||
| glut_ext.c \ | ||||
| glut_fullscrn.c \ | ||||
| glut_gamemode.c \ | ||||
| glut_get.c \ | ||||
| glut_glxext.c \ | ||||
| glut_hel10.c \ | ||||
| glut_hel12.c \ | ||||
| glut_hel18.c \ | ||||
| glut_init.c \ | ||||
| glut_input.c \ | ||||
| glut_joy.c \ | ||||
| glut_key.c \ | ||||
| glut_keyctrl.c \ | ||||
| glut_keyup.c \ | ||||
| glut_menu.c \ | ||||
| glut_menu2.c \ | ||||
| glut_mesa.c \ | ||||
| glut_modifier.c \ | ||||
| glut_mroman.c \ | ||||
| glut_overlay.c \ | ||||
| glut_roman.c \ | ||||
| glut_shapes.c \ | ||||
| glut_space.c \ | ||||
| glut_stroke.c \ | ||||
| glut_swap.c \ | ||||
| glut_swidth.c \ | ||||
| glut_tablet.c \ | ||||
| glut_teapot.c \ | ||||
| glut_tr10.c \ | ||||
| glut_tr24.c \ | ||||
| glut_util.c \ | ||||
| glut_vidresize.c \ | ||||
| glut_warp.c \ | ||||
| glut_win.c \ | ||||
| glut_winmisc.c \ | ||||
| layerutil.c | ||||
| CORE_SOURCES = aatriangle.c accum.c alpha.c alphabuf.c attrib.c \ | ||||
| bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \ | ||||
| dispatch.c \ | ||||
| dlist.c drawpix.c enable.c eval.c feedback.c fog.c \ | ||||
| get.c hash.c hint.c image.c imaging.c light.c lines.c logic.c masking.c matrix.c \ | ||||
| mem.c glapi.c glapinoop.c \ | ||||
| mmath.c pb.c pixel.c points.c polygon.c \ | ||||
| quads.c rastpos.c readpix.c rect.c scissor.c shade.c span.c \ | ||||
| stencil.c teximage.c texobj.c texstate.c texture.c translate.c triangle.c \ | ||||
| varray.c winpos.c vb.c vbcull.c vbfill.c vbrender.c vbxform.c xform.c \ | ||||
| zoom.c bbox.c cva.c vector.c vbindirect.c config.c enums.c extensions.c \ | ||||
| pipeline.c stages.c state.c vertices.c [.x86]x86.c | ||||
|  | ||||
| OBJECTS = \ | ||||
| glut_8x13.obj,\ | ||||
| glut_9x15.obj,\ | ||||
| glut_bitmap.obj,\ | ||||
| glut_bwidth.obj,\ | ||||
| glut_cindex.obj,\ | ||||
| glut_cmap.obj,\ | ||||
| glut_cursor.obj,\ | ||||
| glut_dials.obj,\ | ||||
| glut_dstr.obj,\ | ||||
| glut_event.obj,\ | ||||
| glut_ext.obj,\ | ||||
| glut_fullscrn.obj,\ | ||||
| glut_gamemode.obj | ||||
| DRIVER_SOURCES = [.x]glxapi.c [.x]fakeglx.c [.x]xfonts.c \ | ||||
| [.x]xmesa1.c [.x]xmesa2.c [.x]xmesa3.c [.x]xmesa4.c \ | ||||
| [.osmesa]osmesa.c \ | ||||
| [.svga]svgamesa.c \ | ||||
| [.fx]fxapi.c [.fx]fxdd.c [.fx]fxddtex.c [.fx]fxvsetup.c [.fx]fxsetup.c \ | ||||
| [.fx]fxtrifuncs.c [.fx]fxclip.c [.fx]fxfastpath.c [.fx]fxpipeline.c\ | ||||
| [.fx]fxrender.c [.fx]fxtexman.c [.fx]fxddspan.c [.fx]fxcva.c [.fx]fxsanity.c\ | ||||
| [.fx]fxglidew.c | ||||
|  | ||||
| OBJECTS1=glut_get.obj,\ | ||||
| glut_glxext.obj,\ | ||||
| glut_hel10.obj,\ | ||||
| glut_hel12.obj,\ | ||||
| glut_hel18.obj,\ | ||||
| glut_init.obj,\ | ||||
| glut_input.obj,\ | ||||
| glut_joy.obj,\ | ||||
| glut_key.obj,\ | ||||
| glut_keyctrl.obj,\ | ||||
| glut_keyup.obj,\ | ||||
| glut_menu.obj,\ | ||||
| glut_menu2.obj,\ | ||||
| glut_mesa.obj,\ | ||||
| glut_modifier.obj | ||||
| ASM_SOURCES = | ||||
|  | ||||
| OBJECTS2=glut_mroman.obj,\ | ||||
| glut_overlay.obj,\ | ||||
| glut_roman.obj,\ | ||||
| glut_shapes.obj,\ | ||||
| glut_space.obj,\ | ||||
| glut_stroke.obj,\ | ||||
| glut_swap.obj,\ | ||||
| glut_swidth.obj,\ | ||||
| glut_tablet.obj,\ | ||||
| glut_teapot.obj,\ | ||||
| glut_tr10.obj,\ | ||||
| glut_tr24.obj,\ | ||||
| glut_util.obj,\ | ||||
| glut_vidresize.obj | ||||
| OBJECTS =aatriangle.obj,\ | ||||
| accum.obj,alpha.obj,alphabuf.obj,attrib.obj,\ | ||||
| bitmap.obj,blend.obj,buffers.obj,clip.obj,colortab.obj,context.obj,copypix.obj,depth.obj,\ | ||||
| dlist.obj,drawpix.obj,enable.obj,eval.obj,feedback.obj,fog.obj | ||||
|  | ||||
| OBJECTS3=glut_warp.obj,\ | ||||
| glut_win.obj,\ | ||||
| glut_winmisc.obj,\ | ||||
| layerutil.obj | ||||
|  | ||||
| OBJECTS3=get.obj,hash.obj,hint.obj,image.obj,light.obj,lines.obj,logic.obj,masking.obj,\ | ||||
| matrix.obj,glapi.obj,glapinoop.obj,dispatch.obj,imaging.obj,mem.obj,\ | ||||
| mmath.obj,pb.obj,pixel.obj,points.obj | ||||
|  | ||||
| OBJECTS7=polygon.obj,\ | ||||
| quads.obj,rastpos.obj,readpix.obj,rect.obj,scissor.obj,shade.obj,span.obj,\ | ||||
| pixeltex.obj | ||||
|  | ||||
| OBJECTS4=stencil.obj,teximage.obj,texobj.obj,texstate.obj,texture.obj,translate.obj,\ | ||||
| triangle.obj,varray.obj,winpos.obj,vb.obj,vbcull.obj,vbfill.obj,vbrender.obj | ||||
|  | ||||
| OBJECTS6=vbxform.obj,xform.obj,zoom.obj,bbox.obj,cva.obj,vector.obj,vbindirect.obj,\ | ||||
| 	config.obj,enums.obj,extensions.obj,pipeline.obj,stages.obj,state.obj,\ | ||||
| 	vertices.obj,[.x86]x86.obj | ||||
|  | ||||
| OBJECTS2=[.x]glxapi.obj,[.x]fakeglx.obj,[.x]xfonts.obj,\ | ||||
| [.x]xmesa1.obj,[.x]xmesa2.obj,[.x]xmesa3.obj,[.x]xmesa4.obj,\ | ||||
| [.osmesa]osmesa.obj,\ | ||||
| [.svga]svgamesa.obj | ||||
|  | ||||
| OBJECTS5=[.fx]fxapi.obj,[.fx]fxdd.obj,[.fx]fxddtex.obj,[.fx]fxvsetup.obj,\ | ||||
| [.fx]fxsetup.obj,[.fx]fxclip.obj,[.fx]fxfastpath.obj,[.fx]fxpipeline.obj | ||||
|  | ||||
| OBJECTS8=[.fx]fxtrifuncs.obj,[.fx]fxsanity.obj,[.fx]fxglidew.obj,\ | ||||
| [.fx]fxrender.obj,[.fx]fxtexman.obj,[.fx]fxddspan.obj,[.fx]fxcva.obj | ||||
|  | ||||
| ##### RULES ##### | ||||
|  | ||||
| VERSION=Glut V3.7 | ||||
| VERSION=Mesa V3.1 | ||||
|  | ||||
| ##### TARGETS ##### | ||||
|  | ||||
| # Make the library: | ||||
| $(LIBDIR)$(GLUT_LIB) : $(OBJECTS) $(OBJECTS1) $(OBJECTS2) $(OBJECTS3) | ||||
| # Make the library | ||||
| $(LIBDIR)$(GL_LIB) : $(OBJECTS),$(OBJECTS2) $(OBJECTS3) $(OBJECTS4)\ | ||||
| 	$(OBJECTS5) $(OBJECTS8) $(OBJECTS7) $(OBJECTS6) | ||||
| .ifdef SHARE | ||||
|   @ WRITE_ SYS$OUTPUT "  generating mesagl1.opt" | ||||
|   @ OPEN_/WRITE FILE  mesagl1.opt | ||||
| @@ -130,14 +86,15 @@ $(LIBDIR)$(GLUT_LIB) : $(OBJECTS) $(OBJECTS1) $(OBJECTS2) $(OBJECTS3) | ||||
|   @ WRITE_ FILE "! mesagl1.opt generated by DESCRIP.$(MMS_EXT)"  | ||||
|   @ WRITE_ FILE "!" | ||||
|   @ WRITE_ FILE "IDENTIFICATION=""$(VERSION)""" | ||||
|   @ WRITE_ FILE "GSMATCH=LEQUAL,3,7 | ||||
|   @ WRITE_ FILE "GSMATCH=LEQUAL,3,1 | ||||
|   @ WRITE_ FILE "$(OBJECTS)" | ||||
|   @ WRITE_ FILE "$(OBJECTS1)" | ||||
|   @ WRITE_ FILE "$(OBJECTS2)" | ||||
|   @ WRITE_ FILE "$(OBJECTS3)" | ||||
|   @ WRITE_ FILE "[-.lib]libmesaglu.exe/SHARE" | ||||
|   @ WRITE_ FILE "[-.lib]libmesagl.exe/SHARE" | ||||
|   @ write file "sys$library:decw$xmulibshr.exe/share" | ||||
|   @ WRITE_ FILE "$(OBJECTS4)" | ||||
|   @ WRITE_ FILE "$(OBJECTS7)" | ||||
|   @ WRITE_ FILE "$(OBJECTS6)" | ||||
|   @ WRITE_ FILE "$(OBJECTS2)" | ||||
|   @ WRITE_ FILE "$(OBJECTS5)" | ||||
|   @ WRITE_ FILE "$(OBJECTS8)" | ||||
|   @ WRITE_ FILE "SYS$SHARE:DECW$XEXTLIBSHR/SHARE" | ||||
|   @ WRITE_ FILE "SYS$SHARE:DECW$XLIBSHR/SHARE" | ||||
|   @ CLOSE_ FILE | ||||
| @@ -145,18 +102,79 @@ $(LIBDIR)$(GLUT_LIB) : $(OBJECTS) $(OBJECTS1) $(OBJECTS2) $(OBJECTS3) | ||||
|   @ LINK_/NODEB/NOSHARE/NOEXE/MAP=mesagl.map/FULL mesagl1.opt/OPT | ||||
|   @ WRITE_ SYS$OUTPUT "  analyzing mesagl.map ..." | ||||
|   @ @[-.vms]ANALYZE_MAP.COM mesagl.map mesagl.opt | ||||
|   @ WRITE_ SYS$OUTPUT "  linking $(GLUT_LIB) ..." | ||||
|   @ LINK_/NODEB/SHARE=$(GLUT_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt | ||||
|   @ WRITE_ SYS$OUTPUT "  linking $(GL_LIB) ..." | ||||
|   @ LINK_/NODEB/SHARE=$(GL_LIB)/MAP=mesagl.map/FULL mesagl1.opt/opt,mesagl.opt/opt | ||||
| .else | ||||
|   @ $(MAKELIB) $(GLUT_LIB) $(OBJECTS) | ||||
|   @ library $(GLUT_LIB) $(OBJECTS1) | ||||
|   @ library $(GLUT_LIB) $(OBJECTS2) | ||||
|   @ library $(GLUT_LIB) $(OBJECTS3) | ||||
|   @ $(MAKELIB) $(GL_LIB) $(OBJECTS) | ||||
|   @ library $(GL_LIB) $(OBJECTS2) | ||||
|   @ library $(GL_LIB) $(OBJECTS3) | ||||
|   @ library $(GL_LIB) $(OBJECTS4) | ||||
|   @ library $(GL_LIB) $(OBJECTS5) | ||||
|   @ library $(GL_LIB) $(OBJECTS8) | ||||
|   @ library $(GL_LIB) $(OBJECTS7) | ||||
|   @ library $(GL_LIB) $(OBJECTS6) | ||||
| .endif | ||||
|   @ rename $(GLUT_LIB)* $(LIBDIR) | ||||
|   @ rename $(GL_LIB)* $(LIBDIR) | ||||
|  | ||||
| clean : | ||||
| 	delete *.obj;* | ||||
| 	purge | ||||
| 	delete *.obj;* | ||||
|  | ||||
| include mms_depend. | ||||
| aatriangle.obj : aatriangle.c | ||||
|  | ||||
| triangle.obj : triangle.c | ||||
|  | ||||
| pixeltex.obj : pixeltex.c | ||||
|  | ||||
| [.x86]x86.obj : [.x86]x86.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x86]x86.obj [.x86]x86.c | ||||
| [.x]glxapi.obj : [.x]glxapi.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]glxapi.obj [.x]glxapi.c | ||||
| [.x]fakeglx.obj : [.x]fakeglx.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]fakeglx.obj [.x]fakeglx.c | ||||
| [.x]xfonts.obj : [.x]xfonts.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xfonts.obj [.x]xfonts.c | ||||
| [.x]xmesa1.obj : [.x]xmesa1.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa1.obj [.x]xmesa1.c | ||||
| [.x]xmesa2.obj : [.x]xmesa2.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa2.obj [.x]xmesa2.c | ||||
| [.x]xmesa3.obj : [.x]xmesa3.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa3.obj [.x]xmesa3.c | ||||
| [.x]xmesa4.obj : [.x]xmesa4.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.x]xmesa4.obj [.x]xmesa4.c | ||||
| [.osmesa]osmesa.obj : [.osmesa]osmesa.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.osmesa]osmesa.obj [.osmesa]osmesa.c | ||||
| [.svga]svgamesa.obj : [.svga]svgamesa.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.svga]svgamesa.obj [.svga]svgamesa.c | ||||
| [.fx]fxapi.obj : [.fx]fxapi.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxapi.obj [.fx]fxapi.c | ||||
| [.fx]fxclip.obj : [.fx]fxclip.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxclip.obj [.fx]fxclip.c | ||||
| [.fx]fxcva.obj : [.fx]fxcva.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxcva.obj [.fx]fxcva.c | ||||
| [.fx]fxdd.obj : [.fx]fxdd.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxdd.obj [.fx]fxdd.c | ||||
| [.fx]fxddtex.obj : [.fx]fxddtex.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxddtex.obj [.fx]fxddtex.c | ||||
| [.fx]fxfastpath.obj : [.fx]fxfastpath.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxfastpath.obj [.fx]fxfastpath.c | ||||
| [.fx]fxpipeline.obj : [.fx]fxpipeline.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxpipeline.obj [.fx]fxpipeline.c | ||||
| [.fx]fxsanity.obj : [.fx]fxsanity.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxsanity.obj [.fx]fxsanity.c | ||||
| [.fx]fxvsetup.obj : [.fx]fxvsetup.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxvsetup.obj [.fx]fxvsetup.c | ||||
| [.fx]fxsetup.obj : [.fx]fxsetup.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxsetup.obj [.fx]fxsetup.c | ||||
| [.fx]fxtrifuncs.obj : [.fx]fxtrifuncs.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxtrifuncs.obj [.fx]fxtrifuncs.c | ||||
| [.fx]fxrender.obj : [.fx]fxrender.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxrender.obj [.fx]fxrender.c | ||||
| [.fx]fxtexman.obj : [.fx]fxtexman.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxtexman.obj [.fx]fxtexman.c | ||||
| [.fx]fxddspan.obj : [.fx]fxddspan.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxddspan.obj [.fx]fxddspan.c | ||||
| [.fx]fxglidew.obj : [.fx]fxglidew.c | ||||
| 	$(CC) $(CFLAGS) /obj=[.fx]fxglidew.obj [.fx]fxglidew.c | ||||
|  | ||||
| .include mms_depend. | ||||
|   | ||||
| @@ -118,7 +118,7 @@ void | ||||
| __glutSetCursor(GLUTwindow *window) | ||||
| { | ||||
|   int cursor = window->cursor; | ||||
|   Cursor xcursor; | ||||
|   Cursor xcursor = 0; | ||||
|  | ||||
|   if (cursor >= 0 && | ||||
|     cursor < sizeof(cursorTable) / sizeof(cursorTable[0])) { | ||||
|   | ||||
| @@ -630,7 +630,7 @@ findMatch(FrameBufferMode * fbmodes, int nfbmodes, | ||||
| { | ||||
|   FrameBufferMode *found; | ||||
|   int *bestScore, *thisScore; | ||||
|   int i, j, numok, result, worse, better; | ||||
|   int i, j, numok, result = 0, worse, better; | ||||
|  | ||||
|   found = NULL; | ||||
|   numok = 1;            /* "num" capability is indexed from 1, | ||||
| @@ -760,7 +760,7 @@ parseCriteria(char *word, Criterion * criterion, int *mask, | ||||
|   Bool * allowDoubleAsSingle) | ||||
| { | ||||
|   char *cstr, *vstr, *response; | ||||
|   int comparator, value; | ||||
|   int comparator, value = 0; | ||||
|   int rgb, rgba, acc, acca, count, i; | ||||
|  | ||||
|   cstr = strpbrk(word, "=><!~"); | ||||
|   | ||||
| @@ -158,7 +158,7 @@ findMatch(DisplayMode * dmodes, int ndmodes, | ||||
| { | ||||
|   DisplayMode *found; | ||||
|   int *bestScore, *thisScore; | ||||
|   int i, j, numok, result, worse, better; | ||||
|   int i, j, numok, result = 0, worse, better; | ||||
|  | ||||
|   found = NULL; | ||||
|   numok = 1;            /* "num" capability is indexed from 1, | ||||
| @@ -382,7 +382,7 @@ static int | ||||
| parseCriteria(char *word, Criterion * criterion) | ||||
| { | ||||
|   char *cstr, *vstr, *response; | ||||
|   int comparator, value; | ||||
|   int comparator, value = 0; | ||||
|  | ||||
|   cstr = strpbrk(word, "=><!~"); | ||||
|   if (cstr) { | ||||
|   | ||||
| @@ -311,7 +311,7 @@ probeDevices(void) | ||||
|   XButtonInfoPtr b; | ||||
|   XValuatorInfoPtr v; | ||||
|   XAxisInfoPtr a; | ||||
|   int num_dev, btns, dials; | ||||
|   int num_dev = 0, btns = 0, dials = 0; | ||||
|   int i, j, k; | ||||
| #endif /* !_WIN32 */ | ||||
|  | ||||
|   | ||||
| @@ -99,8 +99,8 @@ ifSunCreator(void) | ||||
| { | ||||
|   char *xvendor, *glvendor, *renderer; | ||||
|   int isSunCreator = 0; /* Until proven that it is. */ | ||||
|   int savedDisplayMode; | ||||
|   char *savedDisplayString; | ||||
|   int savedDisplayMode = 0; | ||||
|   char *savedDisplayString = 0; | ||||
|   GLUTwindow *window; | ||||
|  | ||||
| #define VENDOR_SUN "Sun Microsystems" | ||||
| @@ -154,7 +154,7 @@ menuVisualSetup(void) | ||||
|   Bool presumablyMesa; | ||||
|   int layer, nVisuals, i, dummy; | ||||
|   unsigned long *placeHolders = NULL; | ||||
|   int numPlaceHolders; | ||||
|   int numPlaceHolders = 0; | ||||
|   Bool allocateHigh; | ||||
|  | ||||
|   allocateHigh = ifSunCreator(); | ||||
|   | ||||
| @@ -1511,7 +1511,7 @@ static void SetRenderStates( GLcontext *ctx ) | ||||
|    /*================================================*/ | ||||
|    /* Check too see if there are new TEXTURE states. */ | ||||
|    /*================================================*/ | ||||
|    if ( ctx->Texture.Enabled ) | ||||
|    if ( ctx->Texture.ReallyEnabled ) | ||||
|    { | ||||
|       switch( ctx->Texture.Set[ctx->Texture.CurrentSet].EnvMode ) | ||||
|       { | ||||
| @@ -1871,9 +1871,9 @@ static void DebugRenderStates( GLcontext *ctx, BOOL bForce ) | ||||
|    /*================================================*/ | ||||
|    /* Check too see if there are new TEXTURE states. */ | ||||
|    /*================================================*/ | ||||
|    if ( texture != ctx->Texture.Enabled ) | ||||
|    if ( texture != ctx->Texture.ReallyEnabled ) | ||||
|    { | ||||
| 	texture = ctx->Texture.Enabled; | ||||
| 	texture = ctx->Texture.ReallyEnabled; | ||||
| 	DPF(( 0, "\tTexture\t\t%s", (texture) ? "ENABLED" : "--------" )); | ||||
|    }	 | ||||
|  | ||||
|   | ||||
| @@ -389,7 +389,7 @@ triangle_func ggiGetTriangleFunc(GLcontext *ctx) | ||||
| 	if (ctx->Stencil.Enabled) return NULL; | ||||
| 	if (ctx->Polygon.SmoothFlag) return NULL; | ||||
| 	if (ctx->Polygon.StippleFlag) return NULL; | ||||
| 	if (ctx->Texture.Enabled) return NULL;   | ||||
| 	if (ctx->Texture.ReallyEnabled) return NULL;   | ||||
| 	if (ctx->Light.ShadeModel==GL_SMOOTH) return NULL; | ||||
| 	if (ctx->Depth.Test && ctx->Depth.Func != GL_LESS) return NULL; | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: fbdev_mode.c,v 1.4 2000/01/07 08:34:44 jtaylor Exp $ | ||||
| /* $Id: fbdev_mode.c,v 1.4.4.1 2000/11/15 10:27:44 jtaylor Exp $ | ||||
| ****************************************************************************** | ||||
|  | ||||
|    display-fbdev-mesa | ||||
| @@ -80,7 +80,7 @@ static int do_setmode(ggi_visual *vis) | ||||
| 	priv->have_accel = 0; | ||||
| 	for (id = 1; GGIMesa_fbdev_getapi(vis, id, libname, libargs) == 0; id++)  | ||||
| 	{ | ||||
| 		if (_ggiOpenDL(vis, libname, libargs, NULL) == NULL)  | ||||
| 		if (_ggiOpenDL(vis, libname, libargs, NULL) == 0)  | ||||
| 		{ | ||||
| 			fprintf(stderr, "display-fbdev-mesa: Error opening the " | ||||
| 				"%s (%s) library.\n", libname, libargs); | ||||
| @@ -91,7 +91,7 @@ static int do_setmode(ggi_visual *vis) | ||||
| 	} | ||||
|  | ||||
| 	if (priv->oldpriv->accel && | ||||
| 	    _ggiOpenDL(vis, priv->accel, NULL, NULL) != NULL) { | ||||
| 	    _ggiOpenDL(vis, priv->accel, NULL, NULL) != 0) { | ||||
| 		priv->have_accel = 1; | ||||
| 	}  | ||||
| 	else  | ||||
|   | ||||
| @@ -14,7 +14,7 @@ struct fbdev_priv_mesa | ||||
| 	char *accel; | ||||
| 	int have_accel; | ||||
| 	void *accelpriv; | ||||
| 	fbdev_hook *oldpriv;	/* Hooks back to the LibGGI fbdev target's private data */ | ||||
| 	ggi_fbdev_priv *oldpriv;	/* Hooks back to the LibGGI fbdev target's private data */ | ||||
| }; | ||||
|  | ||||
| #endif /* _GGIMESA_DISPLAY_FBDEV_H */ | ||||
|   | ||||
| @@ -725,6 +725,8 @@ void GLAPIENTRY gl3DfxSetPaletteEXT(GLuint *pal) | ||||
| static GrScreenResolution_t fxBestResolution(int width, int height, int aux) | ||||
| { | ||||
|   static int resolutions[][5]={  | ||||
|     { 320, 200, GR_RESOLUTION_320x200, 2, 2 }, | ||||
|     { 320, 240, GR_RESOLUTION_320x240, 2, 2 }, | ||||
|     { 512, 384, GR_RESOLUTION_512x384, 2, 2 }, | ||||
|     { 640, 400, GR_RESOLUTION_640x400, 2, 2 }, | ||||
|     { 640, 480, GR_RESOLUTION_640x480, 2, 2 }, | ||||
| @@ -734,15 +736,15 @@ static GrScreenResolution_t fxBestResolution(int width, int height, int aux) | ||||
|     ,{ 1024, 768, GR_RESOLUTION_1024x768, 8, 4 } | ||||
| #endif | ||||
| #ifdef GR_RESOLUTION_1280x1024 | ||||
|     ,{ 1024, 768, GR_RESOLUTION_1280x1024, 8, 8 } | ||||
|     ,{ 1280, 1024, GR_RESOLUTION_1280x1024, 8, 8 } | ||||
| #endif | ||||
| #ifdef GR_RESOLUTION_1600x1200 | ||||
|     ,{ 1024, 768, GR_RESOLUTION_1600x1200, 16, 8 } | ||||
|     ,{ 1600, 1200, GR_RESOLUTION_1600x1200, 16, 8 } | ||||
| #endif | ||||
|   }; | ||||
|   int NUM_RESOLUTIONS = sizeof(resolutions) / (sizeof(int)*5); | ||||
|   int i,fbmem; | ||||
|   GrScreenResolution_t lastvalidres=resolutions[1][2]; | ||||
|   GrScreenResolution_t lastvalidres=resolutions[4][2]; | ||||
|  | ||||
|   fxQueryHardware(); | ||||
|  | ||||
| @@ -943,7 +945,7 @@ fxMesaContext GLAPIENTRY fxMesaCreateContext(GLuint win, | ||||
|    fxMesa->haveDoubleBuffer=doubleBuffer; | ||||
|    fxMesa->haveAlphaBuffer=alphaBuffer; | ||||
|    fxMesa->haveGlobalPaletteTexture=GL_FALSE; | ||||
|    fxMesa->haveZBuffer=depthSize ? 1 : 0; | ||||
|    fxMesa->haveZBuffer=depthSize ? 16 : 0; | ||||
|    fxMesa->verbose=verbose; | ||||
|    fxMesa->board=glbCurrentBoard; | ||||
|  | ||||
|   | ||||
| @@ -274,6 +274,8 @@ static GLbitfield fxDDClear(GLcontext *ctx, GLbitfield mask, GLboolean all, | ||||
|       FX_grColorMask(FXTRUE, ctx->Color.ColorMask[ACOMP] && fxMesa->haveAlphaBuffer); | ||||
|       if (ctx->Color.DrawDestMask & FRONT_LEFT_BIT) | ||||
|         FX_grRenderBuffer(GR_BUFFER_FRONTBUFFER); | ||||
|       if (!ctx->Depth.Test || !ctx->Depth.Mask) | ||||
|         FX_grDepthMask(FXFALSE); | ||||
|       break; | ||||
|     default: | ||||
|       /* error */ | ||||
|   | ||||
| @@ -274,7 +274,7 @@ typedef struct { | ||||
| } tfxMipMapLevel; | ||||
|  | ||||
| typedef struct tfxTexInfo_t { | ||||
|   struct tfxTexInfo *next; | ||||
|   struct tfxTexInfo_t *next; | ||||
|   struct gl_texture_object *tObj; | ||||
|  | ||||
|   GLuint lastTimeUsed; | ||||
|   | ||||
| @@ -1,21 +1,21 @@ | ||||
| /* $Id: osmesa.c,v 1.19 2000/06/27 21:42:14 brianp Exp $ */ | ||||
| /* $Id: osmesa.c,v 1.19.4.4 2001/02/08 23:51:27 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  *  | ||||
|  * | ||||
|  * 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"), | ||||
|  * 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 | ||||
| @@ -103,7 +103,7 @@ OSMesaCreateContext( GLenum format, OSMesaContext sharelist ) | ||||
|    OSMesaContext osmesa; | ||||
|    GLint rshift, gshift, bshift, ashift; | ||||
|    GLint rind, gind, bind; | ||||
|    GLint indexBits, alphaBits; | ||||
|    GLint indexBits, alphaBits = 0; | ||||
|    GLboolean rgbmode; | ||||
|    GLboolean swalpha; | ||||
|    GLuint i4 = 1; | ||||
| @@ -227,6 +227,7 @@ OSMesaCreateContext( GLenum format, OSMesaContext sharelist ) | ||||
|       gl_extensions_enable(&(osmesa->gl_ctx),"GL_HP_occlusion_test"); | ||||
|       gl_extensions_enable(&(osmesa->gl_ctx), "GL_ARB_texture_cube_map"); | ||||
|       gl_extensions_enable(&(osmesa->gl_ctx), "GL_EXT_texture_env_combine"); | ||||
|       gl_extensions_enable(&(osmesa->gl_ctx), "GL_EXT_texture_env_dot3"); | ||||
|  | ||||
|       osmesa->gl_buffer = gl_create_framebuffer( osmesa->gl_visual, | ||||
|                                            osmesa->gl_visual->DepthBits > 0, | ||||
| @@ -489,7 +490,10 @@ OSMesaGetDepthBuffer( OSMesaContext c, GLint *width, GLint *height, | ||||
|    else { | ||||
|       *width = c->gl_buffer->Width; | ||||
|       *height = c->gl_buffer->Height; | ||||
|       *bytesPerValue = sizeof(GLdepth); | ||||
|       if (c->gl_visual->DepthBits <= 16) | ||||
|          *bytesPerValue = sizeof(GLushort); | ||||
|       else | ||||
|          *bytesPerValue = sizeof(GLuint); | ||||
|       *buffer = c->gl_buffer->DepthBuffer; | ||||
|       return GL_TRUE; | ||||
|    } | ||||
| @@ -1357,7 +1361,7 @@ static line_func choose_line_function( GLcontext *ctx ) | ||||
|    OSMesaContext osmesa = (OSMesaContext) ctx; | ||||
|  | ||||
|    if (ctx->Line.SmoothFlag)              return NULL; | ||||
|    if (ctx->Texture.Enabled)              return NULL; | ||||
|    if (ctx->Texture.ReallyEnabled)        return NULL; | ||||
|    if (ctx->Light.ShadeModel!=GL_FLAT)    return NULL; | ||||
|  | ||||
|    if (ctx->Line.Width==1.0F | ||||
| @@ -1543,7 +1547,7 @@ static triangle_func choose_triangle_function( GLcontext *ctx ) | ||||
|  | ||||
|    if (ctx->Polygon.SmoothFlag)     return NULL; | ||||
|    if (ctx->Polygon.StippleFlag)    return NULL; | ||||
|    if (ctx->Texture.Enabled)        return NULL; | ||||
|    if (ctx->Texture.ReallyEnabled)  return NULL; | ||||
|  | ||||
|    if (ctx->RasterMask==DEPTH_BIT | ||||
|        && ctx->Depth.Func==GL_LESS | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: wgl.c,v 1.2 1999/09/19 09:59:20 tjump Exp $ */ | ||||
| /* $Id: wgl.c,v 1.2.6.1 2000/08/02 20:28:19 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
| * This library is free software; you can redistribute it and/or | ||||
| @@ -30,8 +30,9 @@ extern "C" { | ||||
| #endif | ||||
|  | ||||
| #include <windows.h> | ||||
|  | ||||
| #define GL_GLEXT_PROTOTYPES | ||||
| #include <GL/gl.h> | ||||
| #include <GL/glext.h> | ||||
| //#include <GL/glu.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| @@ -90,7 +91,7 @@ struct __extensions__	ext[] = { | ||||
|    { (PROC)glGetColorTableParameterivEXT,	"glGetColorTableParameterivEXT"	}, | ||||
|    { (PROC)glPointParameterfEXT,		"glPointParameterfEXT"		}, | ||||
|    { (PROC)glPointParameterfvEXT,		"glPointParameterfvEXT"		}, | ||||
|    { (PROC)glBlendFuncSeparateINGR,		"glBlendFuncSeparateINGR"	}, | ||||
|    { (PROC)glBlendFuncSeparateEXT,		"glBlendFuncSeparateEXT"	}, | ||||
|    { (PROC)glLockArraysEXT,			"glLockArraysEXT"		}, | ||||
|    { (PROC)glUnlockArraysEXT,			"glUnlockArraysEXT"		} | ||||
| }; | ||||
|   | ||||
| @@ -1,69 +1,20 @@ | ||||
| /* $Id: wmesa.c,v 1.3 2000/03/03 23:21:57 brianp Exp $ */ | ||||
| /* $Id: wmesa.c,v 1.3.4.3 2000/09/28 22:39:43 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
| *   File name   :   wmesa.c | ||||
| *  Version      :   2.3 | ||||
| * | ||||
| *  Display driver for Mesa 2.3  under | ||||
| *   Windows95 and WindowsNT | ||||
| * | ||||
| *   Copyright (C) 1996-  Li Wei | ||||
| *  Address      :       Institute of Artificial Intelligence | ||||
| *               :           & Robotics | ||||
| *               :       Xi'an Jiaotong University | ||||
| *  Email        :       liwei@aiar.xjtu.edu.cn | ||||
| *  Web page :       http://sun.aiar.xjtu.edu.cn | ||||
| * | ||||
| *  This file and its associations are partially borrowed from the | ||||
| *  Windows NT driver for Mesa 1.8 , written by Mark Leaming | ||||
| *  (mark@rsinc.com). | ||||
| */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * $Log: wmesa.c,v $ | ||||
|  * Revision 1.3  2000/03/03 23:21:57  brianp | ||||
|  * removed obsolete logicop function | ||||
|  * Windows (Win32) device driver for Mesa 3.4 | ||||
|  * | ||||
|  * Revision 1.2  2000/02/17 20:52:02  brianp | ||||
|  * replaced renderer_string() with get_string() func | ||||
|  * Original author: | ||||
|  * | ||||
|  * Revision 1.1.1.1  1999/08/19 00:55:42  jtg | ||||
|  * Imported sources | ||||
|  * | ||||
|  * Revision 3.10  1999/06/15 01:35:06  brianp | ||||
|  * small change to wmSetPixel() from TWILMOT@cpr.fr | ||||
|  * | ||||
|  * Revision 3.9  1999/05/11 19:06:01  brianp | ||||
|  * fixed a few VB->Index bugs (mikec@ensoniq.com) | ||||
|  * | ||||
|  * Revision 3.8  1999/05/08 15:15:23  brianp | ||||
|  * various updates from mikec@ensoniq.com | ||||
|  * | ||||
|  * Revision 3.7  1999/04/01 01:27:34  brianp | ||||
|  * always flip Y coord in read_rgba_span() | ||||
|  * | ||||
|  * Revision 3.6  1999/03/28 21:17:27  brianp | ||||
|  * updated SetBuffer driver function | ||||
|  * | ||||
|  * Revision 3.5  1999/03/16 01:36:42  brianp | ||||
|  * patched dither() to check if Current is NULL, per xzhou@nyx.net | ||||
|  * | ||||
|  * Revision 3.4  1999/02/25 14:12:33  keithw | ||||
|  * Merged in kw3 patch | ||||
|  * | ||||
|  * Revision 3.3  1999/01/03 03:08:57  brianp | ||||
|  * Ted Jump's changes | ||||
|  * | ||||
|  * Revision 3.2  1998/08/29 00:26:01 | ||||
|  * updated for Mesa 3.0 to accomodate EGCS-Mingw32 build | ||||
|  * | ||||
|  * Revision 3.1  1998/06/11 01:42:08  brianp | ||||
|  * updated for Mesa 3.0 device driver interface (but not tested) | ||||
|  * | ||||
|  * Revision 3.0  1998/06/11 01:18:25  brianp | ||||
|  * initial revision | ||||
|  *  Copyright (C) 1996-  Li Wei | ||||
|  *  Address      :       Institute of Artificial Intelligence | ||||
|  *               :           & Robotics | ||||
|  *               :       Xi'an Jiaotong University | ||||
|  *  Email        :       liwei@aiar.xjtu.edu.cn | ||||
|  *  Web page :       http://sun.aiar.xjtu.edu.cn | ||||
|  * | ||||
|  *  This file and its associations are partially borrowed from the | ||||
|  *  Windows NT driver for Mesa 1.8 , written by Mark Leaming | ||||
|  *  (mark@rsinc.com). | ||||
|  */ | ||||
|  | ||||
|  | ||||
| @@ -84,7 +35,7 @@ | ||||
| #include "depth.h" | ||||
| #include "wmesadef.h" | ||||
|  | ||||
| #pragma warning ( disable : 4133 4761 ) | ||||
| #pragma warning ( disable : 4100 4133 4761 ) | ||||
|  | ||||
| #ifdef PROFILE | ||||
| //  #include "profile.h" | ||||
| @@ -430,9 +381,9 @@ static void clear_color( GLcontext* ctx, GLubyte r, GLubyte g, GLubyte b, GLubyt | ||||
| */ | ||||
| //static void clear(GLcontext* ctx, | ||||
| //                  GLboolean all,GLint x, GLint y, GLint width, GLint height ) | ||||
| // TODO: I modified this function to match the prototype in dd.h. (swansma@geocities.com) | ||||
| //       dd.h does not explain what the return type is so I could not set this to the proper | ||||
| //       value. | ||||
| // TODO: I modified this function to match the prototype in | ||||
| //       dd.h. (swansma@geocities.com) | ||||
|  | ||||
| static GLbitfield clear(GLcontext* ctx, GLbitfield mask, | ||||
|                   GLboolean all, GLint x, GLint y, GLint width, GLint height) | ||||
| { | ||||
| @@ -599,7 +550,7 @@ static void dither( GLcontext* ctx, GLboolean enable ) | ||||
|  | ||||
|  | ||||
|  | ||||
| static GLboolean set_buffer( GLcontext* ctx, GLenum mode ) | ||||
| static GLboolean set_draw_buffer( GLcontext* ctx, GLenum mode ) | ||||
| { | ||||
|    STARTPROFILE | ||||
|    /* TODO: this could be better */ | ||||
| @@ -609,7 +560,15 @@ static GLboolean set_buffer( GLcontext* ctx, GLenum mode ) | ||||
|    else { | ||||
|       return GL_FALSE; | ||||
|    } | ||||
|    ENDPROFILE(set_buffer) | ||||
|    ENDPROFILE(set_draw_buffer) | ||||
| } | ||||
|  | ||||
|  | ||||
| static void set_read_buffer(GLcontext *ctx, GLframebuffer *colorBuffer, | ||||
|                             GLenum buffer ) | ||||
| { | ||||
|    /* XXX todo */ | ||||
|    return; | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -711,7 +670,7 @@ extern points_func choose_points_function( GLcontext* ctx ) | ||||
| { | ||||
|     STARTPROFILE | ||||
|         if (ctx->Point.Size==1.0 && !ctx->Point.SmoothFlag && ctx->RasterMask==0 | ||||
|             && !ctx->Texture.Enabled  && ctx->Visual->RGBAflag) { | ||||
|             && !ctx->Texture.ReallyEnabled  && ctx->Visual->RGBAflag) { | ||||
|             ENDPROFILE(choose_points_function) | ||||
|                 return fast_rgb_points; | ||||
|         } | ||||
| @@ -769,7 +728,7 @@ static line_func choose_line_function( GLcontext* ctx ) | ||||
|     STARTPROFILE | ||||
|     if (ctx->Line.Width==1.0 && !ctx->Line.SmoothFlag && !ctx->Line.StippleFlag | ||||
|         && ctx->Light.ShadeModel==GL_FLAT && ctx->RasterMask==0 | ||||
|         && !ctx->Texture.Enabled && Current->rgb_flag) { | ||||
|         && !ctx->Texture.ReallyEnabled && Current->rgb_flag) { | ||||
|        ENDPROFILE(choose_line_function) | ||||
|        return fast_flat_rgb_line; | ||||
|     } | ||||
| @@ -1176,7 +1135,8 @@ void setup_DD_pointers( GLcontext* ctx ) | ||||
|  | ||||
|     ctx->Driver.Dither = dither; | ||||
|  | ||||
|     ctx->Driver.SetBuffer = set_buffer; | ||||
|     ctx->Driver.SetDrawBuffer = set_draw_buffer; | ||||
|     ctx->Driver.SetReadBuffer = set_read_buffer; | ||||
|     ctx->Driver.GetBufferSize = buffer_size; | ||||
|  | ||||
|     ctx->Driver.PointsFunc = choose_points_function(ctx); | ||||
| @@ -1364,7 +1324,11 @@ WMesaContext WMesaCreateContext( HWND hWnd, HPALETTE* Pal, | ||||
|         return NULL; | ||||
|     } | ||||
|  | ||||
|     c->gl_buffer = gl_create_framebuffer( c->gl_visual ); | ||||
|     c->gl_buffer = gl_create_framebuffer( c->gl_visual, | ||||
|                                           c->gl_visual->DepthBits > 0, | ||||
|                                           c->gl_visual->StencilBits > 0, | ||||
|                                           c->gl_visual->AccumRedBits > 0, | ||||
|                                           c->gl_visual->AlphaBits > 0 ); | ||||
|     if (!c->gl_buffer) { | ||||
|         gl_destroy_visual( c->gl_visual ); | ||||
|         gl_destroy_context( c->gl_ctx ); | ||||
| @@ -2153,6 +2117,7 @@ static void smooth_8A8B8G8R_z_triangle( GLcontext *ctx, | ||||
| { | ||||
|     WMesaContext wmesa = (WMesaContext) ctx->DriverCtx; | ||||
| #define INTERP_Z 1 | ||||
| #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE | ||||
| #define INTERP_RGB 1 | ||||
| #define PIXEL_ADDRESS(X,Y) PIXELADDR4(X,Y) | ||||
| #define PIXEL_TYPE GLuint | ||||
| @@ -2907,7 +2872,7 @@ static triangle_func choose_triangle_function( GLcontext *ctx ) | ||||
|     int depth = wmesa->cColorBits; | ||||
|  | ||||
|     if (ctx->Polygon.SmoothFlag)     return NULL; | ||||
|     if (ctx->Texture.Enabled)        return NULL; | ||||
|     if (ctx->Texture.ReallyEnabled)  return NULL; | ||||
|     if (!wmesa->db_flag) return NULL; | ||||
|     /*if (wmesa->xm_buffer->buffer==XIMAGE)*/ { | ||||
|     if (   ctx->Light.ShadeModel==GL_SMOOTH | ||||
|   | ||||
| @@ -458,7 +458,7 @@ extern points_func choose_points_function( GLcontext* ctx ) | ||||
| { | ||||
|    STARTPROFILE | ||||
|    if (ctx->Point.Size==1.0 && !ctx->Point.SmoothFlag && ctx->RasterMask==0 | ||||
|        && !ctx->Texture.Enabled  && ctx->Visual->RGBAflag) { | ||||
|        && !ctx->Texture.ReallyEnabled  && ctx->Visual->RGBAflag) { | ||||
|    ENDPROFILE(choose_points_function) | ||||
|       return fast_rgb_points; | ||||
|    } | ||||
| @@ -516,7 +516,7 @@ static line_func choose_line_function( GLcontext* ctx ) | ||||
| 	STARTPROFILE | ||||
|    if (ctx->Line.Width==1.0 && !ctx->Line.SmoothFlag && !ctx->Line.StippleFlag | ||||
|        && ctx->Light.ShadeModel==GL_FLAT && ctx->RasterMask==0 | ||||
|        && !ctx->Texture.Enabled && Current->rgb_flag) { | ||||
|        && !ctx->Texture.ReallyEnabled && Current->rgb_flag) { | ||||
|    ENDPROFILE(choose_line_function) | ||||
|       return fast_flat_rgb_line; | ||||
|    } | ||||
| @@ -627,7 +627,7 @@ static triangle_func choose_triangle_function( GLcontext *ctx ) | ||||
| { | ||||
|    if (ctx->Polygon.SmoothFlag)     return NULL; | ||||
|    if (ctx->Polygon.StippleFlag)    return NULL; | ||||
|    if (ctx->Texture.Enabled)        return NULL; | ||||
|    if (ctx->Texture.ReallyEnabled)  return NULL; | ||||
|  | ||||
|    if (ctx->RasterMask==DEPTH_BIT | ||||
|        && ctx->Depth.Func==GL_LESS | ||||
| @@ -698,7 +698,7 @@ static polygon_func choose_polygon_function( GLcontext* ctx ) | ||||
| 	STARTPROFILE | ||||
|    if (!ctx->Polygon.SmoothFlag && !ctx->Polygon.StippleFlag | ||||
|        && ctx->Light.ShadeModel==GL_FLAT && ctx->RasterMask==0 | ||||
|        && !ctx->Texture.Enabled && Current->rgb_flag==GL_TRUE) { | ||||
|        && !ctx->Texture.ReallyEnabled && Current->rgb_flag==GL_TRUE) { | ||||
|    ENDPROFILE(choose_polygon_function) | ||||
|       return fast_flat_rgb_polygon; | ||||
|    } | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: fakeglx.c,v 1.34 2000/06/08 22:50:28 brianp Exp $ */ | ||||
| /* $Id: fakeglx.c,v 1.34.4.7 2001/01/24 04:49:27 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -31,7 +31,7 @@ | ||||
|  * | ||||
|  * Thanks to the contributors: | ||||
|  * | ||||
|  * Initial version:  Philip Brown (philb@CSUA.Berkeley.EDU) | ||||
|  * Initial version:  Philip Brown (phil@bolthole.com) | ||||
|  * Better glXGetConfig() support: Armin Liebchen (liebchen@asylum.cs.utah.edu) | ||||
|  * Further visual-handling refinements: Wolfram Gloger | ||||
|  *    (wmglo@Dent.MED.Uni-Muenchen.DE). | ||||
| @@ -65,7 +65,7 @@ | ||||
| #define SERVER_MINOR_VERSION 3 | ||||
|  | ||||
| /* This is appended onto the glXGetClient/ServerString version strings. */ | ||||
| #define MESA_GLX_VERSION "Mesa 3.3" | ||||
| #define MESA_GLX_VERSION "Mesa 3.4.1" | ||||
|  | ||||
| /* Who implemented this GLX? */ | ||||
| #define VENDOR "Brian Paul" | ||||
| @@ -561,7 +561,7 @@ static XVisualInfo *choose_x_visual( Display *dpy, int screen, | ||||
|                                      int preferred_class ) | ||||
| { | ||||
|    XVisualInfo *vis; | ||||
|    int xclass, visclass; | ||||
|    int xclass, visclass = 0; | ||||
|    int depth; | ||||
|  | ||||
|    if (rgba) { | ||||
| @@ -858,7 +858,7 @@ Fake_glXChooseVisual( Display *dpy, int screen, int *list ) | ||||
|    int *parselist; | ||||
|    XVisualInfo *vis; | ||||
|    int min_ci = 0; | ||||
|    int min_red=0, min_green=0, min_blue=0; | ||||
|    int min_red=0, min_green=0, min_blue=0, min_alpha=0; | ||||
|    GLboolean rgb_flag = GL_FALSE; | ||||
|    GLboolean alpha_flag = GL_FALSE; | ||||
|    GLboolean double_flag = GL_FALSE; | ||||
| @@ -922,10 +922,8 @@ Fake_glXChooseVisual( Display *dpy, int screen, int *list ) | ||||
| 	    break; | ||||
| 	 case GLX_ALPHA_SIZE: | ||||
| 	    parselist++; | ||||
|             { | ||||
|                GLint size = *parselist++; | ||||
|                alpha_flag = size>0 ? 1 : 0; | ||||
|             } | ||||
|             min_alpha = *parselist++; | ||||
|             alpha_flag = (min_alpha > 0); | ||||
| 	    break; | ||||
| 	 case GLX_DEPTH_SIZE: | ||||
| 	    parselist++; | ||||
| @@ -1004,6 +1002,16 @@ Fake_glXChooseVisual( Display *dpy, int screen, int *list ) | ||||
|       } | ||||
|    } | ||||
|  | ||||
|    /* DEBUG | ||||
|    printf("glXChooseVisual:\n"); | ||||
|    printf("  GLX_RED_SIZE = %d\n", min_red); | ||||
|    printf("  GLX_GREEN_SIZE = %d\n", min_green); | ||||
|    printf("  GLX_BLUE_SIZE = %d\n", min_blue); | ||||
|    printf("  GLX_ALPHA_SIZE = %d\n", min_alpha); | ||||
|    printf("  GLX_DEPTH_SIZE = %d\n", depth_size); | ||||
|    printf("  GLX_STENCIL_SIZE = %d\n", stencil_size); | ||||
|    */ | ||||
|  | ||||
|    /* | ||||
|     * Since we're only simulating the GLX extension this function will never | ||||
|     * find any real GL visuals.  Instead, all we can do is try to find an RGB | ||||
| @@ -1050,15 +1058,32 @@ Fake_glXChooseVisual( Display *dpy, int screen, int *list ) | ||||
|    if (vis) { | ||||
|       /* Note: we're not exactly obeying the glXChooseVisual rules here. | ||||
|        * When GLX_DEPTH_SIZE = 1 is specified we're supposed to choose the | ||||
|        * largest depth buffer size, which is 32bits/value.  However, we | ||||
|        * largest depth buffer size, which is 32bits/value.  Instead, we | ||||
|        * return 16 to maintain performance with earlier versions of Mesa. | ||||
|        */ | ||||
|       if (depth_size == 1) | ||||
|          depth_size = DEFAULT_SOFTWARE_DEPTH_BITS; | ||||
|       else if (depth_size > 24) | ||||
|          depth_size = 31; | ||||
|       if (depth_size > 24) | ||||
|          depth_size = 31;   /* 32 causes int overflow problems */ | ||||
|       else if (depth_size > 16) | ||||
|          depth_size = 24; | ||||
|       else if (depth_size > 0) | ||||
|          depth_size = DEFAULT_SOFTWARE_DEPTH_BITS; /*16*/ | ||||
|  | ||||
|       /* If using Glide, make sure we don't try to setup an impossible | ||||
|        * visual.  This fixes the Q3 bug in which 24-bit Z was being reported. | ||||
|        */ | ||||
|       { | ||||
|          const char *fx = getenv("MESA_GLX_FX"); | ||||
|          if (fx && fx[0] != 'd') | ||||
|             if (depth_size > 16 || | ||||
|                 stencil_size > 0 || | ||||
|                 (min_red > 1 && min_red > 5) || | ||||
|                 (min_green > 1 && min_green > 6) || | ||||
|                 (min_blue > 1 && min_blue > 5) || | ||||
|                 alpha_flag) | ||||
|                return NULL; | ||||
|       } | ||||
|  | ||||
|  | ||||
|       /* we only support one size of stencil and accum buffers. */ | ||||
|       if (stencil_size > 0) | ||||
|          stencil_size = STENCIL_BITS; | ||||
| @@ -1838,7 +1863,7 @@ struct _glxapi_table *_mesa_GetGLXDispatchTable(void) | ||||
|    { | ||||
|       int size = sizeof(struct _glxapi_table) / sizeof(void *); | ||||
|       (void) size; | ||||
|       assert(_glxapi_get_dispatch_table_size() >= size); | ||||
|       assert((GLint) _glxapi_get_dispatch_table_size() >= size); | ||||
|    } | ||||
|  | ||||
|    /* initialize the whole table to no-ops */ | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: glxheader.h,v 1.1 1999/11/11 01:29:28 brianp Exp $ */ | ||||
| /* $Id: glxheader.h,v 1.1.4.1 2001/02/09 08:25:18 joukj Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -28,6 +28,10 @@ | ||||
| #ifndef GLX_HEADER_H | ||||
| #define GLX_HEADER_H | ||||
|  | ||||
| #ifdef VMS | ||||
| #include <vms_x_fix.h> | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #include "conf.h" | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: xfonts.c,v 1.6 2000/04/19 01:44:02 brianp Exp $ */ | ||||
| /* $Id: xfonts.c,v 1.6.4.4 2001/02/09 08:25:18 joukj Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  * | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -34,6 +34,11 @@ | ||||
| #include "conf.h" | ||||
| #endif | ||||
|  | ||||
| #ifdef VMS | ||||
| #include <GL/vms_x_fix.h> | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| @@ -41,11 +46,9 @@ | ||||
| #include <X11/Xutil.h> | ||||
| #include "GL/gl.h" | ||||
| #include "GL/glx.h" | ||||
| #include "GL/xmesa.h" | ||||
| #include "context.h" | ||||
| #include "mem.h" | ||||
| #include "xfonts.h" | ||||
| #include "xmesaP.h" | ||||
|  | ||||
|  | ||||
| /* Some debugging info.  */ | ||||
| @@ -182,7 +185,7 @@ fill_bitmap (Display *dpy, Window win, GC gc, | ||||
| static XCharStruct *isvalid(XFontStruct *fs, int which) | ||||
| { | ||||
|   unsigned int  rows,pages; | ||||
|   int           byte1,byte2; | ||||
|   int           byte1 = 0,byte2 = 0; | ||||
|   int           i,valid = 1; | ||||
|  | ||||
|   rows = fs->max_byte1 - fs->min_byte1 + 1; | ||||
| @@ -223,7 +226,6 @@ static XCharStruct *isvalid(XFontStruct *fs, int which) | ||||
|  | ||||
| void Fake_glXUseXFont( Font font, int first, int count, int listbase ) | ||||
| { | ||||
|   XMesaContext CC; | ||||
|   Display *dpy; | ||||
|   Window win; | ||||
|   Pixmap pixmap; | ||||
| @@ -231,26 +233,23 @@ void Fake_glXUseXFont( Font font, int first, int count, int listbase ) | ||||
|   XGCValues values; | ||||
|   unsigned long valuemask; | ||||
|   XFontStruct *fs; | ||||
|  | ||||
|   GLint swapbytes, lsbfirst, rowlength; | ||||
|   GLint skiprows, skippixels, alignment; | ||||
|  | ||||
|   unsigned int max_width, max_height, max_bm_width, max_bm_height; | ||||
|   GLubyte *bm; | ||||
|  | ||||
|   int i; | ||||
|  | ||||
|   CC = XMesaGetCurrentContext(); | ||||
|   dpy = CC->display; | ||||
|   win = CC->xm_buffer->frontbuffer; | ||||
|   dpy = glXGetCurrentDisplay(); | ||||
|   if (!dpy) | ||||
|      return;  /* I guess glXMakeCurrent wasn't called */ | ||||
|   win = RootWindow(dpy, DefaultScreen(dpy)); | ||||
|  | ||||
|   fs = XQueryFont (dpy, font); | ||||
|   if (!fs) | ||||
|     { | ||||
|       gl_error (CC->gl_ctx, GL_INVALID_VALUE, | ||||
|                 "Couldn't get font structure information"); | ||||
|   if (!fs) { | ||||
|       gl_error(NULL, GL_INVALID_VALUE, | ||||
|                "Couldn't get font structure information"); | ||||
|       return; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* Allocate a bitmap that can fit all characters.  */ | ||||
|   max_width = fs->max_bounds.rbearing - fs->min_bounds.lbearing; | ||||
| @@ -262,10 +261,10 @@ void Fake_glXUseXFont( Font font, int first, int count, int listbase ) | ||||
| (GLubyte)); | ||||
|   if (!bm) { | ||||
|       XFreeFontInfo( NULL, fs, 0 ); | ||||
|       gl_error (CC->gl_ctx, GL_OUT_OF_MEMORY, | ||||
|       gl_error(NULL, GL_OUT_OF_MEMORY, | ||||
|                 "Couldn't allocate bitmap in glXUseXFont()"); | ||||
|       return; | ||||
|     } | ||||
|   } | ||||
|  | ||||
| #if 0 | ||||
|   /* get the page info */ | ||||
| @@ -387,16 +386,3 @@ bm_height); | ||||
|   glPixelStorei(GL_UNPACK_SKIP_PIXELS, skippixels); | ||||
|   glPixelStorei(GL_UNPACK_ALIGNMENT, alignment); | ||||
| } | ||||
|  | ||||
|  | ||||
| extern void xmesa_xfonts_dummy( void ); | ||||
| void xmesa_xfonts_dummy( void ) | ||||
| { | ||||
|    /* silence unused var warnings */ | ||||
|    (void) kernel8; | ||||
|    (void) DitherValues; | ||||
|    (void) HPCR_DRGB; | ||||
|    (void) kernel1; | ||||
| } | ||||
|  | ||||
| /* The End. */ | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: xfonts.h,v 1.1 2000/04/19 01:44:02 brianp Exp $ */ | ||||
| /* $Id: xfonts.h,v 1.1.4.1 2001/02/09 08:25:18 joukj Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -28,6 +28,10 @@ | ||||
| #ifndef XFONTS_H | ||||
| #define XFONTS_H | ||||
|  | ||||
| #ifdef VMS | ||||
| #include <vms_x_fix.h> | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #include <X11/Xlib.h> | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: glapi.c,v 1.42 2000/05/24 17:53:30 brianp Exp $ */ | ||||
| /* $Id: glapi.c,v 1.42.4.2 2000/11/05 21:24:00 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  * | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -1479,11 +1479,13 @@ get_static_proc_offset(const char *funcName) | ||||
| static GLvoid * | ||||
| get_static_proc_address(const char *funcName) | ||||
| { | ||||
|    GLint i = get_static_proc_offset(funcName); | ||||
|    if (i >= 0) | ||||
|       return static_functions[i].Address; | ||||
|    else | ||||
|       return NULL; | ||||
|    GLint i; | ||||
|    for (i = 0; static_functions[i].Name; i++) { | ||||
|       if (strcmp(static_functions[i].Name, funcName) == 0) { | ||||
|          return static_functions[i].Address; | ||||
|       } | ||||
|    } | ||||
|    return NULL; | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -1563,7 +1565,7 @@ _glapi_add_entrypoint(const char *funcName, GLuint offset) | ||||
|    { | ||||
|       GLint index = get_static_proc_offset(funcName); | ||||
|       if (index >= 0) { | ||||
|          return (GLboolean) (index == offset);  /* bad offset! */ | ||||
|          return (GLboolean) (index == (GLint) offset);  /* bad offset! */ | ||||
|       } | ||||
|    } | ||||
|  | ||||
| @@ -1671,7 +1673,7 @@ GLint | ||||
| _glapi_get_proc_offset(const char *funcName) | ||||
| { | ||||
|    /* search extension functions first */ | ||||
|    GLint i; | ||||
|    GLuint i; | ||||
|    for (i = 0; i < NumExtEntryPoints; i++) { | ||||
|       if (strcmp(ExtEntryTable[i].Name, funcName) == 0) { | ||||
|          return ExtEntryTable[i].Offset; | ||||
| @@ -1691,7 +1693,7 @@ const GLvoid * | ||||
| _glapi_get_proc_address(const char *funcName) | ||||
| { | ||||
|    /* search extension functions first */ | ||||
|    GLint i; | ||||
|    GLuint i; | ||||
|    for (i = 0; i < NumExtEntryPoints; i++) { | ||||
|       if (strcmp(ExtEntryTable[i].Name, funcName) == 0) { | ||||
|          return ExtEntryTable[i].Address; | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| #!/usr/bin/env python | ||||
|  | ||||
| # $Id: glx86asm.py,v 1.1 2000/05/11 23:14:57 brianp Exp $ | ||||
| # $Id: glx86asm.py,v 1.1.4.1 2000/09/06 17:33:32 brianp Exp $ | ||||
|  | ||||
| # Mesa 3-D graphics library | ||||
| # Version:  3.3 | ||||
| # Version:  3.4 | ||||
| #  | ||||
| # Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
| #  | ||||
| @@ -48,9 +48,9 @@ def PrintHead(): | ||||
| 	print '#ifndef __WIN32__' | ||||
| 	print '' | ||||
| 	print '#if defined(USE_MGL_NAMESPACE)' | ||||
| 	print '#define GL_PREFIX(n) GLNAME(mgl ## n)' | ||||
| 	print '#define GL_PREFIX(n) GLNAME(CONCAT(mgl,n))' | ||||
| 	print '#else' | ||||
| 	print '#define GL_PREFIX(n) GLNAME(gl ## n)' | ||||
| 	print '#define GL_PREFIX(n) GLNAME(CONCAT(gl,n))' | ||||
| 	print '#endif' | ||||
| 	print '' | ||||
| 	print '#define GL_OFFSET(x) CODEPTR(REGOFF(4 * x, EAX))' | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: accum.c,v 1.23 2000/07/15 03:14:25 brianp Exp $ */ | ||||
| /* $Id: accum.c,v 1.23.2.2 2000/11/05 21:24:00 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -235,6 +235,8 @@ _mesa_Accum( GLenum op, GLfloat value ) | ||||
|          if (ctx->IntegerAccumMode && value != ctx->IntegerAccumScaler) | ||||
|             rescale_accum(ctx); | ||||
|              | ||||
|          RENDER_START(ctx); | ||||
|  | ||||
|          if (ctx->IntegerAccumMode) { | ||||
|             /* simply add integer color values into accum buffer */ | ||||
|             GLuint j; | ||||
| @@ -278,6 +280,7 @@ _mesa_Accum( GLenum op, GLfloat value ) | ||||
|          /* restore read buffer = draw buffer (the default) */ | ||||
|          (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, | ||||
|                                        ctx->Color.DriverDrawBuffer ); | ||||
|          RENDER_FINISH(ctx); | ||||
| 	 break; | ||||
|  | ||||
|       case GL_LOAD: | ||||
| @@ -298,6 +301,7 @@ _mesa_Accum( GLenum op, GLfloat value ) | ||||
|             ctx->IntegerAccumScaler = 0.0; | ||||
|          } | ||||
|  | ||||
|          RENDER_START(ctx); | ||||
|          if (ctx->IntegerAccumMode) { | ||||
|             /* just copy values into accum buffer */ | ||||
|             GLuint j; | ||||
| @@ -341,6 +345,7 @@ _mesa_Accum( GLenum op, GLfloat value ) | ||||
|          /* restore read buffer = draw buffer (the default) */ | ||||
|          (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, | ||||
|                                        ctx->Color.DriverDrawBuffer ); | ||||
|          RENDER_FINISH(ctx); | ||||
| 	 break; | ||||
|  | ||||
|       case GL_RETURN: | ||||
| @@ -348,16 +353,18 @@ _mesa_Accum( GLenum op, GLfloat value ) | ||||
|          if (ctx->IntegerAccumMode && value != 1.0) | ||||
|             rescale_accum(ctx); | ||||
|  | ||||
|          RENDER_START(ctx); | ||||
|          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 = MIN2((GLint) (256 / mult), 32767); | ||||
|             GLint k; | ||||
|             const GLint max = MIN2((GLuint) (256 / mult), 32767); | ||||
|             if (mult != prevMult) { | ||||
|                for (j = 0; j < max; j++) | ||||
|                   multTable[j] = (GLint) ((GLfloat) j * mult + 0.5F); | ||||
|                for (k = 0; k < max; k++) | ||||
|                   multTable[k] = (GLint) ((GLfloat) k * mult + 0.5F); | ||||
|                prevMult = mult; | ||||
|             } | ||||
|  | ||||
| @@ -380,7 +387,7 @@ _mesa_Accum( GLenum op, GLfloat value ) | ||||
|                   _mesa_mask_rgba_span( ctx, width, xpos, ypos, rgba ); | ||||
|                } | ||||
|                (*ctx->Driver.WriteRGBASpan)( ctx, width, xpos, ypos,  | ||||
|                                              (const GLubyte (*)[4])rgba, NULL ); | ||||
|                                           (CONST GLubyte (*)[4]) rgba, NULL ); | ||||
|                ypos++; | ||||
|             } | ||||
|          } | ||||
| @@ -407,10 +414,11 @@ _mesa_Accum( GLenum op, GLfloat value ) | ||||
|                   _mesa_mask_rgba_span( ctx, width, xpos, ypos, rgba ); | ||||
|                } | ||||
|                (*ctx->Driver.WriteRGBASpan)( ctx, width, xpos, ypos,  | ||||
|                                              (const GLubyte (*)[4])rgba, NULL ); | ||||
|                                           (CONST GLubyte (*)[4]) rgba, NULL ); | ||||
|                ypos++; | ||||
|             } | ||||
| 	 } | ||||
|          RENDER_FINISH(ctx); | ||||
| 	 break; | ||||
|  | ||||
|       default: | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: attrib.c,v 1.25 2000/07/19 18:34:00 brianp Exp $ */ | ||||
| /* $Id: attrib.c,v 1.25.2.3 2001/01/29 22:15:36 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4.1 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -29,13 +29,29 @@ | ||||
| #include "all.h" | ||||
| #else | ||||
| #include "glheader.h" | ||||
| #include "accum.h" | ||||
| #include "alpha.h" | ||||
| #include "attrib.h" | ||||
| #include "blend.h" | ||||
| #include "buffers.h" | ||||
| #include "clip.h" | ||||
| #include "context.h" | ||||
| #include "depth.h" | ||||
| #include "enable.h" | ||||
| #include "enums.h" | ||||
| #include "fog.h" | ||||
| #include "hint.h" | ||||
| #include "light.h" | ||||
| #include "lines.h" | ||||
| #include "logic.h" | ||||
| #include "masking.h" | ||||
| #include "matrix.h" | ||||
| #include "mem.h" | ||||
| #include "points.h" | ||||
| #include "polygon.h" | ||||
| #include "scissor.h" | ||||
| #include "simple_list.h" | ||||
| #include "stencil.h" | ||||
| #include "texstate.h" | ||||
| #include "types.h" | ||||
| #endif | ||||
| @@ -213,8 +229,8 @@ _mesa_PushAttrib(GLbitfield mask) | ||||
|       attr->RescaleNormals = ctx->Transform.RescaleNormals; | ||||
|       attr->Scissor = ctx->Scissor.Enabled; | ||||
|       attr->Stencil = ctx->Stencil.Enabled; | ||||
|       attr->Texture = ctx->Texture.Enabled; | ||||
|       for (i=0; i<MAX_TEXTURE_UNITS; i++) { | ||||
|          attr->Texture[i] = ctx->Texture.Unit[i].Enabled; | ||||
|          attr->TexGen[i] = ctx->Texture.Unit[i].TexGenEnabled; | ||||
|       } | ||||
|       newnode = new_attrib_node( GL_ENABLE_BIT ); | ||||
| @@ -393,6 +409,148 @@ _mesa_PushAttrib(GLbitfield mask) | ||||
|  | ||||
|  | ||||
|  | ||||
| static void | ||||
| pop_enable_group(GLcontext *ctx, const struct gl_enable_attrib *enable) | ||||
| { | ||||
|    GLuint i; | ||||
|  | ||||
| #define TEST_AND_UPDATE(VALUE, NEWVALUE, ENUM)		\ | ||||
| 	if ((VALUE) != (NEWVALUE)) {			\ | ||||
| 	   _mesa_set_enable( ctx, ENUM, (NEWVALUE) );	\ | ||||
| 	} | ||||
|  | ||||
|    TEST_AND_UPDATE(ctx->Color.AlphaEnabled, enable->AlphaTest, GL_ALPHA_TEST); | ||||
|    TEST_AND_UPDATE(ctx->Transform.Normalize, enable->AutoNormal, GL_NORMALIZE); | ||||
|    TEST_AND_UPDATE(ctx->Color.BlendEnabled, enable->Blend, GL_BLEND); | ||||
|  | ||||
|    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]); | ||||
|    } | ||||
|  | ||||
|    TEST_AND_UPDATE(ctx->Light.ColorMaterialEnabled, enable->ColorMaterial, | ||||
|                    GL_COLOR_MATERIAL); | ||||
|    TEST_AND_UPDATE(ctx->Polygon.CullFlag, enable->CullFace, GL_CULL_FACE); | ||||
|    TEST_AND_UPDATE(ctx->Depth.Test, enable->DepthTest, GL_DEPTH_TEST); | ||||
|    TEST_AND_UPDATE(ctx->Color.DitherFlag, enable->Dither, GL_DITHER); | ||||
|    TEST_AND_UPDATE(ctx->Pixel.Convolution1DEnabled, enable->Convolution1D, | ||||
|                    GL_CONVOLUTION_1D); | ||||
|    TEST_AND_UPDATE(ctx->Pixel.Convolution2DEnabled, enable->Convolution2D, | ||||
|                    GL_CONVOLUTION_2D); | ||||
|    TEST_AND_UPDATE(ctx->Pixel.Separable2DEnabled, enable->Separable2D, | ||||
|                    GL_SEPARABLE_2D); | ||||
|    TEST_AND_UPDATE(ctx->Fog.Enabled, enable->Fog, GL_FOG); | ||||
|    TEST_AND_UPDATE(ctx->Light.Enabled, enable->Lighting, GL_LIGHTING); | ||||
|    TEST_AND_UPDATE(ctx->Line.SmoothFlag, enable->LineSmooth, GL_LINE_SMOOTH); | ||||
|    TEST_AND_UPDATE(ctx->Line.StippleFlag, enable->LineStipple, | ||||
|                    GL_LINE_STIPPLE); | ||||
|    TEST_AND_UPDATE(ctx->Color.IndexLogicOpEnabled, enable->IndexLogicOp, | ||||
|                    GL_INDEX_LOGIC_OP); | ||||
|    TEST_AND_UPDATE(ctx->Color.ColorLogicOpEnabled, enable->ColorLogicOp, | ||||
|                    GL_COLOR_LOGIC_OP); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map1Color4, enable->Map1Color4, GL_MAP1_COLOR_4); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map1Index, enable->Map1Index, GL_MAP1_INDEX); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map1Normal, enable->Map1Normal, GL_MAP1_NORMAL); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord1, enable->Map1TextureCoord1, | ||||
|                    GL_MAP1_TEXTURE_COORD_1); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord2, enable->Map1TextureCoord2, | ||||
|                    GL_MAP1_TEXTURE_COORD_2); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord3, enable->Map1TextureCoord3, | ||||
|                    GL_MAP1_TEXTURE_COORD_3); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord4, enable->Map1TextureCoord4, | ||||
|                    GL_MAP1_TEXTURE_COORD_4); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map1Vertex3, enable->Map1Vertex3, | ||||
|                    GL_MAP1_VERTEX_3); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map1Vertex4, enable->Map1Vertex4, | ||||
|                    GL_MAP1_VERTEX_4); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map2Color4, enable->Map2Color4, GL_MAP2_COLOR_4); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map2Index, enable->Map2Index, GL_MAP2_INDEX); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map2Normal, enable->Map2Normal, GL_MAP2_NORMAL); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord1, enable->Map2TextureCoord1, | ||||
|                    GL_MAP2_TEXTURE_COORD_1); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord2, enable->Map2TextureCoord2, | ||||
|                    GL_MAP2_TEXTURE_COORD_2); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord3, enable->Map2TextureCoord3, | ||||
|                    GL_MAP2_TEXTURE_COORD_3); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord4, enable->Map2TextureCoord4, | ||||
|                    GL_MAP2_TEXTURE_COORD_4); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map2Vertex3, enable->Map2Vertex3, | ||||
|                    GL_MAP2_VERTEX_3); | ||||
|    TEST_AND_UPDATE(ctx->Eval.Map2Vertex4, enable->Map2Vertex4, | ||||
|                    GL_MAP2_VERTEX_4); | ||||
|    TEST_AND_UPDATE(ctx->Transform.Normalize, enable->Normalize, GL_NORMALIZE); | ||||
|    TEST_AND_UPDATE(ctx->Transform.RescaleNormals, enable->RescaleNormals, | ||||
|                    GL_RESCALE_NORMAL_EXT); | ||||
|    TEST_AND_UPDATE(ctx->Pixel.PixelTextureEnabled, enable->PixelTexture, | ||||
|                    GL_POINT_SMOOTH); | ||||
|    TEST_AND_UPDATE(ctx->Point.SmoothFlag, enable->PointSmooth, | ||||
|                    GL_POINT_SMOOTH); | ||||
|    TEST_AND_UPDATE(ctx->Polygon.OffsetPoint, enable->PolygonOffsetPoint, | ||||
|                    GL_POLYGON_OFFSET_POINT); | ||||
|    TEST_AND_UPDATE(ctx->Polygon.OffsetLine, enable->PolygonOffsetLine, | ||||
|                    GL_POLYGON_OFFSET_LINE); | ||||
|    TEST_AND_UPDATE(ctx->Polygon.OffsetFill, enable->PolygonOffsetFill, | ||||
|                    GL_POLYGON_OFFSET_FILL); | ||||
|    TEST_AND_UPDATE(ctx->Polygon.SmoothFlag, enable->PolygonSmooth, | ||||
|                    GL_POLYGON_SMOOTH); | ||||
|    TEST_AND_UPDATE(ctx->Polygon.StippleFlag, enable->PolygonStipple, | ||||
|                    GL_POLYGON_STIPPLE); | ||||
|    TEST_AND_UPDATE(ctx->Scissor.Enabled, enable->Scissor, GL_SCISSOR_TEST); | ||||
|    TEST_AND_UPDATE(ctx->Stencil.Enabled, enable->Stencil, GL_STENCIL_TEST); | ||||
| #undef TEST_AND_UPDATE | ||||
|  | ||||
|    /* texture unit enables */ | ||||
|    for (i = 0; i < ctx->Const.MaxTextureUnits; i++) { | ||||
|       if (ctx->Texture.Unit[i].Enabled != enable->Texture[i]) { | ||||
|          ctx->Texture.Unit[i].Enabled = enable->Texture[i]; | ||||
|          if (ctx->Driver.Enable) { | ||||
|             if (ctx->Driver.ActiveTexture) { | ||||
|                (*ctx->Driver.ActiveTexture)(ctx, i); | ||||
|             } | ||||
|             (*ctx->Driver.Enable)( ctx, GL_TEXTURE_1D, | ||||
|                              (GLboolean) (enable->Texture[i] & TEXTURE0_1D) ); | ||||
|             (*ctx->Driver.Enable)( ctx, GL_TEXTURE_2D, | ||||
|                              (GLboolean) (enable->Texture[i] & TEXTURE0_2D) ); | ||||
|             (*ctx->Driver.Enable)( ctx, GL_TEXTURE_3D, | ||||
|                              (GLboolean) (enable->Texture[i] & TEXTURE0_3D) ); | ||||
|          } | ||||
|       } | ||||
|  | ||||
|       if (ctx->Texture.Unit[i].TexGenEnabled != enable->TexGen[i]) { | ||||
|          ctx->Texture.Unit[i].TexGenEnabled = enable->TexGen[i]; | ||||
|          if (ctx->Driver.Enable) { | ||||
|             if (ctx->Driver.ActiveTexture) { | ||||
|                (*ctx->Driver.ActiveTexture)(ctx, i); | ||||
|             } | ||||
|             if (enable->TexGen[i] & S_BIT) | ||||
|                (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_S, GL_TRUE); | ||||
|             else | ||||
|                (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_S, GL_FALSE); | ||||
|             if (enable->TexGen[i] & T_BIT) | ||||
|                (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_T, GL_TRUE); | ||||
|             else | ||||
|                (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_T, GL_FALSE); | ||||
|             if (enable->TexGen[i] & R_BIT) | ||||
|                (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_R, GL_TRUE); | ||||
|             else | ||||
|                (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_R, GL_FALSE); | ||||
|             if (enable->TexGen[i] & Q_BIT) | ||||
|                (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_Q, GL_TRUE); | ||||
|             else | ||||
|                (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_Q, GL_FALSE); | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|  | ||||
|    if (ctx->Driver.ActiveTexture) { | ||||
|       (*ctx->Driver.ActiveTexture)(ctx, ctx->Texture.CurrentUnit); | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * This function is kind of long just because we have to call a lot | ||||
|  * of device driver functions to update device driver state. | ||||
| @@ -421,52 +579,49 @@ _mesa_PopAttrib(void) | ||||
|  | ||||
|       switch (attr->kind) { | ||||
|          case GL_ACCUM_BUFFER_BIT: | ||||
|             MEMCPY( &ctx->Accum, attr->data, sizeof(struct gl_accum_attrib) ); | ||||
|             { | ||||
|                const struct gl_accum_attrib *accum; | ||||
|                accum = (const struct gl_accum_attrib *) attr->data; | ||||
|                _mesa_ClearAccum(accum->ClearColor[0], | ||||
|                                 accum->ClearColor[1], | ||||
|                                 accum->ClearColor[2], | ||||
|                                 accum->ClearColor[3]); | ||||
|             } | ||||
|             break; | ||||
|          case GL_COLOR_BUFFER_BIT: | ||||
|             { | ||||
|                GLenum oldDrawBuffer = ctx->Color.DrawBuffer; | ||||
|                GLenum oldAlphaFunc = ctx->Color.AlphaFunc; | ||||
|                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); | ||||
|                } | ||||
|                if ((ctx->Color.BlendSrcRGB != oldBlendSrc || | ||||
|                     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); | ||||
|                } | ||||
|                const struct gl_colorbuffer_attrib *color; | ||||
|                color = (const struct gl_colorbuffer_attrib *) attr->data; | ||||
|                _mesa_ClearIndex(color->ClearIndex); | ||||
|                _mesa_ClearColor(color->ClearColor[0], | ||||
|                                 color->ClearColor[1], | ||||
|                                 color->ClearColor[2], | ||||
|                                 color->ClearColor[3]); | ||||
|                _mesa_IndexMask(color->IndexMask); | ||||
|                _mesa_ColorMask((GLboolean) (color->ColorMask[0] != 0), | ||||
|                                (GLboolean) (color->ColorMask[1] != 0), | ||||
|                                (GLboolean) (color->ColorMask[2] != 0), | ||||
|                                (GLboolean) (color->ColorMask[3] != 0)); | ||||
|                _mesa_DrawBuffer(color->DrawBuffer); | ||||
|                _mesa_set_enable(ctx, GL_ALPHA_TEST, color->AlphaEnabled); | ||||
|                _mesa_AlphaFunc(color->AlphaFunc, | ||||
|                                UBYTE_TO_FLOAT(color->AlphaRef)); | ||||
|                _mesa_set_enable(ctx, GL_BLEND, color->BlendEnabled); | ||||
|                _mesa_BlendFuncSeparateEXT(color->BlendSrcRGB, | ||||
|                                           color->BlendDstRGB, | ||||
|                                           color->BlendSrcA, | ||||
|                                           color->BlendDstA); | ||||
|                _mesa_BlendEquation(color->BlendEquation); | ||||
|                _mesa_BlendColor(color->BlendColor[0], | ||||
|                                 color->BlendColor[1], | ||||
|                                 color->BlendColor[2], | ||||
|                                 color->BlendColor[3]); | ||||
|                _mesa_LogicOp(color->LogicOp); | ||||
|                _mesa_set_enable(ctx, GL_COLOR_LOGIC_OP, | ||||
|                                 color->ColorLogicOpEnabled); | ||||
|                _mesa_set_enable(ctx, GL_INDEX_LOGIC_OP, | ||||
|                                 color->IndexLogicOpEnabled); | ||||
|                _mesa_set_enable(ctx, GL_DITHER, color->DitherFlag); | ||||
|             } | ||||
|             break; | ||||
|          case GL_CURRENT_BIT: | ||||
| @@ -475,136 +630,23 @@ _mesa_PopAttrib(void) | ||||
|             break; | ||||
|          case GL_DEPTH_BUFFER_BIT: | ||||
|             { | ||||
|                GLboolean oldDepthTest = ctx->Depth.Test; | ||||
|                GLenum oldDepthFunc = ctx->Depth.Func; | ||||
|                GLboolean oldDepthMask = ctx->Depth.Mask; | ||||
|                GLfloat oldDepthClear = ctx->Depth.Clear; | ||||
|                MEMCPY( &ctx->Depth, attr->data, | ||||
|                        sizeof(struct gl_depthbuffer_attrib) ); | ||||
|                if (ctx->Depth.Test != oldDepthTest && ctx->Driver.Enable) | ||||
|                   (*ctx->Driver.Enable)( ctx, GL_DEPTH_TEST, ctx->Depth.Test); | ||||
|                if (ctx->Depth.Func != oldDepthFunc && ctx->Driver.DepthFunc) | ||||
|                   (*ctx->Driver.DepthFunc)( ctx, ctx->Depth.Func ); | ||||
|                if (ctx->Depth.Mask != oldDepthMask && ctx->Driver.DepthMask) | ||||
|                   (*ctx->Driver.DepthMask)( ctx, ctx->Depth.Mask ); | ||||
|                if (ctx->Depth.Clear != oldDepthClear && ctx->Driver.ClearDepth) | ||||
|                   (*ctx->Driver.ClearDepth)( ctx, ctx->Depth.Clear ); | ||||
|                const struct gl_depthbuffer_attrib *depth; | ||||
|                depth = (const struct gl_depthbuffer_attrib *) attr->data; | ||||
|                _mesa_DepthFunc(depth->Func); | ||||
|                _mesa_ClearDepth(depth->Clear); | ||||
|                _mesa_set_enable(ctx, GL_DEPTH_TEST, depth->Test); | ||||
|                _mesa_DepthMask(depth->Mask); | ||||
|                if (ctx->Extensions.HaveHpOcclusionTest) | ||||
|                   _mesa_set_enable(ctx, GL_OCCLUSION_TEST_HP, | ||||
|                                    depth->OcclusionTest); | ||||
|             } | ||||
|             break; | ||||
|          case GL_ENABLE_BIT: | ||||
|             { | ||||
|                const struct gl_enable_attrib *enable; | ||||
|                enable = (const struct gl_enable_attrib *) attr->data; | ||||
|  | ||||
| #define TEST_AND_UPDATE(VALUE, NEWVALUE, ENUM)		\ | ||||
| 	if ((VALUE) != (NEWVALUE)) {			\ | ||||
| 	   _mesa_set_enable( ctx, ENUM, (NEWVALUE) );	\ | ||||
| 	} | ||||
|  | ||||
|                TEST_AND_UPDATE(ctx->Color.AlphaEnabled, enable->AlphaTest, GL_ALPHA_TEST); | ||||
|                TEST_AND_UPDATE(ctx->Transform.Normalize, enable->AutoNormal, GL_NORMALIZE); | ||||
|                TEST_AND_UPDATE(ctx->Color.BlendEnabled, enable->Blend, GL_BLEND); | ||||
|                { | ||||
|                   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] ); | ||||
|                   } | ||||
|                } | ||||
|                TEST_AND_UPDATE(ctx->Light.ColorMaterialEnabled, enable->ColorMaterial, GL_COLOR_MATERIAL); | ||||
|                TEST_AND_UPDATE(ctx->Polygon.CullFlag, enable->CullFace, GL_CULL_FACE); | ||||
|                TEST_AND_UPDATE(ctx->Depth.Test, enable->DepthTest, GL_DEPTH_TEST); | ||||
|                TEST_AND_UPDATE(ctx->Color.DitherFlag, enable->Dither, GL_DITHER); | ||||
|                TEST_AND_UPDATE(ctx->Pixel.Convolution1DEnabled, enable->Convolution1D, GL_CONVOLUTION_1D); | ||||
|                TEST_AND_UPDATE(ctx->Pixel.Convolution2DEnabled, enable->Convolution2D, GL_CONVOLUTION_2D); | ||||
|                TEST_AND_UPDATE(ctx->Pixel.Separable2DEnabled, enable->Separable2D, GL_SEPARABLE_2D); | ||||
|                TEST_AND_UPDATE(ctx->Fog.Enabled, enable->Fog, GL_FOG); | ||||
|                TEST_AND_UPDATE(ctx->Light.Enabled, enable->Lighting, GL_LIGHTING); | ||||
|                TEST_AND_UPDATE(ctx->Line.SmoothFlag, enable->LineSmooth, GL_LINE_SMOOTH); | ||||
|                TEST_AND_UPDATE(ctx->Line.StippleFlag, enable->LineStipple, GL_LINE_STIPPLE); | ||||
|                TEST_AND_UPDATE(ctx->Color.IndexLogicOpEnabled, enable->IndexLogicOp, GL_INDEX_LOGIC_OP); | ||||
|                TEST_AND_UPDATE(ctx->Color.ColorLogicOpEnabled, enable->ColorLogicOp, GL_COLOR_LOGIC_OP); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map1Color4, enable->Map1Color4, GL_MAP1_COLOR_4); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map1Index, enable->Map1Index, GL_MAP1_INDEX); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map1Normal, enable->Map1Normal, GL_MAP1_NORMAL); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord1, enable->Map1TextureCoord1, GL_MAP1_TEXTURE_COORD_1); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord2, enable->Map1TextureCoord2, GL_MAP1_TEXTURE_COORD_2); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord3, enable->Map1TextureCoord3, GL_MAP1_TEXTURE_COORD_3); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map1TextureCoord4, enable->Map1TextureCoord4, GL_MAP1_TEXTURE_COORD_4); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map1Vertex3, enable->Map1Vertex3, GL_MAP1_VERTEX_3); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map1Vertex4, enable->Map1Vertex4, GL_MAP1_VERTEX_4); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map2Color4, enable->Map2Color4, GL_MAP2_COLOR_4); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map2Index, enable->Map2Index, GL_MAP2_INDEX); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map2Normal, enable->Map2Normal, GL_MAP2_NORMAL); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord1, enable->Map2TextureCoord1, GL_MAP2_TEXTURE_COORD_1); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord2, enable->Map2TextureCoord2, GL_MAP2_TEXTURE_COORD_2); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord3, enable->Map2TextureCoord3, GL_MAP2_TEXTURE_COORD_3); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map2TextureCoord4, enable->Map2TextureCoord4, GL_MAP2_TEXTURE_COORD_4); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map2Vertex3, enable->Map2Vertex3, GL_MAP2_VERTEX_3); | ||||
|                TEST_AND_UPDATE(ctx->Eval.Map2Vertex4, enable->Map2Vertex4, GL_MAP2_VERTEX_4); | ||||
|                TEST_AND_UPDATE(ctx->Transform.Normalize, enable->Normalize, GL_NORMALIZE); | ||||
|                TEST_AND_UPDATE(ctx->Transform.RescaleNormals, enable->RescaleNormals, GL_RESCALE_NORMAL_EXT); | ||||
|                TEST_AND_UPDATE(ctx->Pixel.PixelTextureEnabled, enable->PixelTexture, GL_POINT_SMOOTH); | ||||
|                TEST_AND_UPDATE(ctx->Point.SmoothFlag, enable->PointSmooth, GL_POINT_SMOOTH); | ||||
|                TEST_AND_UPDATE(ctx->Polygon.OffsetPoint, enable->PolygonOffsetPoint, GL_POLYGON_OFFSET_POINT); | ||||
|                TEST_AND_UPDATE(ctx->Polygon.OffsetLine, enable->PolygonOffsetLine, GL_POLYGON_OFFSET_LINE); | ||||
|                TEST_AND_UPDATE(ctx->Polygon.OffsetFill, enable->PolygonOffsetFill, GL_POLYGON_OFFSET_FILL); | ||||
|                TEST_AND_UPDATE(ctx->Polygon.SmoothFlag, enable->PolygonSmooth, GL_POLYGON_SMOOTH); | ||||
|                TEST_AND_UPDATE(ctx->Polygon.StippleFlag, enable->PolygonStipple, GL_POLYGON_STIPPLE); | ||||
|                TEST_AND_UPDATE(ctx->Scissor.Enabled, enable->Scissor, GL_SCISSOR_TEST); | ||||
|                TEST_AND_UPDATE(ctx->Stencil.Enabled, enable->Stencil, GL_STENCIL_TEST); | ||||
|                if (ctx->Texture.Enabled != enable->Texture) { | ||||
|                   ctx->Texture.Enabled = enable->Texture; | ||||
|                   if (ctx->Driver.Enable) { | ||||
|                      if (ctx->Driver.ActiveTexture) | ||||
|                         (*ctx->Driver.ActiveTexture)( ctx, 0 ); | ||||
|                      (*ctx->Driver.Enable)( ctx, GL_TEXTURE_1D, (GLboolean) (enable->Texture & TEXTURE0_1D) ); | ||||
|                      (*ctx->Driver.Enable)( ctx, GL_TEXTURE_2D, (GLboolean) (enable->Texture & TEXTURE0_2D) ); | ||||
|                      (*ctx->Driver.Enable)( ctx, GL_TEXTURE_3D, (GLboolean) (enable->Texture & TEXTURE0_3D) ); | ||||
|                      if (ctx->Driver.ActiveTexture) | ||||
|                         (*ctx->Driver.ActiveTexture)( ctx, 1 ); | ||||
|                      (*ctx->Driver.Enable)( ctx, GL_TEXTURE_1D, (GLboolean) (enable->Texture & TEXTURE1_1D) ); | ||||
|                      (*ctx->Driver.Enable)( ctx, GL_TEXTURE_2D, (GLboolean) (enable->Texture & TEXTURE1_2D) ); | ||||
|                      (*ctx->Driver.Enable)( ctx, GL_TEXTURE_3D, (GLboolean) (enable->Texture & TEXTURE1_3D) ); | ||||
|                      if (ctx->Driver.ActiveTexture) | ||||
|                         (*ctx->Driver.ActiveTexture)( ctx, ctx->Texture.CurrentUnit ); | ||||
|                   } | ||||
|                } | ||||
| #undef TEST_AND_UPDATE | ||||
|                { | ||||
|                   GLuint i; | ||||
|                   for (i=0; i<MAX_TEXTURE_UNITS; i++) { | ||||
|                      if (ctx->Texture.Unit[i].TexGenEnabled != enable->TexGen[i]) { | ||||
|                         ctx->Texture.Unit[i].TexGenEnabled = enable->TexGen[i]; | ||||
|  | ||||
| 			/* ctx->Enabled recalculated in state change | ||||
|                            processing */ | ||||
| 			 | ||||
|                         if (ctx->Driver.Enable) { | ||||
|                            if (ctx->Driver.ActiveTexture) | ||||
|                               (*ctx->Driver.ActiveTexture)( ctx, i ); | ||||
|                            if (enable->TexGen[i] & S_BIT) | ||||
|                               (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_S, GL_TRUE); | ||||
|                            else | ||||
|                               (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_S, GL_FALSE); | ||||
|                            if (enable->TexGen[i] & T_BIT) | ||||
|                               (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_T, GL_TRUE); | ||||
|                            else | ||||
|                               (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_T, GL_FALSE); | ||||
|                            if (enable->TexGen[i] & R_BIT) | ||||
|                               (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_R, GL_TRUE); | ||||
|                            else | ||||
|                               (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_R, GL_FALSE); | ||||
|                            if (enable->TexGen[i] & Q_BIT) | ||||
|                               (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_Q, GL_TRUE); | ||||
|                            else | ||||
|                               (*ctx->Driver.Enable)( ctx, GL_TEXTURE_GEN_Q, GL_FALSE); | ||||
|                         } | ||||
|                      } | ||||
|                   } | ||||
|                   if (ctx->Driver.ActiveTexture) | ||||
|                      (*ctx->Driver.ActiveTexture)( ctx, ctx->Texture.CurrentUnit ); | ||||
|                } | ||||
|                pop_enable_group(ctx, enable); | ||||
|                _mesa_set_enable(ctx, GL_POINT_SMOOTH, enable->PointSmooth); | ||||
|             } | ||||
|             break; | ||||
|          case GL_EVAL_BIT: | ||||
| @@ -612,70 +654,81 @@ _mesa_PopAttrib(void) | ||||
|             break; | ||||
|          case GL_FOG_BIT: | ||||
|             { | ||||
|                GLboolean anyChange = (GLboolean) (memcmp( &ctx->Fog, attr->data, sizeof(struct gl_fog_attrib) ) != 0); | ||||
|                MEMCPY( &ctx->Fog, attr->data, sizeof(struct gl_fog_attrib) ); | ||||
|                if (anyChange && ctx->Driver.Fogfv) { | ||||
|                   const GLfloat mode = (GLfloat) ctx->Fog.Mode; | ||||
|                   const GLfloat density = ctx->Fog.Density; | ||||
|                   const GLfloat start = ctx->Fog.Start; | ||||
|                   const GLfloat end = ctx->Fog.End; | ||||
|                   const GLfloat index = ctx->Fog.Index; | ||||
|                   (*ctx->Driver.Fogfv)( ctx, GL_FOG_MODE, &mode); | ||||
|                   (*ctx->Driver.Fogfv)( ctx, GL_FOG_DENSITY, &density ); | ||||
|                   (*ctx->Driver.Fogfv)( ctx, GL_FOG_START, &start ); | ||||
|                   (*ctx->Driver.Fogfv)( ctx, GL_FOG_END, &end ); | ||||
|                   (*ctx->Driver.Fogfv)( ctx, GL_FOG_INDEX, &index ); | ||||
|                   (*ctx->Driver.Fogfv)( ctx, GL_FOG_COLOR, ctx->Fog.Color ); | ||||
|                } | ||||
| 	       ctx->Enabled &= ~ENABLE_FOG; | ||||
| 	       if (ctx->Fog.Enabled) ctx->Enabled |= ENABLE_FOG; | ||||
|                const struct gl_fog_attrib *fog; | ||||
|                fog = (const struct gl_fog_attrib *) attr->data; | ||||
|                _mesa_set_enable(ctx, GL_FOG, fog->Enabled); | ||||
|                _mesa_Fogfv(GL_FOG_COLOR, fog->Color); | ||||
|                _mesa_Fogf(GL_FOG_DENSITY, fog->Density); | ||||
|                _mesa_Fogf(GL_FOG_START, fog->Start); | ||||
|                _mesa_Fogf(GL_FOG_END, fog->End); | ||||
|                _mesa_Fogf(GL_FOG_INDEX, fog->Index); | ||||
|                _mesa_Fogi(GL_FOG_MODE, fog->Mode); | ||||
|             } | ||||
|             break; | ||||
|          case GL_HINT_BIT: | ||||
|             MEMCPY( &ctx->Hint, attr->data, sizeof(struct gl_hint_attrib) ); | ||||
|             if (ctx->Driver.Hint) { | ||||
|                (*ctx->Driver.Hint)( ctx, GL_PERSPECTIVE_CORRECTION_HINT, | ||||
|                                     ctx->Hint.PerspectiveCorrection ); | ||||
|                (*ctx->Driver.Hint)( ctx, GL_POINT_SMOOTH_HINT, | ||||
|                                     ctx->Hint.PointSmooth); | ||||
|                (*ctx->Driver.Hint)( ctx, GL_LINE_SMOOTH_HINT, | ||||
|                                     ctx->Hint.LineSmooth ); | ||||
|                (*ctx->Driver.Hint)( ctx, GL_POLYGON_SMOOTH_HINT, | ||||
|                                     ctx->Hint.PolygonSmooth ); | ||||
|                (*ctx->Driver.Hint)( ctx, GL_FOG_HINT, ctx->Hint.Fog ); | ||||
|             { | ||||
|                const struct gl_hint_attrib *hint; | ||||
|                hint = (const struct gl_hint_attrib *) attr->data; | ||||
|                /* XXX this memcpy is temporary: */ | ||||
|                MEMCPY(&ctx->Hint, hint, sizeof(struct gl_hint_attrib)); | ||||
|                _mesa_Hint(GL_PERSPECTIVE_CORRECTION_HINT, | ||||
|                           hint->PerspectiveCorrection ); | ||||
|                _mesa_Hint(GL_POINT_SMOOTH_HINT, hint->PointSmooth); | ||||
|                _mesa_Hint(GL_LINE_SMOOTH_HINT, hint->LineSmooth); | ||||
|                _mesa_Hint(GL_POLYGON_SMOOTH_HINT, hint->PolygonSmooth); | ||||
|                _mesa_Hint(GL_FOG_HINT, hint->Fog); | ||||
|                _mesa_Hint(GL_CLIP_VOLUME_CLIPPING_HINT_EXT, | ||||
|                           hint->ClipVolumeClipping); | ||||
|                if (ctx->Extensions.HaveTextureCompression) | ||||
|                   _mesa_Hint(GL_TEXTURE_COMPRESSION_HINT_ARB, | ||||
|                              hint->TextureCompression); | ||||
|                /* XXX keep PGI_misc_hints? */ | ||||
|             } | ||||
|             break; | ||||
|          case GL_LIGHTING_BIT: | ||||
|             MEMCPY( &ctx->Light, attr->data, sizeof(struct gl_light_attrib) ); | ||||
|             if (ctx->Driver.Enable) { | ||||
|             { | ||||
|                GLuint i; | ||||
|                const struct gl_light_attrib *light; | ||||
|                light = (const struct gl_light_attrib *) attr->data; | ||||
|                /* lighting enable */ | ||||
|                _mesa_set_enable(ctx, GL_LIGHTING, light->Enabled); | ||||
|                /* per-light state */ | ||||
|                for (i = 0; i < MAX_LIGHTS; i++) { | ||||
|                   GLenum light = (GLenum) (GL_LIGHT0 + i); | ||||
|                   (*ctx->Driver.Enable)( ctx, light, ctx->Light.Light[i].Enabled ); | ||||
|                   GLenum lgt = (GLenum) (GL_LIGHT0 + i); | ||||
|                   _mesa_set_enable(ctx, lgt, light->Light[i].Enabled); | ||||
|                   MEMCPY(&ctx->Light.Light[i], &light->Light[i], | ||||
|                          sizeof(struct gl_light)); | ||||
|                } | ||||
|                (*ctx->Driver.Enable)( ctx, GL_LIGHTING, ctx->Light.Enabled ); | ||||
|                /* light model */ | ||||
|                _mesa_LightModelfv(GL_LIGHT_MODEL_AMBIENT, | ||||
|                                   light->Model.Ambient); | ||||
|                _mesa_LightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, | ||||
|                                  (GLfloat) light->Model.LocalViewer); | ||||
|                _mesa_LightModelf(GL_LIGHT_MODEL_TWO_SIDE, | ||||
|                                  (GLfloat) light->Model.TwoSide); | ||||
|                _mesa_LightModelf(GL_LIGHT_MODEL_COLOR_CONTROL, | ||||
|                                  (GLfloat) light->Model.ColorControl); | ||||
|                /* materials */ | ||||
|                MEMCPY(ctx->Light.Material, light->Material, | ||||
|                       2 * sizeof(struct gl_material)); | ||||
|                /* shade model */ | ||||
|                _mesa_ShadeModel(light->ShadeModel); | ||||
|                /* color material */ | ||||
|                _mesa_ColorMaterial(light->ColorMaterialFace, | ||||
|                                    light->ColorMaterialMode); | ||||
|                _mesa_set_enable(ctx, GL_COLOR_MATERIAL, | ||||
|                                 light->ColorMaterialEnabled); | ||||
|             } | ||||
|             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; | ||||
|          case GL_LINE_BIT: | ||||
|             MEMCPY( &ctx->Line, attr->data, sizeof(struct gl_line_attrib) ); | ||||
|             if (ctx->Driver.Enable) { | ||||
|                (*ctx->Driver.Enable)( ctx, GL_LINE_SMOOTH, ctx->Line.SmoothFlag ); | ||||
|                (*ctx->Driver.Enable)( ctx, GL_LINE_STIPPLE, ctx->Line.StippleFlag ); | ||||
|             { | ||||
|                const struct gl_line_attrib *line; | ||||
|                line = (const struct gl_line_attrib *) attr->data; | ||||
|                _mesa_set_enable(ctx, GL_LINE_SMOOTH, line->SmoothFlag); | ||||
|                _mesa_set_enable(ctx, GL_LINE_STIPPLE, line->StippleFlag); | ||||
|                _mesa_LineStipple(line->StippleFactor, line->StipplePattern); | ||||
|                _mesa_LineWidth(line->Width); | ||||
|             } | ||||
|             if (ctx->Driver.LineStipple) | ||||
|                (*ctx->Driver.LineStipple)(ctx, ctx->Line.StippleFactor, | ||||
|                                           ctx->Line.StipplePattern); | ||||
|             if (ctx->Driver.LineWidth) | ||||
|                (*ctx->Driver.LineWidth)(ctx, ctx->Line.Width); | ||||
|             break; | ||||
|          case GL_LIST_BIT: | ||||
|             MEMCPY( &ctx->List, attr->data, sizeof(struct gl_list_attrib) ); | ||||
| @@ -684,30 +737,38 @@ _mesa_PopAttrib(void) | ||||
|             MEMCPY( &ctx->Pixel, attr->data, sizeof(struct gl_pixel_attrib) ); | ||||
|             break; | ||||
|          case GL_POINT_BIT: | ||||
|             MEMCPY( &ctx->Point, attr->data, sizeof(struct gl_point_attrib) ); | ||||
|             if (ctx->Driver.Enable) | ||||
|                (*ctx->Driver.Enable)( ctx, GL_POINT_SMOOTH, ctx->Point.SmoothFlag ); | ||||
|             { | ||||
|                const struct gl_point_attrib *point; | ||||
|                point = (const struct gl_point_attrib *) attr->data; | ||||
|                _mesa_PointSize(point->Size); | ||||
|                _mesa_set_enable(ctx, GL_POINT_SMOOTH, point->SmoothFlag); | ||||
|                _mesa_PointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT, | ||||
|                                          point->Params); | ||||
|                _mesa_PointParameterfEXT(GL_POINT_SIZE_MIN_EXT, point->MinSize); | ||||
|                _mesa_PointParameterfEXT(GL_POINT_SIZE_MAX_EXT, point->MaxSize); | ||||
|                _mesa_PointParameterfEXT(GL_POINT_FADE_THRESHOLD_SIZE_EXT, | ||||
|                                         point->Threshold); | ||||
|             } | ||||
|             break; | ||||
|          case GL_POLYGON_BIT: | ||||
|             { | ||||
|                GLenum oldFrontMode = ctx->Polygon.FrontMode; | ||||
|                GLenum oldBackMode = ctx->Polygon.BackMode; | ||||
|                MEMCPY( &ctx->Polygon, attr->data, | ||||
|                        sizeof(struct gl_polygon_attrib) ); | ||||
|                if ((ctx->Polygon.FrontMode != oldFrontMode || | ||||
|                     ctx->Polygon.BackMode != oldBackMode) && | ||||
|                    ctx->Driver.PolygonMode) { | ||||
|                   (*ctx->Driver.PolygonMode)( ctx, GL_FRONT, ctx->Polygon.FrontMode); | ||||
|                   (*ctx->Driver.PolygonMode)( ctx, GL_BACK, ctx->Polygon.BackMode); | ||||
|                } | ||||
| 	       if (ctx->Driver.CullFace) | ||||
| 		  ctx->Driver.CullFace( ctx, ctx->Polygon.CullFaceMode ); | ||||
|  | ||||
| 	       if (ctx->Driver.FrontFace) | ||||
| 		  ctx->Driver.FrontFace( ctx, ctx->Polygon.FrontFace ); | ||||
|  | ||||
|                if (ctx->Driver.Enable) | ||||
|                   (*ctx->Driver.Enable)( ctx, GL_POLYGON_SMOOTH, ctx->Polygon.SmoothFlag ); | ||||
|                const struct gl_polygon_attrib *polygon; | ||||
|                polygon = (const struct gl_polygon_attrib *) attr->data; | ||||
|                _mesa_CullFace(polygon->CullFaceMode); | ||||
|                _mesa_FrontFace(polygon->FrontFace); | ||||
|                _mesa_PolygonMode(GL_FRONT, polygon->FrontMode); | ||||
|                _mesa_PolygonMode(GL_BACK, polygon->BackMode); | ||||
|                _mesa_PolygonOffset(polygon->OffsetFactor, | ||||
|                                    polygon->OffsetUnits); | ||||
|                _mesa_set_enable(ctx, GL_POLYGON_SMOOTH, polygon->SmoothFlag); | ||||
|                _mesa_set_enable(ctx, GL_POLYGON_STIPPLE, polygon->StippleFlag); | ||||
|                _mesa_set_enable(ctx, GL_CULL_FACE, polygon->CullFlag); | ||||
|                _mesa_set_enable(ctx, GL_POLYGON_OFFSET_POINT, | ||||
|                                 polygon->OffsetPoint); | ||||
|                _mesa_set_enable(ctx, GL_POLYGON_OFFSET_LINE, | ||||
|                                 polygon->OffsetLine); | ||||
|                _mesa_set_enable(ctx, GL_POLYGON_OFFSET_FILL, | ||||
|                                 polygon->OffsetFill); | ||||
|             } | ||||
|             break; | ||||
| 	 case GL_POLYGON_STIPPLE_BIT: | ||||
| @@ -716,48 +777,53 @@ _mesa_PopAttrib(void) | ||||
| 	       ctx->Driver.PolygonStipple( ctx, (const GLubyte *) attr->data ); | ||||
| 	    break; | ||||
|          case GL_SCISSOR_BIT: | ||||
|             MEMCPY( &ctx->Scissor, attr->data, | ||||
| 		    sizeof(struct gl_scissor_attrib) ); | ||||
|             if (ctx->Driver.Enable) | ||||
|                (*ctx->Driver.Enable)( ctx, GL_SCISSOR_TEST, ctx->Scissor.Enabled ); | ||||
| 	    if (ctx->Driver.Scissor) | ||||
| 	       ctx->Driver.Scissor( ctx, ctx->Scissor.X, ctx->Scissor.Y, | ||||
| 				    ctx->Scissor.Width, ctx->Scissor.Height ); | ||||
|             { | ||||
|                const struct gl_scissor_attrib *scissor; | ||||
|                scissor = (const struct gl_scissor_attrib *) attr->data; | ||||
|                _mesa_Scissor(scissor->X, scissor->Y, | ||||
|                              scissor->Width, scissor->Height); | ||||
|                _mesa_set_enable(ctx, GL_SCISSOR_TEST, scissor->Enabled); | ||||
|             } | ||||
|             break; | ||||
|          case GL_STENCIL_BUFFER_BIT: | ||||
|             MEMCPY( &ctx->Stencil, attr->data, | ||||
| 		    sizeof(struct gl_stencil_attrib) ); | ||||
|             if (ctx->Driver.StencilFunc) | ||||
|                (*ctx->Driver.StencilFunc)( ctx, ctx->Stencil.Function, | ||||
|                                    ctx->Stencil.Ref, ctx->Stencil.ValueMask); | ||||
|             if (ctx->Driver.StencilMask) | ||||
|                (*ctx->Driver.StencilMask)( ctx, ctx->Stencil.WriteMask ); | ||||
|             if (ctx->Driver.StencilOp) | ||||
|                (*ctx->Driver.StencilOp)( ctx, ctx->Stencil.FailFunc, | ||||
|                               ctx->Stencil.ZFailFunc, ctx->Stencil.ZPassFunc); | ||||
|             if (ctx->Driver.ClearStencil) | ||||
|                (*ctx->Driver.ClearStencil)( ctx, ctx->Stencil.Clear ); | ||||
|             if (ctx->Driver.Enable) | ||||
|                (*ctx->Driver.Enable)( ctx, GL_STENCIL_TEST, ctx->Stencil.Enabled ); | ||||
| 	    ctx->TriangleCaps &= ~DD_STENCIL; | ||||
| 	    if (ctx->Stencil.Enabled) | ||||
| 	       ctx->TriangleCaps |= DD_STENCIL; | ||||
|  | ||||
|             { | ||||
|                const struct gl_stencil_attrib *stencil; | ||||
|                stencil = (const struct gl_stencil_attrib *) attr->data; | ||||
|                _mesa_set_enable(ctx, GL_STENCIL_TEST, stencil->Enabled); | ||||
|                _mesa_ClearStencil(stencil->Clear); | ||||
|                _mesa_StencilFunc(stencil->Function, stencil->Ref, | ||||
|                                  stencil->ValueMask); | ||||
|                _mesa_StencilMask(stencil->WriteMask); | ||||
|                _mesa_StencilOp(stencil->FailFunc, stencil->ZFailFunc, | ||||
|                                stencil->ZPassFunc); | ||||
|             } | ||||
|             break; | ||||
|          case GL_TRANSFORM_BIT: | ||||
|             MEMCPY( &ctx->Transform, attr->data, | ||||
| 		    sizeof(struct gl_transform_attrib) ); | ||||
|             if (ctx->Driver.Enable) { | ||||
|                (*ctx->Driver.Enable)( ctx, GL_NORMALIZE, ctx->Transform.Normalize ); | ||||
|                (*ctx->Driver.Enable)( ctx, GL_RESCALE_NORMAL_EXT, ctx->Transform.RescaleNormals ); | ||||
|             { | ||||
|                GLuint i; | ||||
|                const struct gl_transform_attrib *xform; | ||||
|                xform = (const struct gl_transform_attrib *) attr->data; | ||||
|                _mesa_MatrixMode(xform->MatrixMode); | ||||
|                /* clip planes */ | ||||
|                MEMCPY(ctx->Transform.EyeUserPlane, xform->EyeUserPlane, | ||||
|                       sizeof(xform->EyeUserPlane)); | ||||
|                MEMCPY(ctx->Transform.ClipUserPlane, xform->ClipUserPlane, | ||||
|                       sizeof(xform->EyeUserPlane)); | ||||
|                /* clip plane enable flags */ | ||||
|                for (i = 0; i < MAX_CLIP_PLANES; i++) { | ||||
|                   _mesa_set_enable(ctx, GL_CLIP_PLANE0 + i, | ||||
|                                    xform->ClipEnabled[i]); | ||||
|                } | ||||
|                /* normalize/rescale */ | ||||
|                _mesa_set_enable(ctx, GL_NORMALIZE, ctx->Transform.Normalize); | ||||
|                _mesa_set_enable(ctx, GL_RESCALE_NORMAL_EXT, | ||||
|                                 ctx->Transform.RescaleNormals); | ||||
|             } | ||||
| 	    ctx->Enabled &= ~(ENABLE_NORMALIZE|ENABLE_RESCALE); | ||||
| 	    if (ctx->Transform.Normalize) ctx->Enabled |= ENABLE_NORMALIZE; | ||||
| 	    if (ctx->Transform.RescaleNormals) ctx->Enabled |= ENABLE_RESCALE; | ||||
|             break; | ||||
|          case GL_TEXTURE_BIT: | ||||
|             /* Take care of texture object reference counters */ | ||||
|             { | ||||
|                /* XXX call _mesa_Tex*() functions directly? */ | ||||
|                GLuint u; | ||||
|                for (u = 0; u < ctx->Const.MaxTextureUnits; u++) { | ||||
| 		  ctx->Texture.Unit[u].CurrentD[1]->RefCount--; | ||||
| @@ -786,14 +852,13 @@ _mesa_PopAttrib(void) | ||||
|             } | ||||
|             break; | ||||
|          case GL_VIEWPORT_BIT:  | ||||
| 	 { | ||||
| 	    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 ); | ||||
| 	    break; | ||||
| 	 } | ||||
|             { | ||||
|                const struct gl_viewport_attrib *vp; | ||||
|                vp = (const struct gl_viewport_attrib *)attr->data; | ||||
|                _mesa_Viewport(vp->X, vp->Y, vp->Width, vp->Height); | ||||
|                _mesa_DepthRange(vp->Near, vp->Far); | ||||
|             } | ||||
|             break; | ||||
|          default: | ||||
|             gl_problem( ctx, "Bad attrib flag in PopAttrib"); | ||||
|             break; | ||||
|   | ||||
| @@ -1,21 +1,21 @@ | ||||
| /* $Id: blend.c,v 1.16 2000/06/29 22:06:22 brianp Exp $ */ | ||||
| /* $Id: blend.c,v 1.16.4.3 2000/11/05 21:24:00 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
|  * Version:  3.4 | ||||
|  * | ||||
|  * 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"), | ||||
|  * 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 | ||||
| @@ -289,7 +289,7 @@ _mesa_BlendEquation( GLenum mode ) | ||||
|  | ||||
|    ctx->Color.BlendFunc = NULL; | ||||
|    ctx->NewState |= NEW_RASTER_OPS; | ||||
|     | ||||
|  | ||||
|    if (ctx->Driver.BlendEquation) | ||||
|       ctx->Driver.BlendEquation( ctx, mode ); | ||||
| } | ||||
| @@ -339,11 +339,31 @@ blend_transparency( GLcontext *ctx, GLuint n, const GLubyte mask[], | ||||
|             /* 100% alpha, no-op */ | ||||
|          } | ||||
|          else { | ||||
| #if 0 | ||||
|             /* This is pretty close, but Glean complains */ | ||||
|             const GLint s = CHAN_MAX - t; | ||||
|             const GLint r = (rgba[i][RCOMP] * t + dest[i][RCOMP] * s) >> 8; | ||||
|             const GLint g = (rgba[i][GCOMP] * t + dest[i][GCOMP] * s) >> 8; | ||||
|             const GLint b = (rgba[i][BCOMP] * t + dest[i][BCOMP] * s) >> 8; | ||||
|             const GLint a = (rgba[i][ACOMP] * t + dest[i][ACOMP] * s) >> 8; | ||||
|             const GLint r = (rgba[i][RCOMP] * t + dest[i][RCOMP] * s + 1) >> 8; | ||||
|             const GLint g = (rgba[i][GCOMP] * t + dest[i][GCOMP] * s + 1) >> 8; | ||||
|             const GLint b = (rgba[i][BCOMP] * t + dest[i][BCOMP] * s + 1) >> 8; | ||||
|             const GLint a = (rgba[i][ACOMP] * t + dest[i][ACOMP] * s + 1) >> 8; | ||||
| #elif 0 | ||||
|             /* This is slower but satisfies Glean */ | ||||
|             const GLint s = CHAN_MAX - t; | ||||
|             const GLint r = (rgba[i][RCOMP] * t + dest[i][RCOMP] * s) / 255; | ||||
|             const GLint g = (rgba[i][GCOMP] * t + dest[i][GCOMP] * s) / 255; | ||||
|             const GLint b = (rgba[i][BCOMP] * t + dest[i][BCOMP] * s) / 255; | ||||
|             const GLint a = (rgba[i][ACOMP] * t + dest[i][ACOMP] * s) / 255; | ||||
| #else | ||||
|             /* This satisfies Glean and should be reasonably fast */ | ||||
|             /* Contributed by Nathan Hand */ | ||||
| #define DIV255(X)  (((X) << 8) + (X) + 256) >> 16 | ||||
|             const GLint s = CHAN_MAX - t; | ||||
|             const GLint r = DIV255(rgba[i][RCOMP] * t + dest[i][RCOMP] * s); | ||||
|             const GLint g = DIV255(rgba[i][GCOMP] * t + dest[i][GCOMP] * s); | ||||
|             const GLint b = DIV255(rgba[i][BCOMP] * t + dest[i][BCOMP] * s); | ||||
|             const GLint a = DIV255(rgba[i][ACOMP] * t + dest[i][ACOMP] * s); | ||||
| #undef DIV255 | ||||
| #endif | ||||
|             ASSERT(r <= CHAN_MAX); | ||||
|             ASSERT(g <= CHAN_MAX); | ||||
|             ASSERT(b <= CHAN_MAX); | ||||
| @@ -755,22 +775,22 @@ blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[], | ||||
|  | ||||
|          /* compute blended color */ | ||||
|          if (ctx->Color.BlendEquation==GL_FUNC_ADD_EXT) { | ||||
|             r = Rs * sR + Rd * dR; | ||||
|             g = Gs * sG + Gd * dG; | ||||
|             b = Bs * sB + Bd * dB; | ||||
|             a = As * sA + Ad * dA; | ||||
|             r = Rs * sR + Rd * dR + 0.5F; | ||||
|             g = Gs * sG + Gd * dG + 0.5F; | ||||
|             b = Bs * sB + Bd * dB + 0.5F; | ||||
|             a = As * sA + Ad * dA + 0.5F; | ||||
|          } | ||||
|          else if (ctx->Color.BlendEquation==GL_FUNC_SUBTRACT_EXT) { | ||||
|             r = Rs * sR - Rd * dR; | ||||
|             g = Gs * sG - Gd * dG; | ||||
|             b = Bs * sB - Bd * dB; | ||||
|             a = As * sA - Ad * dA; | ||||
|             r = Rs * sR - Rd * dR + 0.5F; | ||||
|             g = Gs * sG - Gd * dG + 0.5F; | ||||
|             b = Bs * sB - Bd * dB + 0.5F; | ||||
|             a = As * sA - Ad * dA + 0.5F; | ||||
|          } | ||||
|          else if (ctx->Color.BlendEquation==GL_FUNC_REVERSE_SUBTRACT_EXT) { | ||||
|             r = Rd * dR - Rs * sR; | ||||
|             g = Gd * dG - Gs * sG; | ||||
|             b = Bd * dB - Bs * sB; | ||||
|             a = Ad * dA - As * sA; | ||||
|             r = Rd * dR - Rs * sR + 0.5F; | ||||
|             g = Gd * dG - Gs * sG + 0.5F; | ||||
|             b = Bd * dB - Bs * sB + 0.5F; | ||||
|             a = Ad * dA - As * sA + 0.5F; | ||||
|          } | ||||
|          else { | ||||
|             /* should never get here */ | ||||
| @@ -791,7 +811,7 @@ blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[], | ||||
|  | ||||
| #if defined(USE_MMX_ASM) | ||||
| #include "X86/mmx.h" | ||||
| #include "X86/common_x86asm.h" | ||||
| #include "X86/common_x86_asm.h" | ||||
| #endif | ||||
|  | ||||
|  | ||||
| @@ -811,8 +831,8 @@ static void set_blend_function( GLcontext *ctx ) | ||||
|    /* Hmm.  A table here would have 12^4 == way too many entries. | ||||
|     * Provide a hook for MMX instead. | ||||
|     */ | ||||
|    if (gl_x86_cpu_features & GL_CPU_MMX) { | ||||
|       gl_mmx_set_blend_function (ctx); | ||||
|    if ( cpu_has_mmx ) { | ||||
|       gl_mmx_set_blend_function( ctx ); | ||||
|    } | ||||
|    else | ||||
| #endif | ||||
| @@ -870,7 +890,7 @@ _mesa_blend_span( GLcontext *ctx, GLuint n, GLint x, GLint y, | ||||
|    if (!ctx->Color.BlendFunc) | ||||
|       set_blend_function(ctx); | ||||
|  | ||||
|    (*ctx->Color.BlendFunc)( ctx, n, mask, rgba, (const GLubyte (*)[4])dest ); | ||||
|    (*ctx->Color.BlendFunc)( ctx, n, mask, rgba, (CONST GLubyte (*)[4])dest ); | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -905,5 +925,5 @@ _mesa_blend_pixels( GLcontext *ctx, | ||||
|    if (!ctx->Color.BlendFunc) | ||||
|       set_blend_function(ctx); | ||||
|  | ||||
|    (*ctx->Color.BlendFunc)( ctx, n, mask, rgba, (const GLubyte (*)[4])dest ); | ||||
|    (*ctx->Color.BlendFunc)( ctx, n, mask, rgba, (CONST GLubyte (*)[4])dest ); | ||||
| } | ||||
|   | ||||
| @@ -1,7 +1,8 @@ | ||||
| /* $Id: buffers.c,v 1.9.4.3 2000/11/05 21:24:00 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -167,7 +168,7 @@ clear_color_buffer(GLcontext *ctx) | ||||
|    } | ||||
|    else { | ||||
|       /* Color index mode */ | ||||
|       ASSERT(ctx->Color.IndexMask == ~0); | ||||
|       ASSERT(ctx->Color.IndexMask == (GLuint) ~0); | ||||
|       if (ctx->Visual->IndexBits == 8) { | ||||
|          /* 8-bit clear */ | ||||
|          GLubyte span[MAX_WIDTH]; | ||||
| @@ -208,15 +209,19 @@ clear_color_buffers(GLcontext *ctx) | ||||
|       if (bufferBit & ctx->Color.DrawDestMask) { | ||||
|          if (bufferBit == FRONT_LEFT_BIT) { | ||||
|             (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_FRONT_LEFT); | ||||
|             (void) (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, GL_FRONT_LEFT); | ||||
|          } | ||||
|          else if (bufferBit == FRONT_RIGHT_BIT) { | ||||
|             (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_FRONT_RIGHT); | ||||
|             (void) (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, GL_FRONT_RIGHT); | ||||
|          } | ||||
|          else if (bufferBit == BACK_LEFT_BIT) { | ||||
|             (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_BACK_LEFT); | ||||
|             (void) (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, GL_BACK_LEFT); | ||||
|          } | ||||
|          else { | ||||
|             (void) (*ctx->Driver.SetDrawBuffer)( ctx, GL_BACK_RIGHT); | ||||
|             (void) (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, GL_BACK_RIGHT); | ||||
|          } | ||||
|           | ||||
|          if (ctx->Color.SWmasking) { | ||||
| @@ -228,8 +233,9 @@ clear_color_buffers(GLcontext *ctx) | ||||
|       } | ||||
|    } | ||||
|  | ||||
|    /* restore default dest buffer */ | ||||
|    /* restore default read/draw buffers */ | ||||
|    (void) (*ctx->Driver.SetDrawBuffer)( ctx, ctx->Color.DriverDrawBuffer ); | ||||
|    (void) (*ctx->Driver.SetReadBuffer)( ctx, ctx->ReadBuffer, ctx->Pixel.DriverReadBuffer ); | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -287,6 +293,8 @@ _mesa_Clear( GLbitfield mask ) | ||||
|       } | ||||
| #endif | ||||
|  | ||||
|       RENDER_START(ctx); | ||||
|  | ||||
|       /* do software clearing here */ | ||||
|       if (newMask) { | ||||
|          if (newMask & ctx->Color.DrawDestMask)   clear_color_buffers(ctx); | ||||
| @@ -302,6 +310,8 @@ _mesa_Clear( GLbitfield mask ) | ||||
|          _mesa_clear_alpha_buffers( ctx ); | ||||
|       } | ||||
|  | ||||
|       RENDER_FINISH(ctx); | ||||
|  | ||||
| #ifdef PROFILE | ||||
|       ctx->ClearTime += gl_time() - t0; | ||||
|       ctx->ClearCount++; | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| /* $Id: clip.c,v 1.8 2000/04/17 18:18:00 keithw Exp $ */ | ||||
| /* $Id: clip.c,v 1.8.4.1 2001/02/09 16:46:56 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4.1 | ||||
|  *  | ||||
|  * Copyright (C) 1999  Brian Paul   All Rights Reserved. | ||||
|  * Copyright (C) 1999-2001  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"), | ||||
| @@ -301,14 +301,8 @@ GLuint gl_userclip_point( GLcontext* ctx, const GLfloat v[] ) | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| #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 | ||||
| #define NEGATIVE(x) ((x) < 0.0) | ||||
| #define DIFFERENT_SIGNS(a, b) (((a) * (b)) <= 0.0 && ((a) != (b))) | ||||
|  | ||||
|  | ||||
| static clip_poly_func gl_poly_clip_tab[2][5]; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: colortab.c,v 1.20 2000/06/29 18:54:29 brianp Exp $ */ | ||||
| /* $Id: colortab.c,v 1.20.4.3 2000/11/21 23:00:22 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -325,17 +325,14 @@ _mesa_ColorTable( GLenum target, GLenum internalFormat, | ||||
|       return; | ||||
|    } | ||||
|  | ||||
|    if (width > ctx->Const.MaxColorTableSize) { | ||||
|    if (width > (GLsizei) ctx->Const.MaxColorTableSize) { | ||||
|       if (proxy) { | ||||
|          table->Size = 0; | ||||
|          table->IntFormat = (GLenum) 0; | ||||
|          table->Format = (GLenum) 0; | ||||
|       } | ||||
|       else { | ||||
|          if (width > ctx->Const.MaxColorTableSize) | ||||
|             gl_error(ctx, GL_TABLE_TOO_LARGE, "glColorTable(width)"); | ||||
|          else | ||||
|             gl_error(ctx, GL_INVALID_VALUE, "glColorTable(width)"); | ||||
|          gl_error(ctx, GL_TABLE_TOO_LARGE, "glColorTable(width)"); | ||||
|       } | ||||
|       return; | ||||
|    } | ||||
| @@ -356,12 +353,12 @@ _mesa_ColorTable( GLenum target, GLenum internalFormat, | ||||
|       if (floatTable) { | ||||
|          GLfloat tempTab[MAX_COLOR_TABLE_SIZE * 4]; | ||||
|          GLfloat *tableF; | ||||
|          GLuint i; | ||||
|          GLint i; | ||||
|  | ||||
|          _mesa_unpack_float_color_span(ctx, width, table->Format, | ||||
|                                        tempTab,  /* dest */ | ||||
|                                        format, type, data, | ||||
|                                        &ctx->Unpack, GL_TRUE, GL_FALSE); | ||||
|                                        &ctx->Unpack, GL_FALSE, GL_FALSE); | ||||
|  | ||||
|          table->TableType = GL_FLOAT; | ||||
|          table->Table = MALLOC(comps * width * sizeof(GLfloat)); | ||||
| @@ -423,9 +420,9 @@ _mesa_ColorTable( GLenum target, GLenum internalFormat, | ||||
|             return; | ||||
|          } | ||||
|          _mesa_unpack_ubyte_color_span(ctx, width, table->Format, | ||||
|                                        table->Table,  /* dest */ | ||||
|                                        (GLubyte *) table->Table,  /* dest */ | ||||
|                                        format, type, data, | ||||
|                                        &ctx->Unpack, GL_TRUE); | ||||
|                                        &ctx->Unpack, GL_FALSE); | ||||
|       } /* floatTable */ | ||||
|    } /* proxy */ | ||||
|  | ||||
| @@ -524,7 +521,7 @@ _mesa_ColorSubTable( GLenum target, GLsizei start, | ||||
|    comps = _mesa_components_in_format(table->Format); | ||||
|    assert(comps > 0);  /* error should have been caught sooner */ | ||||
|  | ||||
|    if (start + count > table->Size) { | ||||
|    if (start + count > (GLint) table->Size) { | ||||
|       gl_error(ctx, GL_INVALID_VALUE, "glColorSubTable(count)"); | ||||
|       return; | ||||
|    } | ||||
| @@ -537,19 +534,19 @@ _mesa_ColorSubTable( GLenum target, GLsizei start, | ||||
|    if (table->TableType == GL_UNSIGNED_BYTE) { | ||||
|       GLubyte *dest = (GLubyte *) table->Table + start * comps * sizeof(GLubyte); | ||||
|       _mesa_unpack_ubyte_color_span(ctx, count, table->Format, dest, | ||||
|                                     format, type, data, &ctx->Unpack, GL_TRUE); | ||||
|                                    format, type, data, &ctx->Unpack, GL_FALSE); | ||||
|    } | ||||
|    else { | ||||
|       GLfloat tempTab[MAX_COLOR_TABLE_SIZE * 4]; | ||||
|       GLfloat *tableF; | ||||
|       GLuint i; | ||||
|       GLint i; | ||||
|  | ||||
|       ASSERT(table->TableType == GL_FLOAT); | ||||
|  | ||||
|       _mesa_unpack_float_color_span(ctx, count, table->Format, | ||||
|                                     tempTab,  /* dest */ | ||||
|                                     format, type, data, | ||||
|                                     &ctx->Unpack, GL_TRUE, GL_FALSE); | ||||
|                                     &ctx->Unpack, GL_FALSE, GL_FALSE); | ||||
|  | ||||
|       tableF = (GLfloat *) table->Table; | ||||
|  | ||||
| @@ -629,7 +626,9 @@ _mesa_CopyColorTable(GLenum target, GLenum internalformat, | ||||
|       width = MAX_WIDTH; | ||||
|  | ||||
|    /* read the data from framebuffer */ | ||||
|    RENDER_START(ctx); | ||||
|    gl_read_rgba_span( ctx, ctx->ReadBuffer, width, x, y, data ); | ||||
|    RENDER_FINISH(ctx); | ||||
|  | ||||
|    /* Restore reading from draw buffer (the default) */ | ||||
|    (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, | ||||
| @@ -658,7 +657,9 @@ _mesa_CopyColorSubTable(GLenum target, GLsizei start, | ||||
|       width = MAX_WIDTH; | ||||
|  | ||||
|    /* read the data from framebuffer */ | ||||
|    RENDER_START(ctx); | ||||
|    gl_read_rgba_span( ctx, ctx->ReadBuffer, width, x, y, data ); | ||||
|    RENDER_FINISH(ctx); | ||||
|  | ||||
|    /* Restore reading from draw buffer (the default) */ | ||||
|    (*ctx->Driver.SetReadBuffer)( ctx, ctx->DrawBuffer, | ||||
| @@ -677,7 +678,7 @@ _mesa_GetColorTable( GLenum target, GLenum format, | ||||
|    struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit]; | ||||
|    struct gl_color_table *table = NULL; | ||||
|    GLubyte rgba[MAX_COLOR_TABLE_SIZE][4]; | ||||
|    GLint i; | ||||
|    GLuint i; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END(ctx, "glGetColorTable"); | ||||
|  | ||||
| @@ -836,7 +837,7 @@ _mesa_GetColorTable( GLenum target, GLenum format, | ||||
|          return; | ||||
|    } | ||||
|  | ||||
|    _mesa_pack_rgba_span(ctx, table->Size, (const GLubyte (*)[]) rgba, | ||||
|    _mesa_pack_rgba_span(ctx, table->Size, (CONST GLubyte (*)[4]) rgba, | ||||
|                         format, type, data, &ctx->Pack, GL_FALSE); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,7 @@ | ||||
| /* $Id: context.c,v 1.79 2000/07/19 20:58:59 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  * | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -211,10 +210,11 @@ _mesa_initialize_visual( GLvisual *vis, | ||||
|  | ||||
|    if (depthBits == 0) { | ||||
|       /* Special case.  Even if we don't have a depth buffer we need | ||||
|        * good values for DepthMax for Z vertex transformation purposes. | ||||
|        * good values for DepthMax for Z vertex transformation purposes | ||||
|        * and for per-fragment fog computation. | ||||
|        */ | ||||
|       vis->DepthMax = 1; | ||||
|       vis->DepthMaxF = 1.0F; | ||||
|       vis->DepthMax = 1 << 16; | ||||
|       vis->DepthMaxF = (GLfloat) vis->DepthMax; | ||||
|    } | ||||
|    else if (depthBits < 32) { | ||||
|       vis->DepthMax = (1 << depthBits) - 1; | ||||
| @@ -412,10 +412,10 @@ one_time_init( void ) | ||||
|       _mesa_init_fog(); | ||||
|       _mesa_init_math(); | ||||
|       gl_init_lists(); | ||||
|       gl_init_shade(); | ||||
|       gl_init_texture(); | ||||
|       gl_init_transformation(); | ||||
|       gl_init_translate(); | ||||
|       gl_init_shade(); | ||||
|       gl_init_vbrender(); | ||||
|       gl_init_vbxform(); | ||||
|       gl_init_vertices(); | ||||
| @@ -452,9 +452,13 @@ alloc_shared_state( void ) | ||||
|    if (!ss) | ||||
|       return NULL; | ||||
|  | ||||
|    ss->DisplayList = _mesa_NewHashTable(); | ||||
|    _glthread_INIT_MUTEX(ss->Mutex); | ||||
|  | ||||
|    ss->DisplayList = _mesa_NewHashTable(); | ||||
|    ss->TexObjects = _mesa_NewHashTable(); | ||||
| #ifdef VAO | ||||
|    ss->ArrayObjects = _mesa_NewHashTable(); | ||||
| #endif | ||||
|  | ||||
|    /* Default Texture objects */ | ||||
|    outOfMemory = GL_FALSE; | ||||
| @@ -593,6 +597,8 @@ init_texture_unit( GLcontext *ctx, GLuint unit ) | ||||
| { | ||||
|    struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; | ||||
|  | ||||
|    texUnit->Enabled = 0; | ||||
|    texUnit->ReallyEnabled = 0; | ||||
|    texUnit->EnvMode = GL_MODULATE; | ||||
|    texUnit->CombineModeRGB = GL_MODULATE; | ||||
|    texUnit->CombineModeA = GL_MODULATE; | ||||
| @@ -1149,9 +1155,10 @@ init_attrib_groups( GLcontext *ctx ) | ||||
|    /* Texture group */ | ||||
|    ctx->Texture.CurrentUnit = 0;      /* multitexture */ | ||||
|    ctx->Texture.CurrentTransformUnit = 0; /* multitexture */ | ||||
|    ctx->Texture.Enabled = 0; | ||||
|    ctx->Texture.ReallyEnabled = 0; | ||||
|    for (i=0; i<MAX_TEXTURE_UNITS; i++) | ||||
|       init_texture_unit( ctx, i ); | ||||
|    ctx->Texture.SharedPalette = GL_FALSE; | ||||
|    _mesa_init_colortable(&ctx->Texture.Palette); | ||||
|  | ||||
|    /* Transformation group */ | ||||
| @@ -1184,6 +1191,13 @@ init_attrib_groups( GLcontext *ctx ) | ||||
|    ctx->Viewport.WindowMap.type = MATRIX_3D_NO_ROT; | ||||
|  | ||||
|    /* Vertex arrays */ | ||||
| #ifdef VAO | ||||
|    { | ||||
|       struct gl_array_object *arrayObj; | ||||
|       arrayObj = _mesa_alloc_vertex_array_object(ctx, 0); | ||||
|       ctx->Array.Current = arrayObj; | ||||
|    } | ||||
| #else | ||||
|    ctx->Array.Vertex.Size = 4; | ||||
|    ctx->Array.Vertex.Type = GL_FLOAT; | ||||
|    ctx->Array.Vertex.Stride = 0; | ||||
| @@ -1219,6 +1233,7 @@ init_attrib_groups( GLcontext *ctx ) | ||||
|    ctx->Array.EdgeFlag.StrideB = 0; | ||||
|    ctx->Array.EdgeFlag.Ptr = NULL; | ||||
|    ctx->Array.EdgeFlag.Enabled = GL_FALSE; | ||||
| #endif | ||||
|    ctx->Array.ActiveTexture = 0;   /* GL_ARB_multitexture */ | ||||
|  | ||||
|    /* Pixel transfer */ | ||||
| @@ -1376,7 +1391,8 @@ alloc_proxy_textures( GLcontext *ctx ) | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Initialize a GLcontext struct. | ||||
|  * Initialize a GLcontext struct.  This includes allocating all the | ||||
|  * other structs and arrays which hang off of the context by pointers. | ||||
|  */ | ||||
| GLboolean | ||||
| _mesa_initialize_context( GLcontext *ctx, | ||||
| @@ -1399,7 +1415,6 @@ _mesa_initialize_context( GLcontext *ctx, | ||||
|  | ||||
|    ctx->VB = gl_vb_create_for_immediate( ctx ); | ||||
|    if (!ctx->VB) { | ||||
|       FREE( ctx ); | ||||
|       return GL_FALSE; | ||||
|    } | ||||
|    ctx->input = ctx->VB->IM; | ||||
| @@ -1407,7 +1422,6 @@ _mesa_initialize_context( GLcontext *ctx, | ||||
|    ctx->PB = gl_alloc_pb(); | ||||
|    if (!ctx->PB) { | ||||
|       ALIGN_FREE( ctx->VB ); | ||||
|       FREE( ctx ); | ||||
|       return GL_FALSE; | ||||
|    } | ||||
|  | ||||
| @@ -1421,7 +1435,6 @@ _mesa_initialize_context( GLcontext *ctx, | ||||
|       if (!ctx->Shared) { | ||||
|          ALIGN_FREE( ctx->VB ); | ||||
|          FREE( ctx->PB ); | ||||
|          FREE( ctx ); | ||||
|          return GL_FALSE; | ||||
|       } | ||||
|    } | ||||
| @@ -1453,7 +1466,6 @@ _mesa_initialize_context( GLcontext *ctx, | ||||
|       free_shared_state(ctx, ctx->Shared); | ||||
|       ALIGN_FREE( ctx->VB ); | ||||
|       FREE( ctx->PB ); | ||||
|       FREE( ctx ); | ||||
|       return GL_FALSE; | ||||
|    } | ||||
|  | ||||
| @@ -1484,7 +1496,6 @@ _mesa_initialize_context( GLcontext *ctx, | ||||
|       FREE( ctx->PB ); | ||||
|       if (ctx->Exec) | ||||
|          FREE( ctx->Exec ); | ||||
|       FREE( ctx ); | ||||
|    } | ||||
|    _mesa_init_exec_table(ctx->Exec, dispatchSize); | ||||
|    _mesa_init_dlist_table(ctx->Save, dispatchSize); | ||||
|   | ||||
| @@ -1,7 +1,8 @@ | ||||
| /* $Id: dd.h,v 1.26.4.4 2000/09/28 18:25:00 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -640,18 +641,31 @@ struct dd_function_table { | ||||
|     * Core Mesa will perform any image format/type conversions that are needed. | ||||
|     */ | ||||
|  | ||||
|    GLboolean (*TestProxyTexImage)(GLcontext *ctx, GLenum target, | ||||
|                                   GLint level, GLint internalFormat, | ||||
|                                   GLenum format, GLenum type, | ||||
|                                   GLint width, GLint height, | ||||
|                                   GLint depth, GLint border); | ||||
|    /* Called by glTexImage[123]D when user specifies a proxy texture | ||||
|     * target.  Return GL_TRUE if the proxy test passes, return GL_FALSE | ||||
|     * if the test fails. | ||||
|     */ | ||||
|  | ||||
|    GLboolean (*CompressedTexImage1D)( GLcontext *ctx, GLenum target, | ||||
|                                       GLint level, const GLvoid *data, | ||||
|                                       GLint level, GLsizei imageSize, | ||||
|                                       const GLvoid *data, | ||||
|                                       struct gl_texture_object *texObj, | ||||
|                                       struct gl_texture_image *texImage, | ||||
|                                       GLboolean *retainInternalCopy); | ||||
|    GLboolean (*CompressedTexImage2D)( GLcontext *ctx, GLenum target, | ||||
|                                       GLint level, const GLvoid *data, | ||||
|                                       GLint level, GLsizei imageSize, | ||||
|                                       const GLvoid *data, | ||||
|                                       struct gl_texture_object *texObj, | ||||
|                                       struct gl_texture_image *texImage, | ||||
|                                       GLboolean *retainInternalCopy); | ||||
|    GLboolean (*CompressedTexImage3D)( GLcontext *ctx, GLenum target, | ||||
|                                       GLint level, const GLvoid *data, | ||||
|                                       GLint level, GLsizei imageSize, | ||||
|                                       const GLvoid *data, | ||||
|                                       struct gl_texture_object *texObj, | ||||
|                                       struct gl_texture_image *texImage, | ||||
|                                       GLboolean *retainInternalCopy); | ||||
| @@ -699,6 +713,49 @@ struct dd_function_table { | ||||
|     * should do the job. | ||||
|     */ | ||||
|  | ||||
|    GLint (*BaseCompressedTexFormat)(GLcontext *ctx, | ||||
|                                     GLint internalFormat); | ||||
|    /* Called to compute the base format for a specific compressed | ||||
|     * format.  Return -1 if the internalFormat is not a specific | ||||
|     * compressed format that the driver recognizes.  Note the | ||||
|     * return value differences between this function and | ||||
|     * SpecificCompressedTexFormat below. | ||||
|     */ | ||||
|  | ||||
|    GLint (*SpecificCompressedTexFormat)(GLcontext *ctx, | ||||
|                                         GLint      internalFormat, | ||||
|                                         GLint      numDimensions, | ||||
|                                         GLint     *levelp, | ||||
|                                         GLsizei   *widthp, | ||||
|                                         GLsizei   *heightp, | ||||
|                                         GLsizei   *depthp, | ||||
|                                         GLint     *borderp, | ||||
|                                         GLenum    *formatp, | ||||
|                                         GLenum    *typep); | ||||
|    /* Called to turn a generic texture format into a specific | ||||
|     * texture format.  For example, if a driver implements | ||||
|     * GL_3DFX_texture_compression_FXT1, this would map | ||||
|     * GL_COMPRESSED_RGBA_ARB to GL_COMPRESSED_RGBA_FXT1_3DFX. | ||||
|     * | ||||
|     * If the driver does not know how to handle the compressed | ||||
|     * format, then just return the generic format, and Mesa will | ||||
|     * do the right thing with it. | ||||
|     */ | ||||
|  | ||||
|    GLboolean (*IsCompressedFormat)(GLcontext *ctx, GLint internalFormat); | ||||
|    /* Called to tell if a format is a compressed format. | ||||
|     */ | ||||
|  | ||||
|    GLsizei (*CompressedImageSize)(GLcontext *ctx, | ||||
|                                   GLenum internalFormat, | ||||
|                                   GLuint numDimensions, | ||||
|                                   GLuint width, | ||||
|                                   GLuint height, | ||||
|                                   GLuint depth); | ||||
|    /* Calculate the size of a compressed image, given the image's | ||||
|     * format and dimensions. | ||||
|     */ | ||||
|  | ||||
|    void (*GetCompressedTexImage)( GLcontext *ctx, GLenum target, | ||||
|                                   GLint lod, void *image, | ||||
|                                   const struct gl_texture_object *texObj, | ||||
| @@ -759,7 +816,7 @@ struct dd_function_table { | ||||
|  | ||||
|  | ||||
|    /*** | ||||
|     *** Accelerated point, line, polygon, glDrawPixels and glBitmap functions: | ||||
|     *** Accelerated point, line, polygon, quad and rect functions: | ||||
|     ***/ | ||||
|  | ||||
|    points_func   PointsFunc; | ||||
| @@ -906,6 +963,16 @@ struct dd_function_table { | ||||
|    void (*StencilMask)(GLcontext *ctx, GLuint mask); | ||||
|    void (*StencilOp)(GLcontext *ctx, GLenum fail, GLenum zfail, GLenum zpass); | ||||
|    void (*Viewport)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h); | ||||
|  | ||||
|    /* State-query functions | ||||
|     * | ||||
|     * Return GL_TRUE if query was completed, GL_FALSE otherwise. | ||||
|     */ | ||||
|    GLboolean (*GetBooleanv)(GLcontext *ctx, GLenum pname, GLboolean *result); | ||||
|    GLboolean (*GetDoublev)(GLcontext *ctx, GLenum pname, GLdouble *result); | ||||
|    GLboolean (*GetFloatv)(GLcontext *ctx, GLenum pname, GLfloat *result); | ||||
|    GLboolean (*GetIntegerv)(GLcontext *ctx, GLenum pname, GLint *result); | ||||
|    GLboolean (*GetPointerv)(GLcontext *ctx, GLenum pname, GLvoid **result); | ||||
| }; | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: depth.c,v 1.17 2000/04/11 20:42:22 brianp Exp $ */ | ||||
| /* $Id: depth.c,v 1.17.4.2 2001/02/08 15:54:33 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -1458,14 +1458,14 @@ _mesa_read_depth_span( GLcontext *ctx, | ||||
|       /* read from software depth buffer */ | ||||
|       if (ctx->Visual->DepthBits <= 16) { | ||||
|          const GLushort *zptr = Z_ADDRESS16( ctx, x, y ); | ||||
|          GLuint i; | ||||
|          GLint i; | ||||
|          for (i = 0; i < n; i++) { | ||||
|             depth[i] = zptr[i]; | ||||
|          } | ||||
|       } | ||||
|       else { | ||||
|          const GLuint *zptr = Z_ADDRESS32( ctx, x, y ); | ||||
|          GLuint i; | ||||
|          GLint i; | ||||
|          for (i = 0; i < n; i++) { | ||||
|             depth[i] = zptr[i]; | ||||
|          } | ||||
| @@ -1530,14 +1530,14 @@ _mesa_read_depth_span_float( GLcontext *ctx, | ||||
|       /* read from software depth buffer */ | ||||
|       if (ctx->Visual->DepthBits <= 16) { | ||||
|          const GLushort *zptr = Z_ADDRESS16( ctx, x, y ); | ||||
|          GLuint i; | ||||
|          GLint i; | ||||
|          for (i = 0; i < n; i++) { | ||||
|             depth[i] = (GLfloat) zptr[i] * scale; | ||||
|          } | ||||
|       } | ||||
|       else { | ||||
|          const GLuint *zptr = Z_ADDRESS32( ctx, x, y ); | ||||
|          GLuint i; | ||||
|          GLint i; | ||||
|          for (i = 0; i < n; i++) { | ||||
|             depth[i] = (GLfloat) zptr[i] * scale; | ||||
|          } | ||||
| @@ -1546,7 +1546,7 @@ _mesa_read_depth_span_float( GLcontext *ctx, | ||||
|    else if (ctx->Driver.ReadDepthSpan) { | ||||
|       /* read from hardware depth buffer */ | ||||
|       GLdepth d[MAX_WIDTH]; | ||||
|       GLuint i; | ||||
|       GLint i; | ||||
|       assert(n <= MAX_WIDTH); | ||||
|       (*ctx->Driver.ReadDepthSpan)( ctx, n, x, y, d ); | ||||
|       for (i = 0; i < n; i++) { | ||||
| @@ -1630,29 +1630,31 @@ _mesa_clear_depth_buffer( GLcontext *ctx ) | ||||
|       if (ctx->Visual->DepthBits <= 16) { | ||||
|          const GLushort clearValue = (GLushort) (ctx->Depth.Clear * ctx->Visual->DepthMax); | ||||
|          const GLint rows = ctx->DrawBuffer->Ymax - ctx->DrawBuffer->Ymin + 1; | ||||
|          const GLint width = ctx->DrawBuffer->Width; | ||||
|          const GLint cols = ctx->DrawBuffer->Xmax - ctx->DrawBuffer->Xmin + 1; | ||||
|          const GLint rowStride = ctx->DrawBuffer->Width; | ||||
|          GLushort *dRow = (GLushort *) ctx->DrawBuffer->DepthBuffer | ||||
|             + ctx->DrawBuffer->Ymin * width + ctx->DrawBuffer->Xmin; | ||||
|             + ctx->DrawBuffer->Ymin * rowStride + ctx->DrawBuffer->Xmin; | ||||
|          GLint i, j; | ||||
|          for (i = 0; i < rows; i++) { | ||||
|             for (j = 0; j < width; j++) { | ||||
|             for (j = 0; j < cols; j++) { | ||||
|                dRow[j] = clearValue; | ||||
|             } | ||||
|             dRow += width; | ||||
|             dRow += rowStride; | ||||
|          } | ||||
|       } | ||||
|       else { | ||||
|          const GLuint clearValue = (GLuint) (ctx->Depth.Clear * ctx->Visual->DepthMax); | ||||
|          const GLint rows = ctx->DrawBuffer->Ymax - ctx->DrawBuffer->Ymin + 1; | ||||
|          const GLint width = ctx->DrawBuffer->Width; | ||||
|          const GLint cols = ctx->DrawBuffer->Xmax - ctx->DrawBuffer->Xmin + 1; | ||||
|          const GLint rowStride = ctx->DrawBuffer->Width; | ||||
|          GLuint *dRow = (GLuint *) ctx->DrawBuffer->DepthBuffer | ||||
|             + ctx->DrawBuffer->Ymin * width + ctx->DrawBuffer->Xmin; | ||||
|             + ctx->DrawBuffer->Ymin * rowStride + ctx->DrawBuffer->Xmin; | ||||
|          GLint i, j; | ||||
|          for (i = 0; i < rows; i++) { | ||||
|             for (j = 0; j < width; j++) { | ||||
|             for (j = 0; j < cols; j++) { | ||||
|                dRow[j] = clearValue; | ||||
|             } | ||||
|             dRow += width; | ||||
|             dRow += rowStride; | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|   | ||||
| @@ -13,7 +13,7 @@ VPATH = RCS | ||||
|  | ||||
| INCDIR = [-.include] | ||||
| LIBDIR = [-.lib] | ||||
| CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1) | ||||
| CFLAGS = /include=($(INCDIR),[])/define=(FBIND=1)/name=(as_is,short) | ||||
|  | ||||
| CORE_SOURCES = aatriangle.c accum.c alpha.c alphabuf.c attrib.c \ | ||||
| bitmap.c blend.c buffers.c clip.c colortab.c context.c copypix.c depth.c \ | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: drawpix.c,v 1.26 2000/06/30 22:19:41 brianp Exp $ */ | ||||
| /* $Id: drawpix.c,v 1.26.4.7 2000/11/05 21:24:00 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -122,11 +122,10 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|        && ctx->ColorMatrix.type == MATRIX_IDENTITY | ||||
|        && !ctx->Pixel.ColorTableEnabled | ||||
|        && !ctx->Pixel.PostColorMatrixColorTableEnabled | ||||
|        && ctx->Pixel.PostConvolutionColorTableEnabled | ||||
|        && !ctx->Pixel.PostConvolutionColorTableEnabled | ||||
|        && !ctx->Pixel.MinMaxEnabled | ||||
|        && !ctx->Pixel.HistogramEnabled | ||||
|        && ctx->Pixel.IndexShift==0 && ctx->Pixel.IndexOffset==0 | ||||
|        && ctx->Pixel.MapColorFlag==0 | ||||
|        && ctx->Texture.ReallyEnabled == 0 | ||||
|        && unpack->Alignment==1 | ||||
|        && !unpack->SwapBytes | ||||
| @@ -140,7 +139,7 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|       GLint skipRows = unpack->SkipRows; | ||||
|       GLint rowLength; | ||||
|       GLdepth zSpan[MAX_WIDTH];  /* only used when zooming */ | ||||
|       GLint zoomY0; | ||||
|       GLint zoomY0 = 0; | ||||
|  | ||||
|       if (unpack->RowLength > 0) | ||||
|          rowLength = unpack->RowLength; | ||||
| @@ -173,14 +172,36 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|             drawHeight -= (destY + drawHeight - ctx->DrawBuffer->Ymax - 1); | ||||
|          if (drawHeight <= 0) | ||||
|             return GL_TRUE; | ||||
|       } | ||||
|       else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) { | ||||
|          /* upside-down image */ | ||||
|          /* horizontal clipping */ | ||||
|          if (destX < ctx->DrawBuffer->Xmin) { | ||||
|             skipPixels += (ctx->DrawBuffer->Xmin - destX); | ||||
|             drawWidth  -= (ctx->DrawBuffer->Xmin - destX); | ||||
|             destX = ctx->DrawBuffer->Xmin; | ||||
|          } | ||||
|          if (destX + drawWidth > ctx->DrawBuffer->Xmax) | ||||
|             drawWidth -= (destX + drawWidth - ctx->DrawBuffer->Xmax - 1); | ||||
|          if (drawWidth <= 0) | ||||
|             return GL_TRUE; | ||||
|  | ||||
|          zoomY0 = 0;  /* not used - silence compiler warning */ | ||||
|          /* vertical clipping */ | ||||
|          if (destY > ctx->DrawBuffer->Ymax) { | ||||
|             skipRows   += (destY - ctx->DrawBuffer->Ymax - 1); | ||||
|             drawHeight -= (destY - ctx->DrawBuffer->Ymax - 1); | ||||
|             destY = ctx->DrawBuffer->Ymax + 1; | ||||
|          } | ||||
|          if (destY - drawHeight < ctx->DrawBuffer->Ymin) | ||||
|             drawHeight -= (ctx->DrawBuffer->Ymin - (destY - drawHeight)); | ||||
|          if (drawHeight <= 0) | ||||
|             return GL_TRUE; | ||||
|       } | ||||
|       else { | ||||
|          /* setup array of fragment Z value to pass to zoom function */ | ||||
|          GLdepth z = (GLdepth) (ctx->Current.RasterPos[2] * ctx->Visual->DepthMaxF); | ||||
|          GLint i; | ||||
|          assert(drawWidth < MAX_WIDTH); | ||||
|          ASSERT(drawWidth < MAX_WIDTH); | ||||
|          for (i=0; i<drawWidth; i++) | ||||
|             zSpan[i] = z; | ||||
|  | ||||
| @@ -197,7 +218,8 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|        * skip "skipRows" rows and skip "skipPixels" pixels/row. | ||||
|        */ | ||||
|  | ||||
|       if (format==GL_RGBA && type==GL_UNSIGNED_BYTE) { | ||||
|       if (format==GL_RGBA && type==GL_UNSIGNED_BYTE | ||||
|           && ctx->Pixel.MapColorFlag==0) { | ||||
|          if (ctx->Visual->RGBAflag) { | ||||
|             GLubyte *src = (GLubyte *) pixels | ||||
|                + (skipRows * rowLength + skipPixels) * 4; | ||||
| @@ -206,17 +228,27 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|                GLint row; | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   (*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY, | ||||
|                                                (void *) src, NULL); | ||||
|                                              (CONST GLubyte (*)[4]) src, NULL); | ||||
|                   src += rowLength * 4; | ||||
|                   destY++; | ||||
|                } | ||||
|             } | ||||
|             else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) { | ||||
|                /* upside-down */ | ||||
|                GLint row; | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   destY--; | ||||
|                   (*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY, | ||||
|                                              (CONST GLubyte (*)[4]) src, NULL); | ||||
|                   src += rowLength * 4; | ||||
|                } | ||||
|             } | ||||
|             else { | ||||
|                /* with zooming */ | ||||
|                GLint row; | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   gl_write_zoomed_rgba_span(ctx, drawWidth, destX, destY, | ||||
|                                             zSpan, (void *) src, zoomY0); | ||||
|                                     zSpan, (CONST GLubyte (*)[4]) src, zoomY0); | ||||
|                   src += rowLength * 4; | ||||
|                   destY++; | ||||
|                } | ||||
| @@ -224,7 +256,8 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|          } | ||||
|          return GL_TRUE; | ||||
|       } | ||||
|       else if (format==GL_RGB && type==GL_UNSIGNED_BYTE) { | ||||
|       else if (format==GL_RGB && type==GL_UNSIGNED_BYTE | ||||
|                && ctx->Pixel.MapColorFlag==0) { | ||||
|          if (ctx->Visual->RGBAflag) { | ||||
|             GLubyte *src = (GLubyte *) pixels | ||||
|                + (skipRows * rowLength + skipPixels) * 3; | ||||
| @@ -232,17 +265,27 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|                GLint row; | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   (*ctx->Driver.WriteRGBSpan)(ctx, drawWidth, destX, destY, | ||||
|                                               (void *) src, NULL); | ||||
|                                              (CONST GLubyte (*)[3]) src, NULL); | ||||
|                   src += rowLength * 3; | ||||
|                   destY++; | ||||
|                } | ||||
|             } | ||||
|             else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) { | ||||
|                /* upside-down */ | ||||
|                GLint row; | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   destY--; | ||||
|                   (*ctx->Driver.WriteRGBSpan)(ctx, drawWidth, destX, destY, | ||||
|                                              (CONST GLubyte (*)[3]) src, NULL); | ||||
|                   src += rowLength * 3; | ||||
|                } | ||||
|             } | ||||
|             else { | ||||
|                /* with zooming */ | ||||
|                GLint row; | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   gl_write_zoomed_rgb_span(ctx, drawWidth, destX, destY, | ||||
|                                            zSpan, (void *) src, zoomY0); | ||||
|                                     zSpan, (CONST GLubyte (*)[3]) src, zoomY0); | ||||
|                   src += rowLength * 3; | ||||
|                   destY++; | ||||
|                } | ||||
| @@ -250,14 +293,15 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|          } | ||||
|          return GL_TRUE; | ||||
|       } | ||||
|       else if (format==GL_LUMINANCE && type==GL_UNSIGNED_BYTE) { | ||||
|       else if (format==GL_LUMINANCE && type==GL_UNSIGNED_BYTE | ||||
|                && ctx->Pixel.MapColorFlag==0) { | ||||
|          if (ctx->Visual->RGBAflag) { | ||||
|             GLubyte *src = (GLubyte *) pixels | ||||
|                + (skipRows * rowLength + skipPixels); | ||||
|             if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==1.0F) { | ||||
|                /* no zooming */ | ||||
|                GLint row; | ||||
|                assert(drawWidth < MAX_WIDTH); | ||||
|                ASSERT(drawWidth < MAX_WIDTH); | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   GLint i; | ||||
| 		  for (i=0;i<drawWidth;i++) { | ||||
| @@ -266,15 +310,32 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|                      rgb[i][2] = src[i]; | ||||
| 		  } | ||||
|                   (*ctx->Driver.WriteRGBSpan)(ctx, drawWidth, destX, destY, | ||||
|                                               (void *) rgb, NULL); | ||||
|                                              (CONST GLubyte (*)[3]) rgb, NULL); | ||||
|                   src += rowLength; | ||||
|                   destY++; | ||||
|                } | ||||
|             } | ||||
|             else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) { | ||||
|                /* upside-down */ | ||||
|                GLint row; | ||||
|                ASSERT(drawWidth < MAX_WIDTH); | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   GLint i; | ||||
|                   for (i=0;i<drawWidth;i++) { | ||||
|                      rgb[i][0] = src[i]; | ||||
|                      rgb[i][1] = src[i]; | ||||
|                      rgb[i][2] = src[i]; | ||||
|                   } | ||||
|                   destY--; | ||||
|                   (*ctx->Driver.WriteRGBSpan)(ctx, drawWidth, destX, destY, | ||||
|                                              (CONST GLubyte (*)[3]) rgb, NULL); | ||||
|                   src += rowLength; | ||||
|                } | ||||
|             } | ||||
|             else { | ||||
|                /* with zooming */ | ||||
|                GLint row; | ||||
|                assert(drawWidth < MAX_WIDTH); | ||||
|                ASSERT(drawWidth < MAX_WIDTH); | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   GLint i; | ||||
| 		  for (i=0;i<drawWidth;i++) { | ||||
| @@ -283,7 +344,7 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|                      rgb[i][2] = src[i]; | ||||
| 		  } | ||||
|                   gl_write_zoomed_rgb_span(ctx, drawWidth, destX, destY, | ||||
|                                            zSpan, (void *) rgb, zoomY0); | ||||
|                                     zSpan, (CONST GLubyte (*)[3]) rgb, zoomY0); | ||||
|                   src += rowLength; | ||||
|                   destY++; | ||||
|                } | ||||
| @@ -291,14 +352,15 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|          } | ||||
|          return GL_TRUE; | ||||
|       } | ||||
|       else if (format==GL_LUMINANCE_ALPHA && type==GL_UNSIGNED_BYTE) { | ||||
|       else if (format==GL_LUMINANCE_ALPHA && type==GL_UNSIGNED_BYTE | ||||
|                && ctx->Pixel.MapColorFlag==0) { | ||||
|          if (ctx->Visual->RGBAflag) { | ||||
|             GLubyte *src = (GLubyte *) pixels | ||||
|                + (skipRows * rowLength + skipPixels)*2; | ||||
|             if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==1.0F) { | ||||
|                /* no zooming */ | ||||
|                GLint row; | ||||
|                assert(drawWidth < MAX_WIDTH); | ||||
|                ASSERT(drawWidth < MAX_WIDTH); | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   GLint i; | ||||
|                   GLubyte *ptr = src; | ||||
| @@ -309,15 +371,34 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|                      rgba[i][3] = *ptr++; | ||||
| 		  } | ||||
|                   (*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY, | ||||
|                                                (void *) rgba, NULL); | ||||
|                                             (CONST GLubyte (*)[4]) rgba, NULL); | ||||
|                   src += rowLength*2; | ||||
|                   destY++; | ||||
|                } | ||||
|             } | ||||
|             else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) { | ||||
|                /* upside-down */ | ||||
|                GLint row; | ||||
|                ASSERT(drawWidth < MAX_WIDTH); | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   GLint i; | ||||
|                   GLubyte *ptr = src; | ||||
|                   for (i=0;i<drawWidth;i++) { | ||||
|                      rgba[i][0] = *ptr; | ||||
|                      rgba[i][1] = *ptr; | ||||
|                      rgba[i][2] = *ptr++; | ||||
|                      rgba[i][3] = *ptr++; | ||||
|                   } | ||||
|                   destY--; | ||||
|                   (*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY, | ||||
|                                             (CONST GLubyte (*)[4]) rgba, NULL); | ||||
|                   src += rowLength*2; | ||||
|                } | ||||
|             } | ||||
|             else { | ||||
|                /* with zooming */ | ||||
|                GLint row; | ||||
|                assert(drawWidth < MAX_WIDTH); | ||||
|                ASSERT(drawWidth < MAX_WIDTH); | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   GLubyte *ptr = src; | ||||
|                   GLint i; | ||||
| @@ -328,7 +409,7 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|                      rgba[i][3] = *ptr++; | ||||
| 		  } | ||||
|                   gl_write_zoomed_rgba_span(ctx, drawWidth, destX, destY, | ||||
|                                             zSpan, (void *) rgba, zoomY0); | ||||
|                                    zSpan, (CONST GLubyte (*)[4]) rgba, zoomY0); | ||||
|                   src += rowLength*2; | ||||
|                   destY++; | ||||
|                } | ||||
| @@ -344,24 +425,38 @@ simple_DrawPixels( GLcontext *ctx, GLint x, GLint y, | ||||
|                /* no zooming */ | ||||
|                GLint row; | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   assert(drawWidth < MAX_WIDTH); | ||||
|                   ASSERT(drawWidth < MAX_WIDTH); | ||||
|                   _mesa_map_ci8_to_rgba(ctx, drawWidth, src, rgba); | ||||
|                   (*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY, | ||||
|                                                (const GLubyte (*)[4])rgba,  | ||||
|                                                (CONST GLubyte (*)[4])rgba,  | ||||
| 					       NULL); | ||||
|                   src += rowLength; | ||||
|                   destY++; | ||||
|                } | ||||
|                return GL_TRUE; | ||||
|             } | ||||
|             else if (ctx->Pixel.ZoomX==1.0F && ctx->Pixel.ZoomY==-1.0F) { | ||||
|                /* upside-down */ | ||||
|                GLint row; | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   ASSERT(drawWidth < MAX_WIDTH); | ||||
|                   _mesa_map_ci8_to_rgba(ctx, drawWidth, src, rgba); | ||||
|                   destY--; | ||||
|                   (*ctx->Driver.WriteRGBASpan)(ctx, drawWidth, destX, destY, | ||||
|                                                (CONST GLubyte (*)[4])rgba,  | ||||
|                                                NULL); | ||||
|                   src += rowLength; | ||||
|                } | ||||
|                return GL_TRUE; | ||||
|             } | ||||
|             else { | ||||
|                /* with zooming */ | ||||
|                GLint row; | ||||
|                for (row=0; row<drawHeight; row++) { | ||||
|                   assert(drawWidth < MAX_WIDTH); | ||||
|                   ASSERT(drawWidth < MAX_WIDTH); | ||||
|                   _mesa_map_ci8_to_rgba(ctx, drawWidth, src, rgba); | ||||
|                   gl_write_zoomed_rgba_span(ctx, drawWidth, destX, destY, | ||||
|                                             zSpan, (void *) rgba, zoomY0); | ||||
|                                    zSpan, (CONST GLubyte (*)[4]) rgba, zoomY0); | ||||
|                   src += rowLength; | ||||
|                   destY++; | ||||
|                } | ||||
| @@ -551,8 +646,9 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y, | ||||
|       GLint row; | ||||
|       for (row = 0; row < height; row++, y++) { | ||||
|          GLdepth zspan[MAX_WIDTH]; | ||||
|          const GLushort *zptr = _mesa_image_address(&ctx->Unpack, | ||||
|                 pixels, width, height, GL_DEPTH_COMPONENT, type, 0, row, 0); | ||||
|          const GLushort *zptr = (const GLushort *) | ||||
|             _mesa_image_address(&ctx->Unpack, pixels, width, height, | ||||
|                                 GL_DEPTH_COMPONENT, type, 0, row, 0); | ||||
|          GLint i; | ||||
|          for (i = 0; i < width; i++) | ||||
|             zspan[i] = zptr[i]; | ||||
| @@ -564,8 +660,9 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y, | ||||
|       /* Special case: directly write 32-bit depth values */ | ||||
|       GLint row; | ||||
|       for (row = 0; row < height; row++, y++) { | ||||
|          const GLuint *zptr = _mesa_image_address(&ctx->Unpack, | ||||
|                 pixels, width, height, GL_DEPTH_COMPONENT, type, 0, row, 0); | ||||
|          const GLuint *zptr = (const GLuint *) | ||||
|             _mesa_image_address(&ctx->Unpack, pixels, width, height, | ||||
|                                 GL_DEPTH_COMPONENT, type, 0, row, 0); | ||||
|          gl_write_rgba_span( ctx, width, x, y, zptr, rgba, GL_BITMAP ); | ||||
|       } | ||||
|    } | ||||
| @@ -581,7 +678,7 @@ draw_depth_pixels( GLcontext *ctx, GLint x, GLint y, | ||||
|          if (ctx->Visual->RGBAflag) { | ||||
|             if (zoom) { | ||||
|                gl_write_zoomed_rgba_span(ctx, width, x, y, zspan, | ||||
|                                          (const GLubyte (*)[4])rgba, desty); | ||||
|                                          (CONST GLubyte (*)[4])rgba, desty); | ||||
|             } | ||||
|             else { | ||||
|                gl_write_rgba_span(ctx, width, x, y, zspan, rgba, GL_BITMAP); | ||||
| @@ -616,6 +713,11 @@ draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y, | ||||
|    GLdepth zspan[MAX_WIDTH]; | ||||
|    GLboolean quickDraw; | ||||
|  | ||||
|    if (!_mesa_is_legal_format_and_type(format, type)) { | ||||
|       gl_error(ctx, GL_INVALID_ENUM, "glDrawPixels(format or type)"); | ||||
|       return; | ||||
|    } | ||||
|  | ||||
|    /* Try an optimized glDrawPixels first */ | ||||
|    if (simple_DrawPixels(ctx, x, y, width, height, format, type, pixels)) | ||||
|       return; | ||||
| @@ -652,8 +754,8 @@ draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y, | ||||
|       for (row = 0; row < height; row++, y++) { | ||||
|          const GLvoid *source = _mesa_image_address(unpack, | ||||
|                   pixels, width, height, format, type, 0, row, 0); | ||||
|          _mesa_unpack_ubyte_color_span(ctx, width, GL_RGBA, (void*) rgba, | ||||
|                    format, type, source, unpack, GL_TRUE); | ||||
|          _mesa_unpack_ubyte_color_span(ctx, width, GL_RGBA, | ||||
|                    (GLubyte *) rgba, format, type, source, unpack, GL_TRUE); | ||||
|          if ((ctx->Pixel.MinMaxEnabled && ctx->MinMax.Sink) || | ||||
|              (ctx->Pixel.HistogramEnabled && ctx->Histogram.Sink)) | ||||
|             continue; | ||||
| @@ -667,7 +769,7 @@ draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y, | ||||
|             MEMCPY(primary_rgba, rgba, 4 * width * sizeof(GLubyte)); | ||||
|  | ||||
|             for (unit = 0; unit < MAX_TEXTURE_UNITS; unit++) { | ||||
|                _mesa_pixeltexgen(ctx, width, (const GLubyte (*)[4]) rgba, | ||||
|                _mesa_pixeltexgen(ctx, width, (CONST GLubyte (*)[4]) rgba, | ||||
|                                  s, t, r, q); | ||||
|                gl_texture_pixels(ctx, unit, width, s, t, r, NULL, | ||||
|                                  primary_rgba, rgba); | ||||
| @@ -676,11 +778,11 @@ draw_rgba_pixels( GLcontext *ctx, GLint x, GLint y, | ||||
|  | ||||
|          if (quickDraw) { | ||||
|             (*ctx->Driver.WriteRGBASpan)( ctx, width, x, y, | ||||
|                                           (CONST GLubyte (*)[]) rgba, NULL); | ||||
|                                           (CONST GLubyte (*)[4]) rgba, NULL); | ||||
|          } | ||||
|          else if (zoom) { | ||||
|             gl_write_zoomed_rgba_span( ctx, width, x, y, zspan,  | ||||
| 				       (CONST GLubyte (*)[]) rgba, desty ); | ||||
| 				       (CONST GLubyte (*)[4]) rgba, desty ); | ||||
|          } | ||||
|          else { | ||||
|             gl_write_rgba_span( ctx, (GLuint) width, x, y, zspan, rgba, GL_BITMAP); | ||||
| @@ -723,6 +825,7 @@ _mesa_DrawPixels( GLsizei width, GLsizei height, | ||||
|          return; | ||||
|       } | ||||
|  | ||||
|       RENDER_START(ctx); | ||||
|       switch (format) { | ||||
| 	 case GL_STENCIL_INDEX: | ||||
| 	    draw_stencil_pixels( ctx, x, y, width, height, type, pixels ); | ||||
| @@ -751,8 +854,8 @@ _mesa_DrawPixels( GLsizei width, GLsizei height, | ||||
| 	    break; | ||||
| 	 default: | ||||
| 	    gl_error( ctx, GL_INVALID_ENUM, "glDrawPixels(format)" ); | ||||
|             return; | ||||
|       } | ||||
|       RENDER_FINISH(ctx); | ||||
|    } | ||||
|    else if (ctx->RenderMode==GL_FEEDBACK) { | ||||
|       if (ctx->Current.RasterPosValid) { | ||||
|   | ||||
| @@ -1,10 +1,10 @@ | ||||
| /* $Id: enable.c,v 1.21 2000/05/23 15:17:12 brianp Exp $ */ | ||||
| /* $Id: enable.c,v 1.21.4.4 2001/02/12 17:21:24 brianp Exp $*/ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * 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"), | ||||
| @@ -49,7 +49,7 @@ | ||||
|  */ | ||||
| void _mesa_set_enable( GLcontext *ctx, GLenum cap, GLboolean state ) | ||||
| { | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH( ctx, "gl_enable/disable" ); | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH( ctx, state ? "glEnable" : "glDisable" ); | ||||
|  | ||||
|    if (MESA_VERBOSE & VERBOSE_API)  | ||||
|       fprintf(stderr, "%s %s (newstate is %x)\n",  | ||||
| @@ -285,12 +285,14 @@ void _mesa_set_enable( GLcontext *ctx, GLenum cap, GLboolean state ) | ||||
|       case GL_POINT_SMOOTH: | ||||
| 	 if (ctx->Point.SmoothFlag!=state) { | ||||
|             ctx->Point.SmoothFlag = state; | ||||
| 	    ctx->TriangleCaps ^= DD_POINT_SMOOTH; | ||||
|             ctx->NewState |= NEW_RASTER_OPS; | ||||
|          } | ||||
| 	 break; | ||||
|       case GL_POLYGON_SMOOTH: | ||||
| 	 if (ctx->Polygon.SmoothFlag!=state) { | ||||
|             ctx->Polygon.SmoothFlag = state; | ||||
| 	    ctx->TriangleCaps ^= DD_TRI_SMOOTH; | ||||
|             ctx->NewState |= NEW_RASTER_OPS; | ||||
|          } | ||||
| 	 break; | ||||
| @@ -350,48 +352,39 @@ void _mesa_set_enable( GLcontext *ctx, GLenum cap, GLboolean state ) | ||||
|       case GL_TEXTURE_1D: | ||||
|          if (ctx->Visual->RGBAflag) { | ||||
| 	    const GLuint curr = ctx->Texture.CurrentUnit; | ||||
| 	    const GLuint flag = TEXTURE0_1D << (curr * 4); | ||||
|             struct gl_texture_unit *texUnit = &ctx->Texture.Unit[curr]; | ||||
| 	    ctx->NewState |= NEW_TEXTURE_ENABLE; | ||||
|             if (state) { | ||||
| 	       texUnit->Enabled |= TEXTURE0_1D; | ||||
| 	       ctx->Enabled |= flag; | ||||
| 	    } | ||||
|             else { | ||||
|                texUnit->Enabled &= ~TEXTURE0_1D; | ||||
|                ctx->Enabled &= ~flag; | ||||
|             } | ||||
|          } | ||||
|          break; | ||||
|       case GL_TEXTURE_2D: | ||||
|          if (ctx->Visual->RGBAflag) { | ||||
| 	    const GLuint curr = ctx->Texture.CurrentUnit; | ||||
| 	    const GLuint flag = TEXTURE0_2D << (curr * 4); | ||||
|             struct gl_texture_unit *texUnit = &ctx->Texture.Unit[curr]; | ||||
| 	    ctx->NewState |= NEW_TEXTURE_ENABLE; | ||||
|             if (state) { | ||||
| 	       texUnit->Enabled |= TEXTURE0_2D; | ||||
| 	       ctx->Enabled |= flag; | ||||
| 	    } | ||||
|             else { | ||||
|                texUnit->Enabled &= ~TEXTURE0_2D; | ||||
|                ctx->Enabled &= ~flag; | ||||
|             } | ||||
|          } | ||||
| 	 break; | ||||
|       case GL_TEXTURE_3D: | ||||
|          if (ctx->Visual->RGBAflag) { | ||||
| 	    const GLuint curr = ctx->Texture.CurrentUnit; | ||||
| 	    const GLuint flag = TEXTURE0_3D << (curr * 4); | ||||
|             struct gl_texture_unit *texUnit = &ctx->Texture.Unit[curr]; | ||||
| 	    ctx->NewState |= NEW_TEXTURE_ENABLE; | ||||
|             if (state) { | ||||
| 	       texUnit->Enabled |= TEXTURE0_3D; | ||||
| 	       ctx->Enabled |= flag; | ||||
| 	    } | ||||
|             else { | ||||
|                texUnit->Enabled &= ~TEXTURE0_3D; | ||||
|                ctx->Enabled &= ~flag; | ||||
|             } | ||||
|          } | ||||
|          break; | ||||
| @@ -440,22 +433,46 @@ void _mesa_set_enable( GLcontext *ctx, GLenum cap, GLboolean state ) | ||||
|        * CLIENT STATE!!! | ||||
|        */ | ||||
|       case GL_VERTEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->Vertex.Enabled = state; | ||||
| #else | ||||
|          ctx->Array.Vertex.Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->Normal.Enabled = state; | ||||
| #else | ||||
|          ctx->Array.Normal.Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->Color.Enabled = state; | ||||
| #else | ||||
|          ctx->Array.Color.Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->Index.Enabled = state; | ||||
| #else | ||||
|          ctx->Array.Index.Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->TexCoord[ctx->Array.ActiveTexture].Enabled = state; | ||||
| #else | ||||
|          ctx->Array.TexCoord[ctx->Array.ActiveTexture].Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->EdgeFlag.Enabled = state; | ||||
| #else | ||||
|          ctx->Array.EdgeFlag.Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|  | ||||
|       /* GL_HP_occlusion_test */ | ||||
| @@ -511,35 +528,24 @@ void _mesa_set_enable( GLcontext *ctx, GLenum cap, GLboolean state ) | ||||
|          if (ctx->Extensions.HaveTextureCubeMap) { | ||||
|             if (ctx->Visual->RGBAflag) { | ||||
|                const GLuint curr = ctx->Texture.CurrentUnit; | ||||
|                const GLuint flag = TEXTURE0_CUBE << (curr * 4); | ||||
|                struct gl_texture_unit *texUnit = &ctx->Texture.Unit[curr]; | ||||
|                ctx->NewState |= NEW_TEXTURE_ENABLE; | ||||
|                if (state) { | ||||
|                   texUnit->Enabled |= TEXTURE0_CUBE; | ||||
|                   ctx->Enabled |= flag; | ||||
|                } | ||||
|                else { | ||||
|                   texUnit->Enabled &= ~TEXTURE0_CUBE; | ||||
|                   ctx->Enabled &= ~flag; | ||||
|                } | ||||
|             } | ||||
|          } | ||||
|          else { | ||||
|             if (state) | ||||
|                gl_error(ctx, GL_INVALID_ENUM, "glEnable"); | ||||
|             else | ||||
|                gl_error(ctx, GL_INVALID_ENUM, "glDisable"); | ||||
|             gl_error(ctx, GL_INVALID_ENUM, state ? "glEnable" : "glDisable"); | ||||
|             return; | ||||
|          } | ||||
| 	 break; | ||||
|  | ||||
|       default: | ||||
| 	 if (state) { | ||||
| 	    gl_error( ctx, GL_INVALID_ENUM, "glEnable" ); | ||||
| 	 } | ||||
| 	 else { | ||||
| 	    gl_error( ctx, GL_INVALID_ENUM, "glDisable" ); | ||||
| 	 } | ||||
|          gl_error(ctx, GL_INVALID_ENUM, state ? "glEnable" : "glDisable"); | ||||
|          return; | ||||
|    } | ||||
|  | ||||
| @@ -719,17 +725,41 @@ _mesa_IsEnabled( GLenum cap ) | ||||
|        * CLIENT STATE!!! | ||||
|        */ | ||||
|       case GL_VERTEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          return ctx->Array.Current->Vertex.Enabled; | ||||
| #else | ||||
|          return ctx->Array.Vertex.Enabled; | ||||
| #endif | ||||
|       case GL_NORMAL_ARRAY: | ||||
| #ifdef VAO | ||||
|          return ctx->Array.Current->Normal.Enabled; | ||||
| #else | ||||
|          return ctx->Array.Normal.Enabled; | ||||
| #endif | ||||
|       case GL_COLOR_ARRAY: | ||||
| #ifdef VAO | ||||
|          return ctx->Array.Current->Color.Enabled; | ||||
| #else | ||||
|          return ctx->Array.Color.Enabled; | ||||
| #endif | ||||
|       case GL_INDEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          return ctx->Array.Current->Index.Enabled; | ||||
| #else | ||||
|          return ctx->Array.Index.Enabled; | ||||
| #endif | ||||
|       case GL_TEXTURE_COORD_ARRAY: | ||||
| #ifdef VAO | ||||
|          return ctx->Array.Current->TexCoord[ctx->Array.ActiveTexture].Enabled; | ||||
| #else | ||||
|          return ctx->Array.TexCoord[ctx->Array.ActiveTexture].Enabled; | ||||
| #endif | ||||
|       case GL_EDGE_FLAG_ARRAY: | ||||
| #ifdef VAO | ||||
|          return ctx->Array.Current->EdgeFlag.Enabled; | ||||
| #else | ||||
|          return ctx->Array.EdgeFlag.Enabled; | ||||
| #endif | ||||
|  | ||||
|       /* GL_HP_occlusion_test */ | ||||
|       case GL_OCCLUSION_TEST_HP: | ||||
| @@ -795,22 +825,46 @@ client_state( GLcontext *ctx, GLenum cap, GLboolean state ) | ||||
|  | ||||
|    switch (cap) { | ||||
|       case GL_VERTEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->Vertex.Enabled = state; | ||||
| #else | ||||
|          ctx->Array.Vertex.Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->Normal.Enabled = state; | ||||
| #else | ||||
|          ctx->Array.Normal.Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->Color.Enabled = state; | ||||
| #else | ||||
|          ctx->Array.Color.Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->Index.Enabled = state; | ||||
| #else | ||||
|          ctx->Array.Index.Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->TexCoord[ctx->Array.ActiveTexture].Enabled = state; | ||||
| #else | ||||
|          ctx->Array.TexCoord[ctx->Array.ActiveTexture].Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY: | ||||
| #ifdef VAO | ||||
|          ctx->Array.Current->EdgeFlag.Enabled = state; | ||||
| #else | ||||
|          ctx->Array.EdgeFlag.Enabled = state; | ||||
| #endif | ||||
|          break; | ||||
|       default: | ||||
|          gl_error( ctx, GL_INVALID_ENUM, "glEnable/DisableClientState" ); | ||||
|   | ||||
| @@ -1,21 +1,21 @@ | ||||
| /* $Id: enums.c,v 1.9 2000/06/27 21:42:13 brianp Exp $ */ | ||||
| /* $Id: enums.c,v 1.9.4.2 2001/01/06 22:43:00 gareth Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  *  | ||||
|  * | ||||
|  * 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"), | ||||
|  * 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 | ||||
| @@ -34,12 +34,12 @@ | ||||
| #endif | ||||
|  | ||||
|  | ||||
| typedef struct {  | ||||
|    const char *c;  | ||||
|    int n;  | ||||
| typedef struct { | ||||
|    const char *c; | ||||
|    int n; | ||||
| } enum_elt; | ||||
|  | ||||
| enum_elt all_enums[] =  | ||||
| enum_elt all_enums[] = | ||||
| { | ||||
|    /* Boolean values */ | ||||
|    { "GL_FALSE", 0 }, | ||||
| @@ -828,7 +828,11 @@ enum_elt all_enums[] = | ||||
|    { "GL_INTERPOLATE_EXT", 0x8575 }, | ||||
|    { "GL_CONSTANT_EXT", 0x8576 }, | ||||
|    { "GL_PRIMARY_COLOR_EXT", 0x8577 }, | ||||
|    { "GL_PREVIOUS_EXT", 0x8578 } | ||||
|    { "GL_PREVIOUS_EXT", 0x8578 }, | ||||
|  | ||||
|    /* GL_EXT_texture_env_dot3 */ | ||||
|    { "GL_DOT3_RGB_EXT", 0x8740 }, | ||||
|    { "GL_DOT3_RGBA_EXT", 0x8741 }, | ||||
|  | ||||
| }; | ||||
|  | ||||
| @@ -839,7 +843,7 @@ typedef int (GLWINAPIV *cfunc)(const void *, const void *); | ||||
| static enum_elt **index1 = 0; | ||||
| static int sorted = 0; | ||||
|  | ||||
| static int compar_name( const enum_elt *a, const enum_elt *b )  | ||||
| static int compar_name( const enum_elt *a, const enum_elt *b ) | ||||
| { | ||||
|    return strcmp(a->c, b->c); | ||||
| } | ||||
| @@ -847,7 +851,7 @@ static int compar_name( const enum_elt *a, const enum_elt *b ) | ||||
|  | ||||
| /* note the extra level of indirection | ||||
|  */ | ||||
| static int compar_nr( const enum_elt **a, const enum_elt **b )  | ||||
| static int compar_nr( const enum_elt **a, const enum_elt **b ) | ||||
| { | ||||
|    return (*a)->n - (*b)->n; | ||||
| } | ||||
| @@ -855,14 +859,14 @@ static int compar_nr( const enum_elt **a, const enum_elt **b ) | ||||
|  | ||||
| static void sort_enums( void ) | ||||
| { | ||||
|    int i; | ||||
|    GLuint i; | ||||
|    index1 = (enum_elt **)MALLOC( Elements(all_enums) * sizeof(enum_elt *) ); | ||||
|    sorted = 1; | ||||
|  | ||||
|    qsort( all_enums, Elements(all_enums), sizeof(*all_enums),  | ||||
|    qsort( all_enums, Elements(all_enums), sizeof(*all_enums), | ||||
| 	  (cfunc) compar_name ); | ||||
|  | ||||
|    for (i = 0 ; i < Elements(all_enums) ; i++)  | ||||
|    for (i = 0 ; i < Elements(all_enums) ; i++) | ||||
|       index1[i] = &all_enums[i]; | ||||
|  | ||||
|    qsort( index1, Elements(all_enums), sizeof(*index1), (cfunc) compar_nr ); | ||||
| @@ -875,14 +879,14 @@ int gl_lookup_enum_by_name( const char *symbol ) | ||||
|    enum_elt tmp; | ||||
|    enum_elt *e; | ||||
|  | ||||
|    if (!sorted)  | ||||
|    if (!sorted) | ||||
|       sort_enums(); | ||||
|  | ||||
|    if (!symbol)  | ||||
|    if (!symbol) | ||||
|       return 0; | ||||
|  | ||||
|    tmp.c = symbol; | ||||
|    e = (enum_elt *)bsearch( &tmp, all_enums, Elements(all_enums),  | ||||
|    e = (enum_elt *)bsearch( &tmp, all_enums, Elements(all_enums), | ||||
| 			    sizeof(*all_enums), (cfunc) compar_name ); | ||||
|  | ||||
|    return e ? e->n : -1; | ||||
| @@ -893,13 +897,13 @@ const char *gl_lookup_enum_by_nr( int nr ) | ||||
| { | ||||
|    enum_elt tmp, *e, **f; | ||||
|  | ||||
|    if (!sorted)  | ||||
|    if (!sorted) | ||||
|       sort_enums(); | ||||
|  | ||||
|    tmp.n = nr; | ||||
|    e = &tmp; | ||||
|  | ||||
|    f = (enum_elt **)bsearch( &e, index1, Elements(all_enums),  | ||||
|    f = (enum_elt **)bsearch( &e, index1, Elements(all_enums), | ||||
| 			     sizeof(*index1), (cfunc) compar_nr ); | ||||
|  | ||||
|    return f ? (*f)->c : "(unknown)"; | ||||
| @@ -920,6 +924,6 @@ int main() | ||||
|    for (i = 0 ; i < Elements(test) ; i++) { | ||||
|       int d = gl_lookup_enum_by_name( test[i] ); | ||||
|       printf("%s --> %d --> %s\n", test[i], d, gl_lookup_enum_by_nr( d )); | ||||
|    }        | ||||
|    } | ||||
| } | ||||
| #endif | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: eval.c,v 1.10 2000/07/20 15:53:17 keithw Exp $ */ | ||||
| /* $Id: eval.c,v 1.10.2.1 2000/11/05 21:24:00 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -110,8 +110,8 @@ static void | ||||
| horner_bezier_curve(const GLfloat *cp, GLfloat *out, GLfloat t, | ||||
|                     GLuint dim, GLuint order) | ||||
| { | ||||
|   GLfloat s, powert; | ||||
|   GLuint i, k, bincoeff; | ||||
|   GLfloat s, powert, bincoeff; | ||||
|   GLuint i, k; | ||||
|  | ||||
|   if(order >= 2) | ||||
|   {  | ||||
| @@ -162,8 +162,8 @@ horner_bezier_surf(GLfloat *cn, GLfloat *out, GLfloat u, GLfloat v, | ||||
|   { | ||||
|     if(uorder >= 2) | ||||
|     {  | ||||
|       GLfloat s, poweru; | ||||
|       GLuint j, k, bincoeff; | ||||
|       GLfloat s, poweru, bincoeff; | ||||
|       GLuint j, k; | ||||
|  | ||||
|       /* Compute the control polygon for the surface-curve in u-direction */ | ||||
|       for(j=0; j<vorder; j++) | ||||
|   | ||||
| @@ -1,21 +1,21 @@ | ||||
| /* $Id: extensions.c,v 1.32 2000/06/27 21:42:13 brianp Exp $ */ | ||||
| /* $Id: extensions.c,v 1.32.4.2 2001/01/06 22:43:00 gareth Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  *  | ||||
|  * Version:  3.4 | ||||
|  * | ||||
|  * 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"), | ||||
|  * 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 | ||||
| @@ -43,7 +43,7 @@ struct extension { | ||||
|    struct extension *next, *prev; | ||||
|    GLint enabled; | ||||
|    char name[MAX_EXT_NAMELEN+1]; | ||||
|    void (*notify)( GLcontext *, GLboolean );  | ||||
|    void (*notify)( GLcontext *, GLboolean ); | ||||
| }; | ||||
|  | ||||
|  | ||||
| @@ -51,7 +51,7 @@ struct extension { | ||||
| static struct { int enabled; const char *name; } default_extensions[] = { | ||||
|    { DEFAULT_OFF,    "GL_ARB_imaging" },  /* in progress */ | ||||
|    { DEFAULT_ON,     "GL_ARB_multitexture" }, | ||||
|    { DEFAULT_OFF,    "GL_ARB_texture_compression" },  /* in progress */ | ||||
|    { DEFAULT_OFF,    "GL_ARB_texture_compression" }, | ||||
|    { DEFAULT_OFF,    "GL_ARB_texture_cube_map" },  /* in progress */ | ||||
|    { ALWAYS_ENABLED, "GL_ARB_tranpose_matrix" }, | ||||
|    { ALWAYS_ENABLED, "GL_EXT_abgr" }, | ||||
| @@ -76,6 +76,7 @@ static struct { int enabled; const char *name; } default_extensions[] = { | ||||
|    { DEFAULT_OFF,    "GL_EXT_texture_env" }, | ||||
|    { DEFAULT_ON,     "GL_EXT_texture_env_add" }, | ||||
|    { DEFAULT_OFF,    "GL_EXT_texture_env_combine" }, | ||||
|    { DEFAULT_OFF,    "GL_EXT_texture_env_dot3" }, | ||||
|    { ALWAYS_ENABLED, "GL_EXT_texture_object" }, | ||||
|    { DEFAULT_ON,     "GL_EXT_texture_lod_bias" }, | ||||
|    { ALWAYS_ENABLED, "GL_EXT_vertex_array" }, | ||||
| @@ -105,6 +106,7 @@ update_extension_flags( GLcontext *ctx ) | ||||
|    /* Update flags */ | ||||
|    ctx->Extensions.HaveTextureEnvAdd = gl_extension_is_enabled(ctx, "GL_EXT_texture_env_add"); | ||||
|    ctx->Extensions.HaveTextureEnvCombine = gl_extension_is_enabled(ctx, "GL_EXT_texture_env_combine"); | ||||
|    ctx->Extensions.HaveTextureEnvDot3 = gl_extension_is_enabled(ctx, "GL_EXT_texture_env_dot3"); | ||||
|    ctx->Extensions.HaveTextureLodBias = gl_extension_is_enabled(ctx, "GL_EXT_texture_lod_bias"); | ||||
|    ctx->Extensions.HaveHpOcclusionTest = gl_extension_is_enabled(ctx, "GL_HP_occlusion_test"); | ||||
|    ctx->Extensions.HaveTextureCubeMap = gl_extension_is_enabled(ctx, "GL_ARB_texture_cube_map"); | ||||
| @@ -116,14 +118,14 @@ update_extension_flags( GLcontext *ctx ) | ||||
|  | ||||
|  | ||||
|  | ||||
| int gl_extensions_add( GLcontext *ctx,  | ||||
| 		       int state,  | ||||
| 		       const char *name,  | ||||
| int gl_extensions_add( GLcontext *ctx, | ||||
| 		       int state, | ||||
| 		       const char *name, | ||||
| 		       void (*notify)(void) ) | ||||
| { | ||||
|    (void) notify; | ||||
|  | ||||
|    if (ctx->Extensions.ext_string == 0)  | ||||
|    if (ctx->Extensions.ext_string == 0) | ||||
|    { | ||||
|       struct extension *t = MALLOC_STRUCT(extension); | ||||
|       t->enabled = state; | ||||
| @@ -143,27 +145,27 @@ int gl_extensions_add( GLcontext *ctx, | ||||
| static int set_extension( GLcontext *ctx, const char *name, GLint state ) | ||||
| { | ||||
|    struct extension *i; | ||||
|    foreach( i, ctx->Extensions.ext_list )  | ||||
|       if (strncmp(i->name, name, MAX_EXT_NAMELEN) == 0)  | ||||
|    foreach( i, ctx->Extensions.ext_list ) | ||||
|       if (strncmp(i->name, name, MAX_EXT_NAMELEN) == 0) | ||||
| 	 break; | ||||
|  | ||||
|    if (i == ctx->Extensions.ext_list) | ||||
|       return 1; | ||||
|  | ||||
|    if (!(i->enabled & ALWAYS_ENABLED)) { | ||||
|       if (i->notify) i->notify( ctx, state );       | ||||
|       if (i->notify) i->notify( ctx, state ); | ||||
|       i->enabled = state; | ||||
|    } | ||||
|  | ||||
|    update_extension_flags(ctx); | ||||
|  | ||||
|    return 0; | ||||
| }    | ||||
| } | ||||
|  | ||||
|  | ||||
| int gl_extensions_enable( GLcontext *ctx, const char *name ) | ||||
| { | ||||
|    if (ctx->Extensions.ext_string == 0)  | ||||
|    if (ctx->Extensions.ext_string == 0) | ||||
|       return set_extension( ctx, name, 1 ); | ||||
|    return 1; | ||||
| } | ||||
| @@ -171,11 +173,11 @@ int gl_extensions_enable( GLcontext *ctx, const char *name ) | ||||
|  | ||||
| int gl_extensions_disable( GLcontext *ctx, const char *name ) | ||||
| { | ||||
|    if (ctx->Extensions.ext_string == 0)  | ||||
|    if (ctx->Extensions.ext_string == 0) | ||||
|       return set_extension( ctx, name, 0 ); | ||||
|    return 1; | ||||
| } | ||||
|        | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Test if the named extension is enabled in this context. | ||||
| @@ -209,10 +211,10 @@ void gl_extensions_dtr( GLcontext *ctx ) | ||||
| 	 remove_from_list( i ); | ||||
| 	 FREE( i ); | ||||
|       } | ||||
|     | ||||
|  | ||||
|       FREE(ctx->Extensions.ext_list); | ||||
|       ctx->Extensions.ext_list = 0; | ||||
|    }       | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -225,7 +227,7 @@ void gl_extensions_ctr( GLcontext *ctx ) | ||||
|    make_empty_list( ctx->Extensions.ext_list ); | ||||
|  | ||||
|    for (i = 0 ; i < Elements(default_extensions) ; i++) { | ||||
|       gl_extensions_add( ctx,  | ||||
|       gl_extensions_add( ctx, | ||||
| 			 default_extensions[i].enabled, | ||||
| 			 default_extensions[i].name, | ||||
| 			 0 ); | ||||
| @@ -236,22 +238,22 @@ void gl_extensions_ctr( GLcontext *ctx ) | ||||
|  | ||||
| const char *gl_extensions_get_string( GLcontext *ctx ) | ||||
| { | ||||
|    if (ctx->Extensions.ext_string == 0)  | ||||
|    if (ctx->Extensions.ext_string == 0) | ||||
|    { | ||||
|       struct extension *i; | ||||
|       char *str; | ||||
|       GLuint len = 0; | ||||
|       foreach (i, ctx->Extensions.ext_list)  | ||||
|       foreach (i, ctx->Extensions.ext_list) | ||||
| 	 if (i->enabled) | ||||
| 	    len += strlen(i->name) + 1; | ||||
|        | ||||
|       if (len == 0)  | ||||
|  | ||||
|       if (len == 0) | ||||
| 	 return ""; | ||||
|  | ||||
|       str = (char *)MALLOC(len * sizeof(char)); | ||||
|       ctx->Extensions.ext_string = str; | ||||
|  | ||||
|       foreach (i, ctx->Extensions.ext_list)  | ||||
|       foreach (i, ctx->Extensions.ext_list) | ||||
| 	 if (i->enabled) { | ||||
| 	    strcpy(str, i->name); | ||||
| 	    str += strlen(str); | ||||
| @@ -260,6 +262,6 @@ const char *gl_extensions_get_string( GLcontext *ctx ) | ||||
|  | ||||
|       *(str-1) = 0; | ||||
|    } | ||||
|        | ||||
|  | ||||
|    return ctx->Extensions.ext_string; | ||||
| } | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: feedback.c,v 1.10 2000/05/09 23:54:09 brianp Exp $ */ | ||||
| /* $Id: feedback.c,v 1.10.4.1 2000/11/08 16:41:17 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -239,7 +239,7 @@ void gl_feedback_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    const struct vertex_buffer *VB = ctx->VB; | ||||
|    GLuint i; | ||||
|  | ||||
|    for (i=first;i<=last;i++) { | ||||
|    for (i=first;i<last;i++) { | ||||
|       if (VB->ClipMask[i]==0) { | ||||
|          FEEDBACK_TOKEN( ctx, (GLfloat) (GLint) GL_POINT_TOKEN ); | ||||
| 	 feedback_vertex( ctx, i, i ); | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: fog.c,v 1.19 2000/07/07 15:10:35 keithw Exp $ */ | ||||
| /* $Id: fog.c,v 1.19.4.1 2000/10/17 00:24:11 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -331,7 +331,7 @@ _mesa_fog_rgba_pixels( const GLcontext *ctx, | ||||
|                GLfloat eyez = d / (c+ndcz); | ||||
|                GLfloat f, g; | ||||
|                GLfloat tmp = negDensitySquared * eyez * eyez; | ||||
| #ifdef __alpha__ | ||||
| #if defined(__alpha__) || defined(__alpha) | ||||
|                /* XXX this underflow check may be needed for other systems */ | ||||
|                if (tmp < FLT_MIN_10_EXP) | ||||
|                   f = exp( FLT_MIN_10_EXP ); | ||||
| @@ -410,7 +410,7 @@ _mesa_fog_ci_pixels( const GLcontext *ctx, | ||||
|                if (eyez < 0.0) | ||||
|                   eyez = -eyez; | ||||
|                tmp = negDensitySquared * eyez * eyez; | ||||
| #ifdef __alpha__ | ||||
| #if defined(__alpha__) || defined(__alpha) | ||||
|                /* XXX this underflow check may be needed for other systems */ | ||||
|                if (tmp < FLT_MIN_10_EXP) | ||||
|                   f = exp( FLT_MIN_10_EXP ); | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: get.c,v 1.30 2000/07/21 15:41:08 brianp Exp $ */ | ||||
| /* $Id: get.c,v 1.30.2.4 2001/01/24 04:49:27 brianp Exp $*/ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -92,9 +92,16 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetBooleanv"); | ||||
|  | ||||
|    if (!params) | ||||
|       return; | ||||
|  | ||||
|    if (MESA_VERBOSE & VERBOSE_API)  | ||||
|       fprintf(stderr, "glGetBooleanv %s\n", gl_lookup_enum_by_nr(pname)); | ||||
|  | ||||
|    if (ctx->Driver.GetBooleanv | ||||
|        && (*ctx->Driver.GetBooleanv)(ctx, pname, params)) | ||||
|       return; | ||||
|  | ||||
|    switch (pname) { | ||||
|       case GL_ACCUM_RED_BITS: | ||||
|          *params = INT_TO_BOOL(ctx->Visual->AccumRedBits); | ||||
| @@ -724,6 +731,9 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|       case GL_RENDER_MODE: | ||||
| 	 *params = ENUM_TO_BOOL(ctx->RenderMode); | ||||
| 	 break; | ||||
|       case GL_RESCALE_NORMAL: | ||||
|          *params = ctx->Transform.RescaleNormals; | ||||
|          break; | ||||
|       case GL_RGBA_MODE: | ||||
|          *params = ctx->Visual->RGBAflag; | ||||
| 	 break; | ||||
| @@ -868,79 +878,159 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
| 	 *params = FLOAT_TO_BOOL(ctx->Pixel.ZoomY); | ||||
| 	 break; | ||||
|       case GL_VERTEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Vertex.Enabled; | ||||
| #else | ||||
|          *params = ctx->Array.Vertex.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = INT_TO_BOOL(ctx->Array.Current->Vertex.Size); | ||||
| #else | ||||
|          *params = INT_TO_BOOL(ctx->Array.Vertex.Size); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_BOOL(ctx->Array.Current->Vertex.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_BOOL(ctx->Array.Vertex.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = INT_TO_BOOL(ctx->Array.Current->Vertex.Stride); | ||||
| #else | ||||
|          *params = INT_TO_BOOL(ctx->Array.Vertex.Stride); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_COUNT_EXT: | ||||
|          *params = INT_TO_BOOL(0); | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Normal.Enabled; | ||||
| #else | ||||
|          *params = ctx->Array.Normal.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_BOOL(ctx->Array.Current->Normal.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_BOOL(ctx->Array.Normal.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = INT_TO_BOOL(ctx->Array.Current->Normal.Stride); | ||||
| #else | ||||
|          *params = INT_TO_BOOL(ctx->Array.Normal.Stride); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_COUNT_EXT: | ||||
|          *params = INT_TO_BOOL(0); | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Color.Enabled; | ||||
| #else | ||||
|          *params = ctx->Array.Color.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = INT_TO_BOOL(ctx->Array.Current->Color.Size); | ||||
| #else | ||||
|          *params = INT_TO_BOOL(ctx->Array.Color.Size); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_BOOL(ctx->Array.Current->Color.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_BOOL(ctx->Array.Color.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = INT_TO_BOOL(ctx->Array.Current->Color.Stride); | ||||
| #else | ||||
|          *params = INT_TO_BOOL(ctx->Array.Color.Stride); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_COUNT_EXT: | ||||
|          *params = INT_TO_BOOL(0); | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Index.Enabled; | ||||
| #else | ||||
|          *params = ctx->Array.Index.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_BOOL(ctx->Array.Current->Index.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_BOOL(ctx->Array.Index.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = INT_TO_BOOL(ctx->Array.Current->Index.Stride); | ||||
| #else | ||||
|          *params = INT_TO_BOOL(ctx->Array.Index.Stride); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_COUNT_EXT: | ||||
|          *params = INT_TO_BOOL(0); | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->TexCoord[texUnit].Enabled; | ||||
| #else | ||||
|          *params = ctx->Array.TexCoord[texUnit].Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = INT_TO_BOOL(ctx->Array.Current->TexCoord[texUnit].Size); | ||||
| #else | ||||
|          *params = INT_TO_BOOL(ctx->Array.TexCoord[texUnit].Size); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_BOOL(ctx->Array.Current->TexCoord[texUnit].Type); | ||||
| #else | ||||
|          *params = ENUM_TO_BOOL(ctx->Array.TexCoord[texUnit].Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = INT_TO_BOOL(ctx->Array.Current->TexCoord[texUnit].Stride); | ||||
| #else | ||||
|          *params = INT_TO_BOOL(ctx->Array.TexCoord[texUnit].Stride); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_COUNT_EXT: | ||||
|          *params = INT_TO_BOOL(0); | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->EdgeFlag.Enabled; | ||||
| #else | ||||
|          *params = ctx->Array.EdgeFlag.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = INT_TO_BOOL(ctx->Array.Current->EdgeFlag.Stride); | ||||
| #else | ||||
|          *params = INT_TO_BOOL(ctx->Array.EdgeFlag.Stride); | ||||
| #endif | ||||
|          break; | ||||
|  | ||||
|       /* GL_ARB_multitexture */ | ||||
| @@ -1051,10 +1141,18 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params ) | ||||
|  | ||||
|       /* GL_EXT_compiled_vertex_array */ | ||||
|       case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: | ||||
| #ifdef VAO | ||||
| 	 *params = ctx->Array.Current->LockFirst ? GL_TRUE : GL_FALSE; | ||||
| #else | ||||
| 	 *params = ctx->Array.LockFirst ? GL_TRUE : GL_FALSE; | ||||
| #endif | ||||
| 	 break; | ||||
|       case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: | ||||
| #ifdef VAO | ||||
| 	 *params = ctx->Array.Current->LockCount ? GL_TRUE : GL_FALSE; | ||||
| #else | ||||
| 	 *params = ctx->Array.LockCount ? GL_TRUE : GL_FALSE; | ||||
| #endif | ||||
| 	 break; | ||||
|  | ||||
|       /* GL_ARB_transpose_matrix */ | ||||
| @@ -1235,9 +1333,15 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetDoublev"); | ||||
|  | ||||
|    if (!params) | ||||
|       return; | ||||
|  | ||||
|    if (MESA_VERBOSE & VERBOSE_API)  | ||||
|       fprintf(stderr, "glGetDoublev %s\n", gl_lookup_enum_by_nr(pname)); | ||||
|  | ||||
|    if (ctx->Driver.GetDoublev && (*ctx->Driver.GetDoublev)(ctx, pname, params)) | ||||
|       return; | ||||
|  | ||||
|    switch (pname) { | ||||
|       case GL_ACCUM_RED_BITS: | ||||
|          *params = (GLdouble) ctx->Visual->AccumRedBits; | ||||
| @@ -1867,6 +1971,9 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|       case GL_RENDER_MODE: | ||||
| 	 *params = ENUM_TO_DOUBLE(ctx->RenderMode); | ||||
| 	 break; | ||||
|       case GL_RESCALE_NORMAL: | ||||
|          *params = (GLdouble) ctx->Transform.RescaleNormals; | ||||
|          break; | ||||
|       case GL_RGBA_MODE: | ||||
| 	 *params = (GLdouble) ctx->Visual->RGBAflag; | ||||
| 	 break; | ||||
| @@ -2008,79 +2115,159 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
| 	 *params = (GLdouble) ctx->Pixel.ZoomY; | ||||
| 	 break; | ||||
|       case GL_VERTEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->Vertex.Enabled; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.Vertex.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->Vertex.Size; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.Vertex.Size; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_DOUBLE(ctx->Array.Current->Vertex.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_DOUBLE(ctx->Array.Vertex.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->Vertex.Stride; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.Vertex.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->Normal.Enabled; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.Normal.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_DOUBLE(ctx->Array.Current->Normal.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_DOUBLE(ctx->Array.Normal.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->Normal.Stride; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.Normal.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->Color.Enabled; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.Color.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->Color.Size; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.Color.Size; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_DOUBLE(ctx->Array.Current->Color.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_DOUBLE(ctx->Array.Color.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->Color.Stride; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.Color.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->Index.Enabled; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.Index.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_DOUBLE(ctx->Array.Current->Index.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_DOUBLE(ctx->Array.Index.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->Index.Stride; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.Index.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->TexCoord[texUnit].Enabled; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.TexCoord[texUnit].Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->TexCoord[texUnit].Size; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.TexCoord[texUnit].Size; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_DOUBLE(ctx->Array.Current->TexCoord[texUnit].Type); | ||||
| #else | ||||
|          *params = ENUM_TO_DOUBLE(ctx->Array.TexCoord[texUnit].Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->TexCoord[texUnit].Stride; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.TexCoord[texUnit].Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->EdgeFlag.Enabled; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.EdgeFlag.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLdouble) ctx->Array.Current->EdgeFlag.Stride; | ||||
| #else | ||||
|          *params = (GLdouble) ctx->Array.EdgeFlag.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
| @@ -2194,10 +2381,18 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params ) | ||||
|  | ||||
|       /* GL_EXT_compiled_vertex_array */ | ||||
|       case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: | ||||
| #ifdef VAO | ||||
| 	 *params = (GLdouble) ctx->Array.Current->LockFirst; | ||||
| #else | ||||
| 	 *params = (GLdouble) ctx->Array.LockFirst; | ||||
| #endif | ||||
| 	 break; | ||||
|       case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: | ||||
| #ifdef VAO | ||||
| 	 *params = (GLdouble) ctx->Array.Current->LockCount; | ||||
| #else | ||||
| 	 *params = (GLdouble) ctx->Array.LockCount; | ||||
| #endif | ||||
| 	 break; | ||||
|  | ||||
|       /* GL_ARB_transpose_matrix */ | ||||
| @@ -2378,9 +2573,15 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetFloatv"); | ||||
|  | ||||
|    if (!params) | ||||
|       return; | ||||
|  | ||||
|    if (MESA_VERBOSE & VERBOSE_API)  | ||||
|       fprintf(stderr, "glGetFloatv %s\n", gl_lookup_enum_by_nr(pname)); | ||||
|  | ||||
|    if (ctx->Driver.GetFloatv && (*ctx->Driver.GetFloatv)(ctx, pname, params)) | ||||
|       return; | ||||
|  | ||||
|    switch (pname) { | ||||
|       case GL_ACCUM_RED_BITS: | ||||
|          *params = (GLfloat) ctx->Visual->AccumRedBits; | ||||
| @@ -3009,6 +3210,9 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|       case GL_RENDER_MODE: | ||||
| 	 *params = ENUM_TO_FLOAT(ctx->RenderMode); | ||||
| 	 break; | ||||
|       case GL_RESCALE_NORMAL: | ||||
|          *params = (GLfloat) ctx->Transform.RescaleNormals; | ||||
|          break; | ||||
|       case GL_RGBA_MODE: | ||||
| 	 *params = (GLfloat) ctx->Visual->RGBAflag; | ||||
| 	 break; | ||||
| @@ -3150,79 +3354,159 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
| 	 *params = (GLfloat) ctx->Pixel.ZoomY; | ||||
| 	 break; | ||||
|       case GL_VERTEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->Vertex.Enabled; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.Vertex.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->Vertex.Size; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.Vertex.Size; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_FLOAT(ctx->Array.Current->Vertex.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_FLOAT(ctx->Array.Vertex.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->Vertex.Stride; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.Vertex.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->Normal.Enabled; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.Normal.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_FLOAT(ctx->Array.Current->Normal.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_FLOAT(ctx->Array.Normal.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->Normal.Stride; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.Normal.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->Color.Enabled; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.Color.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->Color.Size; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.Color.Size; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_FLOAT(ctx->Array.Current->Color.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_FLOAT(ctx->Array.Color.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->Color.Stride; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.Color.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->Index.Enabled; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.Index.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_FLOAT(ctx->Array.Current->Index.Type); | ||||
| #else | ||||
|          *params = ENUM_TO_FLOAT(ctx->Array.Index.Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->Index.Stride; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.Index.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->TexCoord[texUnit].Enabled; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.TexCoord[texUnit].Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->TexCoord[texUnit].Size; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.TexCoord[texUnit].Size; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ENUM_TO_FLOAT(ctx->Array.Current->TexCoord[texUnit].Type); | ||||
| #else | ||||
|          *params = ENUM_TO_FLOAT(ctx->Array.TexCoord[texUnit].Type); | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->TexCoord[texUnit].Stride; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.TexCoord[texUnit].Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->EdgeFlag.Enabled; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.EdgeFlag.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = (GLfloat) ctx->Array.Current->EdgeFlag.Stride; | ||||
| #else | ||||
|          *params = (GLfloat) ctx->Array.EdgeFlag.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY_COUNT_EXT: | ||||
|          *params = 0.0; | ||||
| @@ -3336,10 +3620,18 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params ) | ||||
|  | ||||
|       /* GL_EXT_compiled_vertex_array */ | ||||
|       case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: | ||||
| #ifdef VAO | ||||
| 	 *params = (GLfloat) ctx->Array.Current->LockFirst; | ||||
| #else | ||||
| 	 *params = (GLfloat) ctx->Array.LockFirst; | ||||
| #endif | ||||
| 	 break; | ||||
|       case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: | ||||
| #ifdef VAO | ||||
| 	 *params = (GLfloat) ctx->Array.Current->LockCount; | ||||
| #else | ||||
| 	 *params = (GLfloat) ctx->Array.LockCount; | ||||
| #endif | ||||
| 	 break; | ||||
|  | ||||
|       /* GL_ARB_transpose_matrix */ | ||||
| @@ -3492,9 +3784,16 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetIntegerv"); | ||||
|  | ||||
|    if (!params) | ||||
|       return; | ||||
|  | ||||
|    if (MESA_VERBOSE & VERBOSE_API)  | ||||
|       fprintf(stderr, "glGetIntegerv %s\n", gl_lookup_enum_by_nr(pname)); | ||||
|  | ||||
|    if (ctx->Driver.GetIntegerv | ||||
|        && (*ctx->Driver.GetIntegerv)(ctx, pname, params)) | ||||
|       return; | ||||
|  | ||||
|    switch (pname) { | ||||
|       case GL_ACCUM_RED_BITS: | ||||
|          *params = (GLint) ctx->Visual->AccumRedBits; | ||||
| @@ -4125,6 +4424,9 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|       case GL_RENDER_MODE: | ||||
| 	 *params = (GLint) ctx->RenderMode; | ||||
| 	 break; | ||||
|       case GL_RESCALE_NORMAL: | ||||
|          *params = (GLint) ctx->Transform.RescaleNormals; | ||||
|          break; | ||||
|       case GL_RGBA_MODE: | ||||
| 	 *params = (GLint) ctx->Visual->RGBAflag; | ||||
| 	 break; | ||||
| @@ -4266,79 +4568,159 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
| 	 *params = (GLint) ctx->Pixel.ZoomY; | ||||
| 	 break; | ||||
|       case GL_VERTEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLint) ctx->Array.Current->Vertex.Enabled; | ||||
| #else | ||||
|          *params = (GLint) ctx->Array.Vertex.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Vertex.Size; | ||||
| #else | ||||
|          *params = ctx->Array.Vertex.Size; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Vertex.Type; | ||||
| #else | ||||
|          *params = ctx->Array.Vertex.Type; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Vertex.Stride; | ||||
| #else | ||||
|          *params = ctx->Array.Vertex.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_VERTEX_ARRAY_COUNT_EXT: | ||||
|          *params = 0; | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLint) ctx->Array.Current->Normal.Enabled; | ||||
| #else | ||||
|          *params = (GLint) ctx->Array.Normal.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Normal.Type; | ||||
| #else | ||||
|          *params = ctx->Array.Normal.Type; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Normal.Stride; | ||||
| #else | ||||
|          *params = ctx->Array.Normal.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_COUNT_EXT: | ||||
|          *params = 0; | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLint) ctx->Array.Current->Color.Enabled; | ||||
| #else | ||||
|          *params = (GLint) ctx->Array.Color.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Color.Size; | ||||
| #else | ||||
|          *params = ctx->Array.Color.Size; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Color.Type; | ||||
| #else | ||||
|          *params = ctx->Array.Color.Type; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Color.Stride; | ||||
| #else | ||||
|          *params = ctx->Array.Color.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_COUNT_EXT: | ||||
|          *params = 0; | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLint) ctx->Array.Current->Index.Enabled; | ||||
| #else | ||||
|          *params = (GLint) ctx->Array.Index.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Index.Type; | ||||
| #else | ||||
|          *params = ctx->Array.Index.Type; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Index.Stride; | ||||
| #else | ||||
|          *params = ctx->Array.Index.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_COUNT_EXT: | ||||
|          *params = 0; | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLint) ctx->Array.Current->TexCoord[texUnit].Enabled; | ||||
| #else | ||||
|          *params = (GLint) ctx->Array.TexCoord[texUnit].Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_SIZE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->TexCoord[texUnit].Size; | ||||
| #else | ||||
|          *params = ctx->Array.TexCoord[texUnit].Size; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_TYPE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->TexCoord[texUnit].Type; | ||||
| #else | ||||
|          *params = ctx->Array.TexCoord[texUnit].Type; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->TexCoord[texUnit].Stride; | ||||
| #else | ||||
|          *params = ctx->Array.TexCoord[texUnit].Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_COUNT_EXT: | ||||
|          *params = 0; | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY: | ||||
| #ifdef VAO | ||||
|          *params = (GLint) ctx->Array.Current->EdgeFlag.Enabled; | ||||
| #else | ||||
|          *params = (GLint) ctx->Array.EdgeFlag.Enabled; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY_STRIDE: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->EdgeFlag.Stride; | ||||
| #else | ||||
|          *params = ctx->Array.EdgeFlag.Stride; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY_COUNT_EXT: | ||||
|          *params = 0; | ||||
| @@ -4452,10 +4834,18 @@ _mesa_GetIntegerv( GLenum pname, GLint *params ) | ||||
|  | ||||
|       /* GL_EXT_compiled_vertex_array */ | ||||
|       case GL_ARRAY_ELEMENT_LOCK_FIRST_EXT: | ||||
| #ifdef VAO | ||||
| 	 *params = ctx->Array.Current->LockFirst; | ||||
| #else | ||||
| 	 *params = ctx->Array.LockFirst; | ||||
| #endif | ||||
| 	 break; | ||||
|       case GL_ARRAY_ELEMENT_LOCK_COUNT_EXT: | ||||
| #ifdef VAO | ||||
| 	 *params = ctx->Array.Current->LockCount; | ||||
| #else | ||||
| 	 *params = ctx->Array.LockCount; | ||||
| #endif | ||||
| 	 break; | ||||
| 	  | ||||
|       /* GL_ARB_transpose_matrix */ | ||||
| @@ -4629,29 +5019,61 @@ _mesa_GetPointerv( GLenum pname, GLvoid **params ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    GLuint texUnit = ctx->Texture.CurrentUnit; | ||||
|    /*GLuint texTransformUnit = ctx->Texture.CurrentTransformUnit;*/ | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGetPointerv"); | ||||
|  | ||||
|    if (!params) | ||||
|       return; | ||||
|  | ||||
|    if (MESA_VERBOSE & VERBOSE_API)  | ||||
|       fprintf(stderr, "glGetPointerv %s\n", gl_lookup_enum_by_nr(pname)); | ||||
|  | ||||
|    if (ctx->Driver.GetPointerv | ||||
|        && (*ctx->Driver.GetPointerv)(ctx, pname, params)) | ||||
|       return; | ||||
|  | ||||
|    switch (pname) { | ||||
|       case GL_VERTEX_ARRAY_POINTER: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Vertex.Ptr; | ||||
| #else | ||||
|          *params = ctx->Array.Vertex.Ptr; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_NORMAL_ARRAY_POINTER: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Normal.Ptr; | ||||
| #else | ||||
|          *params = ctx->Array.Normal.Ptr; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_COLOR_ARRAY_POINTER: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Color.Ptr; | ||||
| #else | ||||
|          *params = ctx->Array.Color.Ptr; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_INDEX_ARRAY_POINTER: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->Index.Ptr; | ||||
| #else | ||||
|          *params = ctx->Array.Index.Ptr; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_TEXTURE_COORD_ARRAY_POINTER: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->TexCoord[texUnit].Ptr; | ||||
| #else | ||||
|          *params = ctx->Array.TexCoord[texUnit].Ptr; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_EDGE_FLAG_ARRAY_POINTER: | ||||
| #ifdef VAO | ||||
|          *params = ctx->Array.Current->EdgeFlag.Ptr; | ||||
| #else | ||||
|          *params = ctx->Array.EdgeFlag.Ptr; | ||||
| #endif | ||||
|          break; | ||||
|       case GL_FEEDBACK_BUFFER_POINTER: | ||||
|          *params = ctx->Feedback.Buffer; | ||||
| @@ -4673,7 +5095,7 @@ _mesa_GetString( GLenum name ) | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    static const char *vendor = "Brian Paul"; | ||||
|    static const char *renderer = "Mesa"; | ||||
|    static const char *version = "1.2 Mesa 3.3"; | ||||
|    static const char *version = "1.2 Mesa 3.4.1"; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx, "glGetString", 0); | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: glheader.h,v 1.11 2000/06/12 15:40:47 brianp Exp $ */ | ||||
| /* $Id: glheader.h,v 1.11.4.4 2000/12/13 00:54:57 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  * | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -39,15 +39,24 @@ | ||||
|  * If you touch this file, everything gets recompiled! | ||||
|  * | ||||
|  * This file should be included before any other header in the .c files. | ||||
|  * | ||||
|  * Put compiler/OS/assembly pragmas and macros here to avoid | ||||
|  * cluttering other source files. | ||||
|  */ | ||||
|  | ||||
|  | ||||
|  | ||||
| #ifdef XFree86LOADER | ||||
| #include "xf86_ansic.h" | ||||
| #else | ||||
| #include <assert.h> | ||||
| #include <ctype.h> | ||||
| /* If we can use Compaq's Fast Math Library on Alpha */ | ||||
| #if defined(__alpha__) && defined(CCPML) | ||||
| #include <cpml.h> | ||||
| #else | ||||
| #include <math.h> | ||||
| #endif | ||||
| #include <limits.h> | ||||
| #include <stdlib.h> | ||||
| #include <stdio.h> | ||||
| @@ -65,24 +74,11 @@ | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Put compiler/OS/assembly pragmas and macros here to avoid | ||||
|  * cluttering other source files. | ||||
|  */ | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * XXX move as many of these pragma's and MS Windows-isms into | ||||
|  * the new src/glheader.h file. | ||||
|  */ | ||||
|  | ||||
| #if defined(_WIN32) && !defined(__WIN32__) | ||||
| #if defined(_WIN32) && !defined(__WIN32__) && !defined(__CYGWIN__) | ||||
| #	define __WIN32__ | ||||
| #endif | ||||
|  | ||||
| #if !defined(OPENSTEP) && (defined(__WIN32__) || defined(__CYGWIN__)) | ||||
| #if !defined(OPENSTEP) && (defined(__WIN32__) && !defined(__CYGWIN__)) | ||||
| #  pragma warning( disable : 4068 ) /* unknown pragma */ | ||||
| #  pragma warning( disable : 4710 ) /* function 'foo' not inlined */ | ||||
| #  pragma warning( disable : 4711 ) /* function 'foo' selected for automatic inline expansion */ | ||||
| @@ -129,16 +125,21 @@ | ||||
|  | ||||
| /* compatability guard so we don't need to change client code */ | ||||
|  | ||||
| #if defined(_WIN32) && !defined(_WINDEF_) && !defined(_GNU_H_WINDOWS32_BASE) && !defined(OPENSTEP) | ||||
| #if defined(_WIN32) && !defined(_WINDEF_) && !defined(_GNU_H_WINDOWS32_BASE) && !defined(OPENSTEP) && !defined(__CYGWIN__) | ||||
| #if 0 | ||||
| #	define CALLBACK GLCALLBACK | ||||
| #endif | ||||
| typedef int (GLAPIENTRY *PROC)(); | ||||
| typedef void *HGLRC; | ||||
| typedef void *HDC; | ||||
| #endif | ||||
| typedef int (GLAPIENTRY *PROC)(); | ||||
| typedef unsigned long COLORREF; | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* Make sure we include glext.h from gl.h */ | ||||
| #define GL_GLEXT_PROTOTYPES | ||||
|  | ||||
|  | ||||
| #if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) | ||||
| #	define WGL_FONT_LINES      0 | ||||
| #	define WGL_FONT_POLYGONS   1 | ||||
| @@ -154,14 +155,14 @@ typedef unsigned long COLORREF; | ||||
| typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR; | ||||
| typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT; | ||||
| typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR; | ||||
| #if !defined(GLX_USE_MESA) | ||||
| #include <gl/mesa_wgl.h> | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| /* Make sure we include glext.h */ | ||||
| #define GL_GLEXT_PROTOTYPES | ||||
| #include "GL/gl.h" | ||||
| #include "GL/glext.h" | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: hash.c,v 1.9 2000/03/21 22:20:42 brianp Exp $ */ | ||||
| /* $Id: hash.c,v 1.9.4.1 2000/11/26 21:10:26 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -101,7 +101,6 @@ void *_mesa_HashLookup(const struct _mesa_HashTable *table, GLuint key) | ||||
|    const struct HashEntry *entry; | ||||
|  | ||||
|    assert(table); | ||||
|    assert(key); | ||||
|  | ||||
|    pos = key & (TABLE_SIZE-1); | ||||
|    entry = table->Table[pos]; | ||||
| @@ -130,7 +129,6 @@ void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *data) | ||||
|    struct HashEntry *entry; | ||||
|  | ||||
|    assert(table); | ||||
|    assert(key); | ||||
|  | ||||
|    _glthread_LOCK_MUTEX(table->Mutex); | ||||
|  | ||||
| @@ -172,7 +170,6 @@ void _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key) | ||||
|    struct HashEntry *entry, *prev; | ||||
|  | ||||
|    assert(table); | ||||
|    assert(key); | ||||
|  | ||||
|    _glthread_LOCK_MUTEX(table->Mutex); | ||||
|  | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,8 +1,8 @@ | ||||
| /* $Id: image.h,v 1.9 2000/05/10 14:39:53 brianp Exp $ */ | ||||
| /* $Id: image.h,v 1.9.4.1 2001/01/25 17:34:22 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4.1 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -79,6 +79,15 @@ _mesa_pack_polygon_stipple( const GLuint pattern[32], GLubyte *dest, | ||||
|                             const struct gl_pixelstore_attrib *packing ); | ||||
|  | ||||
|  | ||||
| extern void | ||||
| _mesa_pack_float_rgba_span( GLcontext *ctx, | ||||
|                             GLuint n, CONST GLfloat rgba[][4], | ||||
|                             GLenum dstFormat, GLenum dstType, | ||||
|                             GLvoid *dstAddr, | ||||
|                             const struct gl_pixelstore_attrib *dstPacking, | ||||
|                             GLboolean applyTransferOps ); | ||||
|  | ||||
|  | ||||
| extern void | ||||
| _mesa_pack_rgba_span( GLcontext *ctx, | ||||
|                       GLuint n, CONST GLubyte rgba[][4], | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: lines.c,v 1.12 2000/07/14 14:04:07 brianp Exp $ */ | ||||
| /* $Id: lines.c,v 1.12.2.1 2000/11/08 16:42:48 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -1058,7 +1058,7 @@ _mesa_print_line_function(GLcontext *ctx) | ||||
|    else if (ctx->Driver.LineFunc == null_line) | ||||
|       printf("null_line\n"); | ||||
|    else | ||||
|       printf("Driver func %p\n", ctx->Driver.PointsFunc); | ||||
|       printf("Driver func %p\n", ctx->Driver.LineFunc); | ||||
| } | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: matrix.c,v 1.18 2000/06/27 22:10:00 brianp Exp $ */ | ||||
| /* $Id: matrix.c,v 1.18.4.2 2000/11/05 21:24:01 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -597,7 +597,7 @@ void gl_rotation_matrix( GLfloat angle, GLfloat x, GLfloat y, GLfloat z, | ||||
|  | ||||
|    mag = GL_SQRT( x*x + y*y + z*z ); | ||||
|  | ||||
|    if (mag == 0.0) { | ||||
|    if (mag <= 1.0e-4) { | ||||
|       /* generate an identity matrix and return */ | ||||
|       MEMCPY(m, Identity, sizeof(GLfloat)*16); | ||||
|       return; | ||||
| @@ -764,18 +764,16 @@ static void analyze_from_scratch( GLmatrix *mat ) | ||||
|  | ||||
|    /* Do the real work | ||||
|     */ | ||||
|    if (mask == MASK_IDENTITY) { | ||||
|    if (mask == (GLuint) MASK_IDENTITY) { | ||||
|       mat->type = MATRIX_IDENTITY; | ||||
|    } | ||||
|    else if ((mask & MASK_2D_NO_ROT) == MASK_2D_NO_ROT)   | ||||
|    { | ||||
|    else if ((mask & MASK_2D_NO_ROT) == (GLuint) MASK_2D_NO_ROT) { | ||||
|       mat->type = MATRIX_2D_NO_ROT; | ||||
|        | ||||
|       if ((mask & MASK_NO_2D_SCALE) != MASK_NO_2D_SCALE) | ||||
| 	 mat->flags = MAT_FLAG_GENERAL_SCALE; | ||||
|    } | ||||
|    else if ((mask & MASK_2D) == MASK_2D)   | ||||
|    { | ||||
|    else if ((mask & MASK_2D) == (GLuint) MASK_2D) { | ||||
|       GLfloat mm = DOT2(m, m); | ||||
|       GLfloat m4m4 = DOT2(m+4,m+4); | ||||
|       GLfloat mm4 = DOT2(m,m+4); | ||||
| @@ -794,8 +792,7 @@ static void analyze_from_scratch( GLmatrix *mat ) | ||||
| 	 mat->flags |= MAT_FLAG_ROTATION; | ||||
|  | ||||
|    } | ||||
|    else if ((mask & MASK_3D_NO_ROT) == MASK_3D_NO_ROT) | ||||
|    { | ||||
|    else if ((mask & MASK_3D_NO_ROT) == (GLuint) MASK_3D_NO_ROT) { | ||||
|       mat->type = MATRIX_3D_NO_ROT; | ||||
|  | ||||
|       /* Check for scale */ | ||||
| @@ -806,8 +803,7 @@ static void analyze_from_scratch( GLmatrix *mat ) | ||||
|       } else | ||||
| 	 mat->flags |= MAT_FLAG_GENERAL_SCALE; | ||||
|    } | ||||
|    else if ((mask & MASK_3D) == MASK_3D) | ||||
|    { | ||||
|    else if ((mask & MASK_3D) == (GLuint) MASK_3D) { | ||||
|       GLfloat c1 = DOT3(m,m); | ||||
|       GLfloat c2 = DOT3(m+4,m+4); | ||||
|       GLfloat c3 = DOT3(m+8,m+8); | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* $Id: pixel.c,v 1.11 2000/05/07 20:41:30 brianp Exp $ */ | ||||
| /* $Id: pixel.c,v 1.11.4.1 2000/10/19 20:09:29 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -105,6 +105,14 @@ _mesa_PixelStorei( GLenum pname, GLint param ) | ||||
| 	    ctx->Pack.SkipRows = param; | ||||
| 	 } | ||||
| 	 break; | ||||
|       case GL_PACK_SKIP_IMAGES: | ||||
| 	 if (param<0) { | ||||
| 	    gl_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); | ||||
| 	 } | ||||
| 	 else { | ||||
| 	    ctx->Pack.SkipImages = param; | ||||
| 	 } | ||||
| 	 break; | ||||
|       case GL_PACK_ALIGNMENT: | ||||
|          if (param==1 || param==2 || param==4 || param==8) { | ||||
| 	    ctx->Pack.Alignment = param; | ||||
| @@ -149,6 +157,14 @@ _mesa_PixelStorei( GLenum pname, GLint param ) | ||||
| 	    ctx->Unpack.SkipRows = param; | ||||
| 	 } | ||||
| 	 break; | ||||
|       case GL_UNPACK_SKIP_IMAGES: | ||||
| 	 if (param < 0) { | ||||
| 	    gl_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); | ||||
| 	 } | ||||
| 	 else { | ||||
| 	    ctx->Unpack.SkipImages = param; | ||||
| 	 } | ||||
| 	 break; | ||||
|       case GL_UNPACK_ALIGNMENT: | ||||
|          if (param==1 || param==2 || param==4 || param==8) { | ||||
| 	    ctx->Unpack.Alignment = param; | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: points.c,v 1.11 2000/07/15 03:13:43 brianp Exp $ */ | ||||
| /* $Id: points.c,v 1.11.2.2 2000/11/08 16:41:17 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -161,7 +161,7 @@ size1_ci_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    GLuint i; | ||||
|  | ||||
|    win = &VB->Win.data[first][0]; | ||||
|    for (i = first; i <= last; i++) { | ||||
|    for (i = first; i < last; i++) { | ||||
|       if (VB->ClipMask[i] == 0) { | ||||
|          pbx[pbcount] = (GLint)  win[0]; | ||||
|          pby[pbcount] = (GLint)  win[1]; | ||||
| @@ -187,7 +187,7 @@ size1_rgba_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    struct pixel_buffer *PB = ctx->PB; | ||||
|    GLuint i; | ||||
|  | ||||
|    for (i = first; i <= last; i++) { | ||||
|    for (i = first; i < last; i++) { | ||||
|       if (VB->ClipMask[i] == 0) { | ||||
|          GLint x, y, z; | ||||
|          GLint red, green, blue, alpha; | ||||
| @@ -221,7 +221,7 @@ general_ci_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    GLint radius = isize >> 1; | ||||
|    GLuint i; | ||||
|  | ||||
|    for (i = first; i <= last; i++) { | ||||
|    for (i = first; i < last; i++) { | ||||
|       if (VB->ClipMask[i] == 0) { | ||||
|          GLint x0, x1, y0, y1; | ||||
|          GLint ix, iy; | ||||
| @@ -270,7 +270,7 @@ general_rgba_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    GLint radius = isize >> 1; | ||||
|    GLuint i; | ||||
|  | ||||
|    for (i = first; i <= last; i++) { | ||||
|    for (i = first; i < last; i++) { | ||||
|       if (VB->ClipMask[i] == 0) { | ||||
|          GLint x0, x1, y0, y1; | ||||
|          GLint ix, iy; | ||||
| @@ -323,7 +323,7 @@ textured_rgba_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    struct pixel_buffer *PB = ctx->PB; | ||||
|    GLuint i; | ||||
|  | ||||
|    for (i = first; i <= last; i++) { | ||||
|    for (i = first; i < last; i++) { | ||||
|       if (VB->ClipMask[i] == 0) { | ||||
|          GLint x0, x1, y0, y1; | ||||
|          GLint ix, iy, radius; | ||||
| @@ -410,7 +410,7 @@ multitextured_rgba_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    struct pixel_buffer *PB = ctx->PB; | ||||
|    GLuint i; | ||||
|  | ||||
|    for (i = first; i <= last; i++) { | ||||
|    for (i = first; i < last; i++) { | ||||
|       if (VB->ClipMask[i] == 0) { | ||||
|          GLint x0, x1, y0, y1; | ||||
|          GLint ix, iy; | ||||
| @@ -551,12 +551,12 @@ antialiased_rgba_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    GLuint i; | ||||
|  | ||||
|    if (ctx->Texture.ReallyEnabled) { | ||||
|       for (i = first; i <= last; i++) { | ||||
|       for (i = first; i < last; i++) { | ||||
|          if (VB->ClipMask[i] == 0) { | ||||
|             GLint x, y; | ||||
|             GLint red, green, blue, alpha; | ||||
|             GLfloat s, t, u; | ||||
|             GLfloat s1, t1, u1; | ||||
|             GLfloat s = 0.0F, t = 0.0F, u = 0.0F; | ||||
|             GLfloat s1 = 0.0F, t1 = 0.0F, u1 = 0.0F; | ||||
|             GLfloat vx = VB->Win.data[i][0]; | ||||
|             GLfloat vy = VB->Win.data[i][1]; | ||||
|  | ||||
| @@ -667,7 +667,7 @@ antialiased_rgba_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    } | ||||
|    else { | ||||
|       /* Not texture mapped */ | ||||
|       for (i=first;i<=last;i++) { | ||||
|       for (i=first;i<last;i++) { | ||||
|          if (VB->ClipMask[i]==0) { | ||||
|             GLint xmin, ymin, xmax, ymax; | ||||
|             GLint x, y, z; | ||||
| @@ -738,7 +738,7 @@ dist3(GLfloat *out, GLuint first, GLuint last, | ||||
|    const GLfloat *p = VEC_ELT(v, GLfloat, first); | ||||
|    GLuint i; | ||||
|  | ||||
|    for (i = first ; i <= last ; i++, STRIDE_F(p, stride) ) { | ||||
|    for (i = first ; i < last ; i++, STRIDE_F(p, stride) ) { | ||||
|       GLfloat dist = GL_SQRT(p[0]*p[0]+p[1]*p[1]+p[2]*p[2]); | ||||
|       out[i] = 1.0F / (ctx->Point.Params[0] + | ||||
|                        dist * (ctx->Point.Params[1] + | ||||
| @@ -755,7 +755,7 @@ dist2(GLfloat *out, GLuint first, GLuint last, | ||||
|    const GLfloat *p = VEC_ELT(v, GLfloat, first); | ||||
|    GLuint i; | ||||
|  | ||||
|    for (i = first ; i <= last ; i++, STRIDE_F(p, stride) ) { | ||||
|    for (i = first ; i < last ; i++, STRIDE_F(p, stride) ) { | ||||
|       GLfloat dist = GL_SQRT(p[0]*p[0]+p[1]*p[1]); | ||||
|       out[i] = 1.0F / (ctx->Point.Params[0] + | ||||
|                        dist * (ctx->Point.Params[1] + | ||||
| @@ -795,7 +795,7 @@ clip_dist(GLfloat *out, GLuint first, GLuint last, | ||||
|    const GLfloat *from = (GLfloat *)clip_vec->start; | ||||
|    const GLuint stride = clip_vec->stride; | ||||
|  | ||||
|    for (i = first ; i <= last ; i++ ) | ||||
|    for (i = first ; i < last ; i++ ) | ||||
|    { | ||||
|       GLfloat dist = win[i][2]; | ||||
|       out[i] = 1/(ctx->Point.Params[0]+  | ||||
| @@ -824,7 +824,7 @@ dist_atten_general_ci_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    else  | ||||
|       clip_dist( dist, first, last, ctx, VB->ClipPtr ); | ||||
|  | ||||
|    for (i=first;i<=last;i++) { | ||||
|    for (i=first;i<last;i++) { | ||||
|       if (VB->ClipMask[i]==0) { | ||||
|          GLint x0, x1, y0, y1; | ||||
|          GLint ix, iy; | ||||
| @@ -886,7 +886,7 @@ dist_atten_general_rgba_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    else  | ||||
|       clip_dist( dist, first, last, ctx, VB->ClipPtr ); | ||||
|  | ||||
|    for (i=first;i<=last;i++) { | ||||
|    for (i=first;i<last;i++) { | ||||
|       if (VB->ClipMask[i]==0) { | ||||
|          GLint x0, x1, y0, y1; | ||||
|          GLint ix, iy; | ||||
| @@ -956,14 +956,14 @@ dist_atten_textured_rgba_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    else  | ||||
|       clip_dist( dist, first, last, ctx, VB->ClipPtr ); | ||||
|  | ||||
|    for (i=first;i<=last;i++) { | ||||
|    for (i=first;i<last;i++) { | ||||
|       if (VB->ClipMask[i]==0) { | ||||
|          GLint x0, x1, y0, y1; | ||||
|          GLint ix, iy; | ||||
|          GLint isize, radius; | ||||
|          GLint red, green, blue, alpha; | ||||
|          GLfloat s, t, u; | ||||
|          GLfloat s1, t1, u1; | ||||
|          GLfloat s = 0.0F, t = 0.0F, u = 0.0F; | ||||
|          GLfloat s1 = 0.0F, t1 = 0.0F, u1 = 0.0F; | ||||
|  | ||||
|          GLint x = (GLint)  VB->Win.data[i][0]; | ||||
|          GLint y = (GLint)  VB->Win.data[i][1]; | ||||
| @@ -1104,14 +1104,14 @@ dist_atten_antialiased_rgba_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|       clip_dist( dist, first, last, ctx, VB->ClipPtr ); | ||||
|  | ||||
|    if (ctx->Texture.ReallyEnabled) { | ||||
|       for (i=first;i<=last;i++) { | ||||
|       for (i=first;i<last;i++) { | ||||
|          if (VB->ClipMask[i]==0) { | ||||
|             GLfloat radius, rmin, rmax, rmin2, rmax2, cscale, alphaf; | ||||
|             GLint xmin, ymin, xmax, ymax; | ||||
|             GLint x, y, z; | ||||
|             GLint red, green, blue, alpha; | ||||
|             GLfloat s, t, u; | ||||
|             GLfloat s1, t1, u1; | ||||
|             GLfloat s = 0.0F, t = 0.0F, u = 0.0F; | ||||
|             GLfloat s1 = 0.0F, t1 = 0.0F, u1 = 0.0F; | ||||
|             GLfloat dsize = psize * dist[i]; | ||||
|  | ||||
|             if (dsize >= ctx->Point.Threshold) { | ||||
| @@ -1232,7 +1232,7 @@ dist_atten_antialiased_rgba_points( GLcontext *ctx, GLuint first, GLuint last ) | ||||
|    } | ||||
|    else { | ||||
|       /* Not texture mapped */ | ||||
|       for (i = first; i <= last; i++) { | ||||
|       for (i = first; i < last; i++) { | ||||
|          if (VB->ClipMask[i] == 0) { | ||||
|             GLfloat radius, rmin, rmax, rmin2, rmax2, cscale, alphaf; | ||||
|             GLint xmin, ymin, xmax, ymax; | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: state.c,v 1.21 2000/06/30 14:14:37 brianp Exp $ */ | ||||
| /* $Id: state.c,v 1.21.4.6 2000/12/09 19:21:01 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  * | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  * | ||||
| @@ -775,10 +775,10 @@ static void update_pixel_masking( GLcontext *ctx ) | ||||
|  | ||||
| static void update_fog_mode( GLcontext *ctx ) | ||||
| { | ||||
|    int old_mode = ctx->FogMode; | ||||
|    const GLuint old_mode = ctx->FogMode; | ||||
|  | ||||
|    if (ctx->Fog.Enabled) { | ||||
|       if (ctx->Texture.Enabled) | ||||
|       if (ctx->Texture.ReallyEnabled) | ||||
|          ctx->FogMode = FOG_FRAGMENT; | ||||
|       else if (ctx->Hint.Fog == GL_NICEST) | ||||
|          ctx->FogMode = FOG_FRAGMENT; | ||||
| @@ -922,32 +922,38 @@ void gl_update_state( GLcontext *ctx ) | ||||
|       gl_update_client_state( ctx ); | ||||
|  | ||||
|    if ((ctx->NewState & NEW_TEXTURE_ENABLE) && | ||||
|        (ctx->Enabled & ENABLE_TEX_ANY) != ctx->Texture.Enabled) | ||||
|        (ctx->Enabled & ENABLE_TEX_ANY) != ctx->Texture.ReallyEnabled) { | ||||
|       ctx->NewState |= NEW_TEXTURING | NEW_RASTER_OPS; | ||||
|    } | ||||
|  | ||||
|    /* XXX this is a hack, gone in 3.5 */ | ||||
|    if (ctx->NewState & NEW_TEXTURE_ENV) { | ||||
|       if (ctx->Texture.Unit[0].EnvMode == ctx->Texture.Unit[0].LastEnvMode && | ||||
| 	  ctx->Texture.Unit[1].EnvMode == ctx->Texture.Unit[1].LastEnvMode) | ||||
| 	  ctx->Texture.Unit[1].EnvMode == ctx->Texture.Unit[1].LastEnvMode && | ||||
|           ctx->Texture.Unit[0].EnvMode != GL_COMBINE_EXT && | ||||
|           ctx->Texture.Unit[1].EnvMode != GL_COMBINE_EXT) | ||||
| 	 ctx->NewState &= ~NEW_TEXTURE_ENV; | ||||
|       ctx->Texture.Unit[0].LastEnvMode = ctx->Texture.Unit[0].EnvMode; | ||||
|       ctx->Texture.Unit[1].LastEnvMode = ctx->Texture.Unit[1].EnvMode; | ||||
|    } | ||||
|  | ||||
|    if (ctx->NewState & NEW_TEXTURE_MATRIX) { | ||||
|       ctx->Enabled &= ~(ENABLE_TEXMAT0|ENABLE_TEXMAT1); | ||||
|    /* Update ctx->Enabled's ENABLE_TEXMATn flags */ | ||||
|    if (ctx->NewState & (NEW_TEXTURE_MATRIX | NEW_TEXTURE_ENABLE)) { | ||||
|       ctx->Enabled &= ~(ENABLE_TEXMAT0 | ENABLE_TEXMAT1); | ||||
|  | ||||
|       for (i=0; i < MAX_TEXTURE_UNITS; i++) { | ||||
| 	 if (ctx->TextureMatrix[i].flags & MAT_DIRTY_ALL_OVER) { | ||||
| 	    gl_matrix_analyze( &ctx->TextureMatrix[i] ); | ||||
| 	    ctx->TextureMatrix[i].flags &= ~MAT_DIRTY_DEPENDENTS; | ||||
|  | ||||
| 	    if (ctx->Texture.Unit[i].Enabled && | ||||
| 		ctx->TextureMatrix[i].type != MATRIX_IDENTITY) | ||||
| 	       ctx->Enabled |= ENABLE_TEXMAT0 << i; | ||||
| 	 } | ||||
|          if (ctx->Texture.Unit[i].Enabled && | ||||
|              ctx->TextureMatrix[i].type != MATRIX_IDENTITY) { | ||||
|             ctx->Enabled |= ENABLE_TEXMAT0 << i; | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|  | ||||
|    /* Update ctx->Enabled's ENABLE_TEXGENn and ENABLE_TEXn flags */ | ||||
|    if (ctx->NewState & (NEW_TEXTURING | NEW_TEXTURE_ENABLE)) { | ||||
|       ctx->Texture.NeedNormals = GL_FALSE; | ||||
|       gl_update_dirty_texobjs(ctx); | ||||
| @@ -974,9 +980,11 @@ void gl_update_state( GLcontext *ctx ) | ||||
| 	       } | ||||
| 	    } | ||||
| 	 } | ||||
|          else { | ||||
|             ctx->Texture.Unit[i].ReallyEnabled = 0; | ||||
|          } | ||||
|       } | ||||
|  | ||||
|       ctx->Texture.Enabled = ctx->Enabled & ENABLE_TEX_ANY; | ||||
|       ctx->Enabled = (ctx->Enabled & ~ENABLE_TEX_ANY) | ctx->Texture.ReallyEnabled; | ||||
|       ctx->NeedNormals = (ctx->Light.Enabled || ctx->Texture.NeedNormals); | ||||
|    } | ||||
|  | ||||
| @@ -1187,8 +1195,9 @@ void gl_update_state( GLcontext *ctx ) | ||||
| 	 } | ||||
| 	 ctx->NeedEyeNormals = ctx->NeedEyeCoords; | ||||
|       } | ||||
|       if (ctx->Texture.Enabled || ctx->RenderMode==GL_FEEDBACK) { | ||||
| 	 if (ctx->Texture.NeedEyeCoords) ctx->NeedEyeCoords = GL_TRUE; | ||||
|       if (ctx->Texture.ReallyEnabled || ctx->RenderMode==GL_FEEDBACK) { | ||||
| 	 if (ctx->Texture.NeedEyeCoords) | ||||
|             ctx->NeedEyeCoords = GL_TRUE; | ||||
| 	 if (ctx->Texture.NeedNormals) | ||||
| 	    ctx->NeedNormals = ctx->NeedEyeNormals = GL_TRUE; | ||||
|       } | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| /* $Id: stencil.c,v 1.16 2000/04/11 21:26:57 brianp Exp $ */ | ||||
| /* $Id: stencil.c,v 1.16.4.1 2000/11/28 21:30:44 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -1351,11 +1351,11 @@ clear_hardware_stencil_buffer( GLcontext *ctx ) | ||||
|             const GLstencil clearVal = (ctx->Stencil.Clear & mask); | ||||
|             GLstencil stencil[MAX_WIDTH]; | ||||
|             GLint i; | ||||
|             (*ctx->Driver.ReadStencilSpan)(ctx, x, y, width, stencil); | ||||
|             (*ctx->Driver.ReadStencilSpan)(ctx, width, x, y, stencil); | ||||
|             for (i = 0; i < width; i++) { | ||||
|                stencil[i] = (stencil[i] & invMask) | clearVal; | ||||
|             } | ||||
|             (*ctx->Driver.WriteStencilSpan)(ctx, x, y, width, stencil, NULL); | ||||
|             (*ctx->Driver.WriteStencilSpan)(ctx, width, x, y, stencil, NULL); | ||||
|          } | ||||
|       } | ||||
|       else { | ||||
| @@ -1366,7 +1366,7 @@ clear_hardware_stencil_buffer( GLcontext *ctx ) | ||||
|             stencil[i] = ctx->Stencil.Clear; | ||||
|          } | ||||
|          for (y = ctx->DrawBuffer->Ymin; y <= ctx->DrawBuffer->Ymax; y++) { | ||||
|             (*ctx->Driver.WriteStencilSpan)(ctx, x, y, width, stencil, NULL); | ||||
|             (*ctx->Driver.WriteStencilSpan)(ctx, width, x, y, stencil, NULL); | ||||
|          } | ||||
|       } | ||||
|    } | ||||
| @@ -1384,11 +1384,11 @@ clear_hardware_stencil_buffer( GLcontext *ctx ) | ||||
|          for (y = 0; y < height; y++) { | ||||
|             GLstencil stencil[MAX_WIDTH]; | ||||
|             GLuint i; | ||||
|             (*ctx->Driver.ReadStencilSpan)(ctx, x, y, width, stencil); | ||||
|             (*ctx->Driver.ReadStencilSpan)(ctx, width, x, y, stencil); | ||||
|             for (i = 0; i < width; i++) { | ||||
|                stencil[i] = (stencil[i] & invMask) | clearVal; | ||||
|             } | ||||
|             (*ctx->Driver.WriteStencilSpan)(ctx, x, y, width, stencil, NULL); | ||||
|             (*ctx->Driver.WriteStencilSpan)(ctx, width, x, y, stencil, NULL); | ||||
|          } | ||||
|       } | ||||
|       else { | ||||
| @@ -1402,7 +1402,7 @@ clear_hardware_stencil_buffer( GLcontext *ctx ) | ||||
|             stencil[i] = ctx->Stencil.Clear; | ||||
|          } | ||||
|          for (y = 0; y < height; y++) { | ||||
|             (*ctx->Driver.WriteStencilSpan)(ctx, x, y, width, stencil, NULL); | ||||
|             (*ctx->Driver.WriteStencilSpan)(ctx, width, x, y, stencil, NULL); | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,8 +1,8 @@ | ||||
| /* $Id: teximage.h,v 1.11 2000/06/05 07:28:49 joukj Exp $ */ | ||||
| /* $Id: teximage.h,v 1.11.4.2 2000/10/16 23:37:16 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -48,7 +48,9 @@ _mesa_free_texture_image( struct gl_texture_image *teximage ); | ||||
|  | ||||
|  | ||||
| extern GLuint | ||||
| _mesa_compressed_image_size(GLenum internalFormat, | ||||
| _mesa_compressed_image_size(GLcontext *ctx, | ||||
|                             GLenum internalFormat, | ||||
|                             GLint numDimensions, | ||||
|                             GLint width, GLint height, GLint depth); | ||||
|  | ||||
|  | ||||
| @@ -63,8 +65,14 @@ _mesa_select_tex_image(GLcontext *ctx, const struct gl_texture_unit *texUnit, | ||||
|  | ||||
|  | ||||
| extern void | ||||
| _mesa_get_teximage_from_driver( GLcontext *ctx, GLenum target, GLint level, | ||||
|                                 const struct gl_texture_object *texObj ); | ||||
| _mesa_get_teximage_from_driver(GLcontext *ctx, GLenum target, GLint level, | ||||
|                                const struct gl_texture_object *texObj); | ||||
|  | ||||
|  | ||||
| extern GLboolean | ||||
| _mesa_get_teximages_from_driver(GLcontext *ctx, | ||||
|                                 struct gl_texture_object *texObj); | ||||
|  | ||||
|  | ||||
|  | ||||
| /*** API entry point functions ***/ | ||||
|   | ||||
| @@ -1,7 +1,8 @@ | ||||
| /* $Id: texobj.c,v 1.23.4.9 2000/12/14 23:10:39 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -62,11 +63,14 @@ gl_alloc_texture_object( struct gl_shared_state *shared, GLuint name, | ||||
|  | ||||
|    if (obj) { | ||||
|       /* init the non-zero fields */ | ||||
|       _glthread_INIT_MUTEX(obj->Mutex); | ||||
|       obj->RefCount = 1; | ||||
|       obj->Name = name; | ||||
|       obj->Dimensions = dimensions; | ||||
|       obj->Priority = 1.0F; | ||||
|       obj->WrapS = GL_REPEAT; | ||||
|       obj->WrapT = GL_REPEAT; | ||||
|       obj->WrapR = GL_REPEAT; | ||||
|       obj->MinFilter = GL_NEAREST_MIPMAP_LINEAR; | ||||
|       obj->MagFilter = GL_LINEAR; | ||||
|       obj->MinLod = -1000.0; | ||||
| @@ -155,6 +159,20 @@ void gl_free_texture_object( struct gl_shared_state *shared, | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * This is helpful to diagnose incomplete texture problems. | ||||
|  */ | ||||
| #if 0 | ||||
| static void | ||||
| incomplete(const struct gl_texture_object *t, const char *why) | ||||
| { | ||||
|    printf("Texture Obj %d incomplete because: %s\n", t->Name, why); | ||||
| } | ||||
| #else | ||||
| #define incomplete(a, b) | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Examine a texture object to determine if it is complete or not. | ||||
|  * The t->Complete flag will be set to GL_TRUE or GL_FALSE accordingly. | ||||
| @@ -169,6 +187,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | ||||
|  | ||||
|    /* Always need level zero image */ | ||||
|    if (!t->Image[baseLevel]) { | ||||
|       incomplete(t, "Image[baseLevel] == NULL"); | ||||
|       t->Complete = GL_FALSE; | ||||
|       return; | ||||
|    } | ||||
| @@ -188,8 +207,12 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | ||||
|       t->P = max; | ||||
|    } | ||||
|  | ||||
|    t->P += baseLevel; | ||||
|    t->P = MIN2(t->P, t->MaxLevel); | ||||
|    t->P = MIN2(t->P, ctx->Const.MaxTextureLevels - 1); | ||||
|  | ||||
|    /* Compute M (see the 1.2 spec) used during mipmapping */ | ||||
|    t->M = (GLfloat) (MIN2(t->MaxLevel, t->P) - t->BaseLevel); | ||||
|    t->M = (GLfloat) (t->P - t->BaseLevel); | ||||
|  | ||||
|  | ||||
|    if (t->Dimensions == 6) { | ||||
| @@ -212,6 +235,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | ||||
|           t->NegZ[baseLevel]->Width2 != w || | ||||
|           t->NegZ[baseLevel]->Height2 != h) { | ||||
|          t->Complete = GL_FALSE; | ||||
|          incomplete(t, "Non-quare cubemap image"); | ||||
|          return; | ||||
|       } | ||||
|    } | ||||
| @@ -222,11 +246,11 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | ||||
|        */ | ||||
|       GLint i; | ||||
|       GLint minLevel = baseLevel; | ||||
|       GLint maxLevel = MIN2(t->P, ctx->Const.MaxTextureLevels-1); | ||||
|       maxLevel = MIN2(maxLevel, t->MaxLevel); | ||||
|       GLint maxLevel = t->P; | ||||
|  | ||||
|       if (minLevel > maxLevel) { | ||||
|          t->Complete = GL_FALSE; | ||||
|          incomplete(t, "minLevel > maxLevel"); | ||||
|          return; | ||||
|       } | ||||
|  | ||||
| @@ -235,10 +259,12 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | ||||
|          if (t->Image[i]) { | ||||
|             if (t->Image[i]->Format != t->Image[baseLevel]->Format) { | ||||
|                t->Complete = GL_FALSE; | ||||
|                incomplete(t, "Format[i] != Format[baseLevel]"); | ||||
|                return; | ||||
|             } | ||||
|             if (t->Image[i]->Border != t->Image[baseLevel]->Border) { | ||||
|                t->Complete = GL_FALSE; | ||||
|                incomplete(t, "Border[i] != Border[baseLevel]"); | ||||
|                return; | ||||
|             } | ||||
|          } | ||||
| @@ -255,10 +281,12 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | ||||
|             if (i >= minLevel && i <= maxLevel) { | ||||
|                if (!t->Image[i]) { | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   incomplete(t, "1D Image[i] == NULL"); | ||||
|                   return; | ||||
|                } | ||||
|                if (t->Image[i]->Width2 != width ) { | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   incomplete(t, "1D Image[i] bad width"); | ||||
|                   return; | ||||
|                } | ||||
|             } | ||||
| @@ -281,14 +309,17 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | ||||
|             if (i >= minLevel && i <= maxLevel) { | ||||
|                if (!t->Image[i]) { | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   incomplete(t, "2D Image[i] == NULL"); | ||||
|                   return; | ||||
|                } | ||||
|                if (t->Image[i]->Width2 != width) { | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   incomplete(t, "2D Image[i] bad width"); | ||||
|                   return; | ||||
|                } | ||||
|                if (t->Image[i]->Height2 != height) { | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   incomplete(t, "2D Image[i] bad height"); | ||||
|                   return; | ||||
|                } | ||||
|                if (width==1 && height==1) { | ||||
| @@ -314,19 +345,23 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | ||||
|             } | ||||
|             if (i >= minLevel && i <= maxLevel) { | ||||
|                if (!t->Image[i]) { | ||||
|                   incomplete(t, "3D Image[i] == NULL"); | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   return; | ||||
|                } | ||||
|                if (t->Image[i]->Width2 != width) { | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   incomplete(t, "3D Image[i] bad width"); | ||||
|                   return; | ||||
|                } | ||||
|                if (t->Image[i]->Height2 != height) { | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   incomplete(t, "3D Image[i] bad height"); | ||||
|                   return; | ||||
|                } | ||||
|                if (t->Image[i]->Depth2 != depth) { | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   incomplete(t, "3D Image[i] bad depth"); | ||||
|                   return; | ||||
|                } | ||||
|             } | ||||
| @@ -352,6 +387,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | ||||
|                    !t->PosY[i]  || !t->NegY[i] || | ||||
|                    !t->PosZ[i]  || !t->NegZ[i]) { | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   incomplete(t, "CubeMap Image[i] == NULL"); | ||||
|                   return; | ||||
|                } | ||||
|                /* check that all six images have same size */ | ||||
| @@ -361,6 +397,7 @@ _mesa_test_texobj_completeness( const GLcontext *ctx, | ||||
|                    t->PosZ[i]->Width2!=width || t->PosZ[i]->Height2!=height || | ||||
|                    t->NegZ[i]->Width2!=width || t->NegZ[i]->Height2!=height) { | ||||
|                   t->Complete = GL_FALSE; | ||||
|                   incomplete(t, "CubeMap Image[i] bad size"); | ||||
|                   return; | ||||
|                } | ||||
|             } | ||||
| @@ -391,11 +428,13 @@ _mesa_GenTextures( GLsizei n, GLuint *texName ) | ||||
|    GLint i; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glGenTextures"); | ||||
|    if (n<0) { | ||||
|    if (n < 0) { | ||||
|       gl_error( ctx, GL_INVALID_VALUE, "glGenTextures" ); | ||||
|       return; | ||||
|    } | ||||
|  | ||||
|    if (!texName) | ||||
|       return; | ||||
|  | ||||
|    /* | ||||
|     * This must be atomic (generation and allocation of texture IDs) | ||||
| @@ -432,6 +471,9 @@ _mesa_DeleteTextures( GLsizei n, const GLuint *texName) | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glDeleteTextures"); | ||||
|  | ||||
|    if (!texName) | ||||
|       return; | ||||
|  | ||||
|    for (i=0;i<n;i++) { | ||||
|       struct gl_texture_object *t; | ||||
|       if (texName[i]>0) { | ||||
| @@ -514,6 +556,8 @@ _mesa_BindTexture( GLenum target, GLuint texName ) | ||||
|          return; | ||||
|    } | ||||
|  | ||||
|    ctx->NewState |= NEW_TEXTURING; | ||||
|  | ||||
|    if (oldTexObj->Name == texName) | ||||
|       return; | ||||
|  | ||||
| @@ -574,12 +618,9 @@ _mesa_BindTexture( GLenum target, GLuint texName ) | ||||
|         || (oldTexObj->Image[0] && newTexObj->Image[0] &&  | ||||
| 	   (oldTexObj->Image[0]->Format!=newTexObj->Image[0]->Format)))) | ||||
|    { | ||||
|       ctx->NewState |= (NEW_RASTER_OPS | NEW_TEXTURING); | ||||
|       ctx->NewState |= NEW_RASTER_OPS; | ||||
|    } | ||||
|  | ||||
|    if (oldTexObj->Complete != newTexObj->Complete) | ||||
|       ctx->NewState |= NEW_TEXTURING; | ||||
|  | ||||
|    /* Pass BindTexture call to device driver */ | ||||
|    if (ctx->Driver.BindTexture) { | ||||
|       (*ctx->Driver.BindTexture)( ctx, target, newTexObj ); | ||||
| @@ -610,19 +651,20 @@ _mesa_PrioritizeTextures( GLsizei n, const GLuint *texName, | ||||
|    GLint i; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glPrioritizeTextures"); | ||||
|    if (n<0) { | ||||
|    if (n < 0) { | ||||
|       gl_error( ctx, GL_INVALID_VALUE, "glPrioritizeTextures" ); | ||||
|       return; | ||||
|    } | ||||
|  | ||||
|    for (i=0;i<n;i++) { | ||||
|       struct gl_texture_object *t; | ||||
|       if (texName[i]>0) { | ||||
|          t = (struct gl_texture_object *) | ||||
|    if (!priorities) | ||||
|       return; | ||||
|  | ||||
|    for (i = 0; i < n; i++) { | ||||
|       if (texName[i] > 0) { | ||||
|          struct gl_texture_object *t = (struct gl_texture_object *) | ||||
|             _mesa_HashLookup(ctx->Shared->TexObjects, texName[i]); | ||||
|          if (t) { | ||||
|             t->Priority = CLAMP( priorities[i], 0.0F, 1.0F ); | ||||
|  | ||||
| 	    if (ctx->Driver.PrioritizeTexture) | ||||
| 	       ctx->Driver.PrioritizeTexture( ctx, t, t->Priority ); | ||||
|          } | ||||
| @@ -636,41 +678,47 @@ _mesa_PrioritizeTextures( GLsizei n, const GLuint *texName, | ||||
|  * Execute glAreTexturesResident  | ||||
|  */ | ||||
| GLboolean | ||||
| _mesa_AreTexturesResident( GLsizei n, const GLuint *texName, | ||||
|                            GLboolean *residences ) | ||||
| _mesa_AreTexturesResident(GLsizei n, const GLuint *texName, | ||||
|                           GLboolean *residences) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    GLboolean resident = GL_TRUE; | ||||
|    GLboolean allResident = GL_TRUE; | ||||
|    GLint i; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx,  | ||||
| 						  "glAreTexturesResident", | ||||
| 						  GL_FALSE); | ||||
|    if (n<0) { | ||||
|       gl_error( ctx, GL_INVALID_VALUE, "glAreTexturesResident(n)" ); | ||||
|                                             "glAreTexturesResident", GL_FALSE); | ||||
|    if (n < 0) { | ||||
|       gl_error(ctx, GL_INVALID_VALUE, "glAreTexturesResident(n)"); | ||||
|       return GL_FALSE; | ||||
|    } | ||||
|  | ||||
|    for (i=0;i<n;i++) { | ||||
|    if (!texName || !residences) | ||||
|       return GL_FALSE; | ||||
|  | ||||
|    for (i = 0; i < n; i++) { | ||||
|       struct gl_texture_object *t; | ||||
|       if (texName[i]==0) { | ||||
|          gl_error( ctx, GL_INVALID_VALUE, "glAreTexturesResident(textures)" ); | ||||
|       if (texName[i] == 0) { | ||||
|          gl_error(ctx, GL_INVALID_VALUE, "glAreTexturesResident(textures)"); | ||||
|          return GL_FALSE; | ||||
|       } | ||||
|       t = (struct gl_texture_object *) | ||||
|          _mesa_HashLookup(ctx->Shared->TexObjects, texName[i]); | ||||
|       if (t) { | ||||
| 	 if (ctx->Driver.IsTextureResident) | ||||
| 	    residences[i] = ctx->Driver.IsTextureResident( ctx, t ); | ||||
| 	 else  | ||||
| 	 if (ctx->Driver.IsTextureResident) { | ||||
| 	    residences[i] = ctx->Driver.IsTextureResident(ctx, t); | ||||
|             if (!residences[i]) | ||||
|                allResident = GL_FALSE; | ||||
|          } | ||||
| 	 else { | ||||
| 	    residences[i] = GL_TRUE; | ||||
|          } | ||||
|       } | ||||
|       else { | ||||
|          gl_error( ctx, GL_INVALID_VALUE, "glAreTexturesResident(textures)" ); | ||||
|          gl_error(ctx, GL_INVALID_VALUE, "glAreTexturesResident(textures)"); | ||||
|          return GL_FALSE; | ||||
|       } | ||||
|    } | ||||
|    return resident; | ||||
|    return allResident; | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -684,7 +732,7 @@ _mesa_IsTexture( GLuint texture ) | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx, "glIsTextures", | ||||
| 						  GL_FALSE); | ||||
|    if (texture>0 && _mesa_HashLookup(ctx->Shared->TexObjects, texture)) { | ||||
|    if (texture > 0 && _mesa_HashLookup(ctx->Shared->TexObjects, texture)) { | ||||
|       return GL_TRUE; | ||||
|    } | ||||
|    else { | ||||
|   | ||||
| @@ -1,21 +1,21 @@ | ||||
| /* $Id: texstate.c,v 1.15 2000/07/05 16:14:24 brianp Exp $ */ | ||||
| /* $Id: texstate.c,v 1.15.4.3 2001/01/06 22:43:00 gareth Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  *  | ||||
|  * Version:  3.4 | ||||
|  * | ||||
|  * 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"), | ||||
|  * 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 | ||||
| @@ -118,6 +118,14 @@ _mesa_TexEnvfv( GLenum target, GLenum pname, const GLfloat *param ) | ||||
|                   case GL_ADD: | ||||
|                   case GL_ADD_SIGNED_EXT: | ||||
|                   case GL_INTERPOLATE_EXT: | ||||
| 	          case GL_DOT3_RGB_EXT: | ||||
| 	          case GL_DOT3_RGBA_EXT: | ||||
|                      if ((mode == GL_DOT3_RGB_EXT || | ||||
| 			  mode == GL_DOT3_RGBA_EXT) && | ||||
|                          !ctx->Extensions.HaveTextureEnvDot3) { | ||||
|                         gl_error(ctx, GL_INVALID_ENUM, "glTexEnv(param)"); | ||||
|                         return; | ||||
|                      } | ||||
|                      if (texUnit->CombineModeRGB == mode) | ||||
|                         return;  /* no change */ | ||||
|                      texUnit->CombineModeRGB = mode; | ||||
| @@ -356,7 +364,7 @@ _mesa_TexEnvfv( GLenum target, GLenum pname, const GLfloat *param ) | ||||
|    } | ||||
|  | ||||
|    if (MESA_VERBOSE&(VERBOSE_API|VERBOSE_TEXTURE)) | ||||
|       fprintf(stderr, "glTexEnv %s %s %.1f(%s) ...\n",   | ||||
|       fprintf(stderr, "glTexEnv %s %s %.1f(%s) ...\n", | ||||
| 	      gl_lookup_enum_by_nr(target), | ||||
| 	      gl_lookup_enum_by_nr(pname), | ||||
| 	      *param, | ||||
| @@ -620,7 +628,7 @@ _mesa_TexParameterfv( GLenum target, GLenum pname, const GLfloat *params ) | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glTexParameterfv"); | ||||
|  | ||||
|    if (MESA_VERBOSE&(VERBOSE_API|VERBOSE_TEXTURE)) | ||||
|       fprintf(stderr, "texPARAM %s %s %d...\n",  | ||||
|       fprintf(stderr, "texPARAM %s %s %d...\n", | ||||
| 	      gl_lookup_enum_by_nr(target), | ||||
| 	      gl_lookup_enum_by_nr(pname), | ||||
| 	      eparam); | ||||
| @@ -971,7 +979,14 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params ) | ||||
|          params[3] = obj->BorderColor[3] / 255.0F; | ||||
|          break; | ||||
|       case GL_TEXTURE_RESIDENT: | ||||
|          *params = ENUM_TO_FLOAT(GL_TRUE); | ||||
|          { | ||||
|             GLboolean resident; | ||||
|             if (ctx->Driver.IsTextureResident) | ||||
|                resident = ctx->Driver.IsTextureResident(ctx, obj); | ||||
|             else | ||||
|                resident = GL_TRUE; | ||||
|             *params = ENUM_TO_FLOAT(resident); | ||||
|          } | ||||
|          break; | ||||
|       case GL_TEXTURE_PRIORITY: | ||||
|          *params = obj->Priority; | ||||
| @@ -1039,7 +1054,14 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params ) | ||||
|          } | ||||
|          break; | ||||
|       case GL_TEXTURE_RESIDENT: | ||||
|          *params = (GLint) GL_TRUE; | ||||
|          { | ||||
|             GLboolean resident; | ||||
|             if (ctx->Driver.IsTextureResident) | ||||
|                resident = ctx->Driver.IsTextureResident(ctx, obj); | ||||
|             else | ||||
|                resident = GL_TRUE; | ||||
|             *params = (GLint) resident; | ||||
|          } | ||||
|          break; | ||||
|       case GL_TEXTURE_PRIORITY: | ||||
|          *params = (GLint) obj->Priority; | ||||
| @@ -1078,7 +1100,7 @@ _mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params ) | ||||
|    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glTexGenfv"); | ||||
|  | ||||
|    if (MESA_VERBOSE&(VERBOSE_API|VERBOSE_TEXTURE)) | ||||
|       fprintf(stderr, "texGEN %s %s %x...\n",  | ||||
|       fprintf(stderr, "texGEN %s %s %x...\n", | ||||
| 	      gl_lookup_enum_by_nr(coord), | ||||
| 	      gl_lookup_enum_by_nr(pname), | ||||
| 	      *(int *)params); | ||||
| @@ -1228,7 +1250,7 @@ _mesa_TexGenfv( GLenum coord, GLenum pname, const GLfloat *params ) | ||||
|          if (pname==GL_TEXTURE_GEN_MODE) { | ||||
| 	    GLenum mode = (GLenum) (GLint) *params; | ||||
| 	    switch (mode) { | ||||
| 	    case GL_OBJECT_LINEAR:  | ||||
| 	    case GL_OBJECT_LINEAR: | ||||
| 	       texUnit->GenModeQ = GL_OBJECT_LINEAR; | ||||
| 	       texUnit->GenBitQ = TEXGEN_OBJ_LINEAR; | ||||
| 	       break; | ||||
| @@ -1578,12 +1600,12 @@ void | ||||
| _mesa_ActiveTextureARB( GLenum target ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    GLint maxUnits = ctx->Const.MaxTextureUnits; | ||||
|    const GLuint maxUnits = ctx->Const.MaxTextureUnits; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END( ctx, "glActiveTextureARB" ); | ||||
|  | ||||
|    if (MESA_VERBOSE & (VERBOSE_API|VERBOSE_TEXTURE)) | ||||
|       fprintf(stderr, "glActiveTexture %s\n",  | ||||
|       fprintf(stderr, "glActiveTexture %s\n", | ||||
| 	      gl_lookup_enum_by_nr(target)); | ||||
|  | ||||
|    if (target >= GL_TEXTURE0_ARB && target < GL_TEXTURE0_ARB + maxUnits) { | ||||
| @@ -1605,7 +1627,7 @@ void | ||||
| _mesa_ClientActiveTextureARB( GLenum target ) | ||||
| { | ||||
|    GET_CURRENT_CONTEXT(ctx); | ||||
|    GLint maxUnits = ctx->Const.MaxTextureUnits; | ||||
|    const GLuint maxUnits = ctx->Const.MaxTextureUnits; | ||||
|  | ||||
|    ASSERT_OUTSIDE_BEGIN_END( ctx, "glClientActiveTextureARB" ); | ||||
|  | ||||
|   | ||||
| @@ -1,7 +1,8 @@ | ||||
| /* $Id: texutil.c,v 1.5.4.5 2000/11/17 02:42:01 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -80,7 +81,10 @@ | ||||
|  *   GL_RGBA             GL_UNSIGNED_BYTE                 MESA_A4_R4_G4_B4 | ||||
|  *   GL_BGRA             GL_UNSIGNED_SHORT_4_4_4_4_REV    MESA_A4_R4_G4_B4 | ||||
|  *   GL_BGRA             GL_UNSIGHED_SHORT_1_5_5_5_REV    MESA_A1_R5_G5_B5 | ||||
|  *   GL_RGBA             GL_UNSIGNED_BYTE                 MESA_A1_R5_G5_B5 | ||||
|  *   GL_BGRA             GL_UNSIGNED_INT_8_8_8_8_REV      MESA_A8_R8_G8_B8 | ||||
|  *   GL_RGBA             GL_UNSIGNED_BYTE                 MESA_A8_R8_G8_B8 | ||||
|  *   GL_RGB              GL_UNSIGNED_BYTE                 MESA_A8_R8_G8_B8 | ||||
|  *   more to be added for new drivers... | ||||
|  * | ||||
|  * Notes: | ||||
| @@ -123,8 +127,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|             /* store as 8-bit texels */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                /* no scaling needed - fast case */ | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
|                GLubyte *dst = (GLubyte *) dstImage; | ||||
| @@ -141,8 +146,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                              srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      dst[col] = src[col / wScale]; | ||||
| @@ -160,8 +166,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|          else { | ||||
|             /* store as 16-bit texels */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) dstImage; | ||||
| @@ -182,8 +189,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|                GLint row, col; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
| @@ -203,8 +211,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|          if (srcFormat == GL_RGB && srcType == GL_UNSIGNED_SHORT_5_6_5) { | ||||
|             /* special, optimized case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) dstImage; | ||||
| @@ -221,8 +230,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLushort *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLushort *src = (const GLushort *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      dst[col] = src[col / wScale]; | ||||
| @@ -234,8 +244,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|          else if (srcFormat == GL_RGB && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
| #ifdef DO_32BIT_STORES | ||||
| @@ -286,8 +297,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      GLint col3 = (col / wScale) * 3; | ||||
| @@ -305,8 +317,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|          else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case (used by Quake3) */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
| #ifdef DO_32BIT_STORES | ||||
| @@ -357,8 +370,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      GLint col4 = (col / wScale) * 4; | ||||
| @@ -384,8 +398,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|          if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV){ | ||||
|             /* special, optimized case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) dstImage; | ||||
| @@ -402,8 +417,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLushort *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLushort *src = (const GLushort *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      dst[col] = src[col / wScale]; | ||||
| @@ -415,8 +431,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|          else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
| #ifdef DO_32BIT_STORES | ||||
| @@ -473,8 +490,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      GLint col4 = (col / wScale) * 4; | ||||
| @@ -499,11 +517,12 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|  | ||||
|       case MESA_A1_R5_G5_B5: | ||||
|          /* store as 16-bit texels (GR_TEXFMT_ARGB_1555) */ | ||||
|          if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV){ | ||||
|          if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV){ | ||||
|             /* special, optimized case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) dstImage; | ||||
| @@ -520,8 +539,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLushort *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLushort *src = (const GLushort *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      dst[col] = src[col / wScale]; | ||||
| @@ -533,8 +553,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|          else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) dstImage; | ||||
| @@ -561,8 +582,9 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      GLint col4 = (col / wScale) * 4; | ||||
| @@ -586,15 +608,17 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|          break; | ||||
|  | ||||
|       case MESA_A8_R8_G8_B8: | ||||
|       case MESA_FF_R8_G8_B8: | ||||
|          /* 32-bit texels */ | ||||
|          if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_INT_8_8_8_8_REV){ | ||||
|             /* special, optimized case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
|                GLuint *dst = dstImage; | ||||
|                GLuint *dst = (GLuint *) dstImage; | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   MEMCPY(dst, src, dstWidth * sizeof(GLuint)); | ||||
| @@ -604,12 +628,13 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|             } | ||||
|             else { | ||||
|                /* must rescale image */ | ||||
|                GLuint *dst = dstImage; | ||||
|                GLuint *dst = (GLuint *) dstImage; | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLuint *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLuint *src = (const GLuint *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      dst[col] = src[col / wScale]; | ||||
| @@ -621,11 +646,12 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|          else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
|                GLuint *dst = dstImage; | ||||
|                GLuint *dst = (GLuint *) dstImage; | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint col, col4; | ||||
| @@ -642,12 +668,13 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|             } | ||||
|             else { | ||||
|                /* must rescale image */ | ||||
|                GLuint *dst = dstImage; | ||||
|                GLuint *dst = (GLuint *) dstImage; | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      GLint col4 = (col / wScale) * 4; | ||||
| @@ -661,13 +688,65 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|                } | ||||
|             } | ||||
|          } | ||||
|          else if (srcFormat == GL_RGB && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  srcWidth, srcFormat, srcType); | ||||
|                GLuint *dst = (GLuint *) dstImage; | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint col, col3; | ||||
|                   for (col = col3 = 0; col < dstWidth; col++, col3 += 3) { | ||||
|                      GLubyte r = src[col3 + 0]; | ||||
|                      GLubyte g = src[col3 + 1]; | ||||
|                      GLubyte b = src[col3 + 2]; | ||||
|                      GLubyte a = 255; | ||||
|                      dst[col] = (a << 24) | (r << 16) | (g << 8) | b; | ||||
|                   } | ||||
|                   src += srcStride; | ||||
|                   dst = (GLuint *) ((GLubyte *) dst + dstRowStride); | ||||
|                } | ||||
|             } | ||||
|             else { | ||||
|                /* must rescale image */ | ||||
|                GLuint *dst = (GLuint *) dstImage; | ||||
|                GLint row; | ||||
|                for (row = 0; row < dstHeight; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < dstWidth; col++) { | ||||
|                      GLint col3 = (col / wScale) * 3; | ||||
|                      GLubyte r = src[col3 + 0]; | ||||
|                      GLubyte g = src[col3 + 1]; | ||||
|                      GLubyte b = src[col3 + 2]; | ||||
|                      GLubyte a = 255; | ||||
|                      dst[col] = (a << 24) | (r << 16) | (g << 8) | b; | ||||
|                   } | ||||
|                   dst = (GLuint *) ((GLubyte *) dst + dstRowStride); | ||||
|                } | ||||
|             } | ||||
|          } | ||||
|          else { | ||||
|             /* can't handle this source format/type combination */ | ||||
|             return GL_FALSE; | ||||
|          } | ||||
|          if (dstFormat == MESA_FF_R8_G8_B8) { | ||||
|             /* set alpha bytes to 0xff */ | ||||
|             GLint i; | ||||
|             GLubyte *dst = (GLubyte *) dstImage; | ||||
|             for (i = 0; i < dstWidth * dstHeight; i++) { | ||||
|                dst[i * 4 + 3] = 0xff; | ||||
|             } | ||||
|          } | ||||
|          break; | ||||
|  | ||||
|  | ||||
|       default: | ||||
|          /* unexpected internal format! */ | ||||
|          return GL_FALSE; | ||||
| @@ -681,11 +760,11 @@ _mesa_convert_teximage(MesaIntTexFormat dstFormat, | ||||
|  * Replace a subregion of a texture image with new data. | ||||
|  * Input: | ||||
|  *   dstFormat - destination image format | ||||
|  *   dstXoffset, dstYoffset - destination for new subregion | ||||
|  *   dstWidth, dstHeight - total size of dest image | ||||
|  *   dstXoffset, dstYoffset - destination for new subregion (in texels) | ||||
|  *   dstWidth, dstHeight - total size of dest image (in texels) | ||||
|  *   dstImage - pointer to dest image | ||||
|  *   dstRowStride - bytes to jump between image rows | ||||
|  *   width, height - size of region to copy/replace | ||||
|  *   dstRowStride - bytes to jump between image rows (in bytes) | ||||
|  *   width, height - size of region to copy/replace (in texels) | ||||
|  *   srcWidth, srcHeight - size of the corresponding gl_texture_image | ||||
|  *   srcFormat, srcType - source image format and datatype | ||||
|  *   srcImage - source image | ||||
| @@ -741,17 +820,24 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|             /* store as 8-bit texels */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                /* no scaling needed - fast case */ | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcRowStride = _mesa_image_row_stride(packing, | ||||
|                                                   width, srcFormat, srcType); | ||||
|                GLubyte *dst = (GLubyte *) dstImage | ||||
|                             + dstYoffset * dstRowStride + dstXoffset; | ||||
|                const GLint rowSize = width * sizeof(GLubyte); | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   MEMCPY(dst, src, width * sizeof(GLubyte)); | ||||
|                   dst += dstRowStride; | ||||
|                   src += srcStride; | ||||
|                if (dstRowStride == srcRowStride && dstRowStride == rowSize) { | ||||
|                   MEMCPY(dst, src, rowSize * height); | ||||
|                } | ||||
|                else { | ||||
|                   for (row = 0; row < height; row++) { | ||||
|                      MEMCPY(dst, src, rowSize); | ||||
|                      dst += dstRowStride; | ||||
|                      src += srcRowStride; | ||||
|                   } | ||||
|                } | ||||
|             } | ||||
|             else { | ||||
| @@ -761,8 +847,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      dst[col] = src[col / wScale]; | ||||
| @@ -780,8 +867,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|          else { | ||||
|             /* store as 16-bit texels */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) ((GLubyte *) dstImage | ||||
| @@ -804,8 +892,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row, col; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                   for (col = 0; col < width; col++) { | ||||
| @@ -825,8 +914,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|          if (srcFormat == GL_RGB && srcType == GL_UNSIGNED_SHORT_5_6_5) { | ||||
|             /* special, optimized case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) ((GLubyte *) dstImage | ||||
| @@ -845,8 +935,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLushort *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLushort *src = (const GLushort *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      dst[col] = src[col / wScale]; | ||||
| @@ -858,8 +949,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|          else if (srcFormat == GL_RGB && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) ((GLubyte *) dstImage | ||||
| @@ -886,8 +978,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      GLint col3 = (col / wScale) * 3; | ||||
| @@ -905,8 +998,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|          else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case (used by Quake3) */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) ((GLubyte *) dstImage | ||||
| @@ -933,8 +1027,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      GLint col4 = (col / wScale) * 4; | ||||
| @@ -960,8 +1055,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|          if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV){ | ||||
|             /* special, optimized case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) ((GLubyte *) dstImage | ||||
| @@ -980,8 +1076,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLushort *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLushort *src = (const GLushort *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      dst[col] = src[col / wScale]; | ||||
| @@ -993,8 +1090,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|          else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) ((GLubyte *) dstImage | ||||
| @@ -1023,8 +1121,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      GLint col4 = (col / wScale) * 4; | ||||
| @@ -1049,11 +1148,12 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|  | ||||
|       case MESA_A1_R5_G5_B5: | ||||
|          /* store as 16-bit texels (GR_TEXFMT_ARGB_1555) */ | ||||
|          if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV){ | ||||
|          if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV){ | ||||
|             /* special, optimized case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) ((GLubyte *) dstImage | ||||
| @@ -1072,8 +1172,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLushort *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLushort *src = (const GLushort *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      dst[col] = src[col / wScale]; | ||||
| @@ -1085,8 +1186,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|          else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                GLushort *dst = (GLushort *) ((GLubyte *) dstImage | ||||
| @@ -1115,8 +1217,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      GLint col4 = (col / wScale) * 4; | ||||
| @@ -1140,12 +1243,14 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|          break; | ||||
|  | ||||
|       case MESA_A8_R8_G8_B8: | ||||
|       case MESA_FF_R8_G8_B8: | ||||
|          /* 32-bit texels */ | ||||
|          if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_INT_8_8_8_8_REV){ | ||||
|          if (srcFormat == GL_BGRA && srcType == GL_UNSIGNED_INT_8_8_8_8_REV) { | ||||
|             /* special, optimized case */ | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                GLuint *dst = (GLuint *) ((GLubyte *) dstImage | ||||
| @@ -1164,8 +1269,9 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLuint *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLuint *src = (const GLuint *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      dst[col] = src[col / wScale]; | ||||
| @@ -1173,12 +1279,27 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                   dst = (GLuint *) ((GLubyte *) dst + dstRowStride); | ||||
|                } | ||||
|             } | ||||
|             if (dstFormat == MESA_FF_R8_G8_B8) { | ||||
|                /* set alpha bytes to 0xff */ | ||||
|                GLint row, col; | ||||
|                GLubyte *dst = (GLubyte *) dstImage | ||||
|                               + dstYoffset * dstRowStride + dstXoffset * 4; | ||||
|                assert(wScale == 1 && hScale == 1); /* XXX not done */ | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      dst[col * 4 + 3] = 0xff; | ||||
|                   } | ||||
|                   dst = dst + dstRowStride; | ||||
|                } | ||||
|             } | ||||
|          } | ||||
|          else if (srcFormat == GL_RGBA && srcType == GL_UNSIGNED_BYTE) { | ||||
|             /* general case */ | ||||
|             const GLubyte aMask = (dstFormat==MESA_FF_R8_G8_B8) ? 0xff : 0x00; | ||||
|             if (wScale == 1 && hScale == 1) { | ||||
|                const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                              srcWidth, srcHeight, srcFormat, srcType, 0, 0, 0); | ||||
|                const GLubyte *src = (const GLubyte *) | ||||
|                   _mesa_image_address(packing, srcImage, srcWidth, srcHeight, | ||||
|                                       srcFormat, srcType, 0, 0, 0); | ||||
|                const GLint srcStride = _mesa_image_row_stride(packing, | ||||
|                                                  width, srcFormat, srcType); | ||||
|                GLuint *dst = (GLuint *) ((GLubyte *) dstImage | ||||
| @@ -1190,7 +1311,7 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                      GLubyte r = src[col4 + 0]; | ||||
|                      GLubyte g = src[col4 + 1]; | ||||
|                      GLubyte b = src[col4 + 2]; | ||||
|                      GLubyte a = src[col4 + 3]; | ||||
|                      GLubyte a = src[col4 + 3] | aMask; | ||||
|                      dst[col] = (a << 24) | (r << 16) | (g << 8) | b; | ||||
|                   } | ||||
|                   src += srcStride; | ||||
| @@ -1204,15 +1325,16 @@ _mesa_convert_texsubimage(MesaIntTexFormat dstFormat, | ||||
|                GLint row; | ||||
|                for (row = 0; row < height; row++) { | ||||
|                   GLint srcRow = row / hScale; | ||||
|                   const GLubyte *src = _mesa_image_address(packing, srcImage, | ||||
|                         srcWidth, srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   const GLubyte *src = (const GLubyte *) | ||||
|                      _mesa_image_address(packing, srcImage, srcWidth, | ||||
|                                   srcHeight, srcFormat, srcType, 0, srcRow, 0); | ||||
|                   GLint col; | ||||
|                   for (col = 0; col < width; col++) { | ||||
|                      GLint col4 = (col / wScale) * 4; | ||||
|                      GLubyte r = src[col4 + 0]; | ||||
|                      GLubyte g = src[col4 + 1]; | ||||
|                      GLubyte b = src[col4 + 2]; | ||||
|                      GLubyte a = src[col4 + 3]; | ||||
|                      GLubyte a = src[col4 + 3] | aMask; | ||||
|                      dst[col] = (a << 24) | (r << 16) | (g << 8) | b; | ||||
|                   } | ||||
|                   dst = (GLuint *) ((GLubyte *) dst + dstRowStride); | ||||
| @@ -1491,6 +1613,7 @@ _mesa_unconvert_teximage(MesaIntTexFormat srcFormat, | ||||
|          } | ||||
|          break; | ||||
|       case MESA_A8_R8_G8_B8: | ||||
|       case MESA_FF_R8_G8_B8: | ||||
|          ASSERT(dstFormat == GL_RGBA); | ||||
|          if (wScale == 1 && hScale == 1) { | ||||
|             GLint i, n = dstWidth * dstHeight; | ||||
| @@ -1546,6 +1669,7 @@ _mesa_set_teximage_component_sizes(MesaIntTexFormat mesaFormat, | ||||
|       { MESA_A4_R4_G4_B4,  4, 4, 4, 4, 0, 0, 0 }, | ||||
|       { MESA_A1_R5_G5_B5,  5, 5, 5, 1, 0, 0, 0 }, | ||||
|       { MESA_A8_R8_G8_B8,  8, 8, 8, 8, 0, 0, 0 }, | ||||
|       { MESA_FF_R8_G8_B8,  8, 8, 8, 8, 0, 0, 0 }, | ||||
|       { -1,                0, 0, 0, 0, 0, 0, 0 } | ||||
|    }; | ||||
|    GLint i; | ||||
|   | ||||
| @@ -1,7 +1,8 @@ | ||||
| /* $Id: texutil.h,v 1.3.4.1 2000/08/29 22:58:33 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  * Version:  3.4 | ||||
|  *  | ||||
|  * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved. | ||||
|  *  | ||||
| @@ -32,6 +33,9 @@ | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * NOTE: "FF" means fill with byte value 0xff | ||||
|  */ | ||||
|                            /* msb <------ TEXEL BITS -----------> lsb */ | ||||
| typedef enum {             /* ---- ---- ---- ---- ---- ---- ---- ---- */ | ||||
|    MESA_I8,                /*                               IIII IIII */ | ||||
| @@ -42,7 +46,8 @@ typedef enum {             /* ---- ---- ---- ---- ---- ---- ---- ---- */ | ||||
|    MESA_R5_G6_B5,          /*                     RRRR RGGG GGGB BBBB */ | ||||
|    MESA_A4_R4_G4_B4,       /*                     AAAA RRRR GGGG BBBB */ | ||||
|    MESA_A1_R5_G5_B5,       /*                     ARRR RRGG GGGB BBBB */ | ||||
|    MESA_A8_R8_G8_B8        /* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */ | ||||
|    MESA_A8_R8_G8_B8,       /* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */ | ||||
|    MESA_FF_R8_G8_B8        /* FFFF FFFF RRRR RRRR GGGG GGGG BBBB BBBB */ | ||||
| } MesaIntTexFormat; | ||||
|  | ||||
|  | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,4 +1,3 @@ | ||||
| /* $Id: varray.h,v 1.7 2000/06/12 15:30:52 brianp Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
| @@ -139,4 +138,9 @@ extern void gl_exec_array_elements( GLcontext *ctx, | ||||
| extern void gl_update_client_state( GLcontext *ctx ); | ||||
|  | ||||
|  | ||||
| #ifdef VAO | ||||
| struct gl_array_object * | ||||
| _mesa_alloc_vertex_array_object(GLcontext *ctx, GLuint name); | ||||
| #endif | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -1,21 +1,21 @@ | ||||
| /* $Id: 3dnow.c,v 1.5 2000/06/27 22:10:01 brianp Exp $ */ | ||||
| /* $Id: 3dnow.c,v 1.5.4.4 2000/11/30 02:44:22 gareth Exp $ */ | ||||
|  | ||||
| /* | ||||
|  * Mesa 3-D graphics library | ||||
|  * Version:  3.3 | ||||
|  *  | ||||
|  * Version:  3.4 | ||||
|  * | ||||
|  * 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"), | ||||
|  * 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 | ||||
| @@ -24,175 +24,175 @@ | ||||
|  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
|  */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * 3DNow! optimizations contributed by | ||||
|  * Holger Waechtler <holger@akaflieg.extern.tu-berlin.de> | ||||
|  */ | ||||
| #if defined(USE_3DNOW_ASM) && defined(USE_X86_ASM) | ||||
| #include "3dnow.h" | ||||
|  | ||||
| #include <limits.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <math.h> | ||||
|  | ||||
| #include "glheader.h" | ||||
| #include "context.h" | ||||
| #include "shade.h" | ||||
| #include "types.h" | ||||
| #include "xform.h" | ||||
| #include "vertices.h" | ||||
| #include "xform.h" | ||||
| #include "3dnow.h" | ||||
|  | ||||
| #ifdef DEBUG | ||||
| #include "debug_xform.h" | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #define XFORM_ARGS	GLvector4f *to_vec,				\ | ||||
| 			const GLfloat m[16],				\ | ||||
| 			const GLvector4f *from_vec,			\ | ||||
| 			const GLubyte *mask,				\ | ||||
| 			const GLubyte flag | ||||
|  | ||||
|  | ||||
| #define XFORM_ARGS      GLvector4f *to_vec,             \ | ||||
|                         const GLfloat m[16],            \ | ||||
|                         const GLvector4f *from_vec,     \ | ||||
|                         const GLubyte *mask,            \ | ||||
|                         const GLubyte flag | ||||
| #define DECLARE_XFORM_GROUP( pfx, sz, masked ) \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_points##sz##_general_##masked( XFORM_ARGS );	    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_points##sz##_identity_##masked( XFORM_ARGS );	    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_points##sz##_3d_no_rot_##masked( XFORM_ARGS );    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_points##sz##_perspective_##masked( XFORM_ARGS );  \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_points##sz##_2d_##masked( XFORM_ARGS );	    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_points##sz##_2d_no_rot_##masked( XFORM_ARGS );    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_points##sz##_3d_##masked( XFORM_ARGS ); | ||||
|  | ||||
|  | ||||
| #define ASSIGN_XFORM_GROUP( pfx, cma, sz, masked )			\ | ||||
|    gl_transform_tab[cma][sz][MATRIX_GENERAL] =				\ | ||||
|       gl_##pfx##_transform_points##sz##_general_##masked;		\ | ||||
|    gl_transform_tab[cma][sz][MATRIX_IDENTITY] =				\ | ||||
|       gl_##pfx##_transform_points##sz##_identity_##masked;		\ | ||||
|    gl_transform_tab[cma][sz][MATRIX_3D_NO_ROT] =			\ | ||||
|       gl_##pfx##_transform_points##sz##_3d_no_rot_##masked;		\ | ||||
|    gl_transform_tab[cma][sz][MATRIX_PERSPECTIVE] =			\ | ||||
|       gl_##pfx##_transform_points##sz##_perspective_##masked;		\ | ||||
|    gl_transform_tab[cma][sz][MATRIX_2D] =				\ | ||||
|       gl_##pfx##_transform_points##sz##_2d_##masked;			\ | ||||
|    gl_transform_tab[cma][sz][MATRIX_2D_NO_ROT] =			\ | ||||
|       gl_##pfx##_transform_points##sz##_2d_no_rot_##masked;		\ | ||||
|    gl_transform_tab[cma][sz][MATRIX_3D] =				\ | ||||
|       gl_##pfx##_transform_points##sz##_3d_##masked; | ||||
|  | ||||
|  | ||||
|  | ||||
| #define DECLARE_XFORM_GROUP(pfx, v, masked) \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_points##v##_general_##masked(XFORM_ARGS);    \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_points##v##_identity_##masked(XFORM_ARGS);   \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_points##v##_3d_no_rot_##masked(XFORM_ARGS);  \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_points##v##_perspective_##masked(XFORM_ARGS);\ | ||||
|  extern void _ASMAPI gl##pfx##_transform_points##v##_2d_##masked(XFORM_ARGS);         \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_points##v##_2d_no_rot_##masked(XFORM_ARGS);  \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_points##v##_3d_##masked(XFORM_ARGS); | ||||
| #define NORM_ARGS	const GLmatrix *mat,				\ | ||||
| 			GLfloat scale,					\ | ||||
| 			const GLvector3f *in,				\ | ||||
| 			const GLfloat *lengths,				\ | ||||
| 			const GLubyte mask[],				\ | ||||
| 			GLvector3f *dest | ||||
|  | ||||
|  | ||||
|  | ||||
| #define ASSIGN_XFORM_GROUP( pfx, cma, vsize, masked )           \ | ||||
|  gl_transform_tab[cma][vsize][MATRIX_GENERAL]                   \ | ||||
|   = gl##pfx##_transform_points##vsize##_general_##masked;      \ | ||||
|  gl_transform_tab[cma][vsize][MATRIX_IDENTITY]                  \ | ||||
|   = gl##pfx##_transform_points##vsize##_identity_##masked;     \ | ||||
|  gl_transform_tab[cma][vsize][MATRIX_3D_NO_ROT]                 \ | ||||
|   = gl##pfx##_transform_points##vsize##_3d_no_rot_##masked;    \ | ||||
|  gl_transform_tab[cma][vsize][MATRIX_PERSPECTIVE]               \ | ||||
|   = gl##pfx##_transform_points##vsize##_perspective_##masked;  \ | ||||
|  gl_transform_tab[cma][vsize][MATRIX_2D]                        \ | ||||
|   = gl##pfx##_transform_points##vsize##_2d_##masked;           \ | ||||
|  gl_transform_tab[cma][vsize][MATRIX_2D_NO_ROT]                 \ | ||||
|   = gl##pfx##_transform_points##vsize##_2d_no_rot_##masked;    \ | ||||
|  gl_transform_tab[cma][vsize][MATRIX_3D]                        \ | ||||
|   = gl##pfx##_transform_points##vsize##_3d_##masked; | ||||
| #define DECLARE_NORM_GROUP( pfx, masked ) \ | ||||
|  extern void _ASMAPI gl_##pfx##_rescale_normals_##masked( NORM_ARGS );			    \ | ||||
|  extern void _ASMAPI gl_##pfx##_normalize_normals_##masked( NORM_ARGS );		    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_normals_##masked( NORM_ARGS );		    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_normals_no_rot_##masked( NORM_ARGS );		    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_rescale_normals_##masked( NORM_ARGS );	    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_rescale_normals_no_rot_##masked( NORM_ARGS );	    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_normalize_normals_##masked( NORM_ARGS );	    \ | ||||
|  extern void _ASMAPI gl_##pfx##_transform_normalize_normals_no_rot_##masked( NORM_ARGS ); | ||||
|  | ||||
|  | ||||
| #define ASSIGN_NORM_GROUP( pfx, cma, masked )				\ | ||||
|    gl_normal_tab[NORM_RESCALE][cma] =					\ | ||||
|       gl_##pfx##_rescale_normals_##masked;				\ | ||||
|    gl_normal_tab[NORM_NORMALIZE][cma] =					\ | ||||
|       gl_##pfx##_normalize_normals_##masked;				\ | ||||
|    gl_normal_tab[NORM_TRANSFORM][cma] =					\ | ||||
|       gl_##pfx##_transform_normals_##masked;				\ | ||||
|    gl_normal_tab[NORM_TRANSFORM_NO_ROT][cma] =				\ | ||||
|       gl_##pfx##_transform_normals_no_rot_##masked;			\ | ||||
|    gl_normal_tab[NORM_TRANSFORM | NORM_RESCALE][cma] =			\ | ||||
|       gl_##pfx##_transform_rescale_normals_##masked;			\ | ||||
|    gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_RESCALE][cma] =		\ | ||||
|       gl_##pfx##_transform_rescale_normals_no_rot_##masked;		\ | ||||
|    gl_normal_tab[NORM_TRANSFORM | NORM_NORMALIZE][cma] =		\ | ||||
|       gl_##pfx##_transform_normalize_normals_##masked;			\ | ||||
|    gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_NORMALIZE][cma] =		\ | ||||
|       gl_##pfx##_transform_normalize_normals_no_rot_##masked; | ||||
|  | ||||
|  | ||||
| #define NORM_ARGS       const GLmatrix *mat,        \ | ||||
|                         GLfloat scale,              \ | ||||
|                         const GLvector3f *in,       \ | ||||
|                         const GLfloat *lengths,     \ | ||||
|                         const GLubyte mask[],       \ | ||||
|                         GLvector3f *dest  | ||||
| #ifdef USE_3DNOW_ASM | ||||
| DECLARE_XFORM_GROUP( 3dnow, 1, raw ) | ||||
| DECLARE_XFORM_GROUP( 3dnow, 2, raw ) | ||||
| DECLARE_XFORM_GROUP( 3dnow, 3, raw ) | ||||
| DECLARE_XFORM_GROUP( 3dnow, 4, raw ) | ||||
|  | ||||
| DECLARE_XFORM_GROUP( 3dnow, 1, masked ) | ||||
| DECLARE_XFORM_GROUP( 3dnow, 2, masked ) | ||||
| DECLARE_XFORM_GROUP( 3dnow, 3, masked ) | ||||
| DECLARE_XFORM_GROUP( 3dnow, 4, masked ) | ||||
|  | ||||
| DECLARE_NORM_GROUP( 3dnow, raw ) | ||||
| /*DECLARE_NORM_GROUP( 3dnow, masked )*/ | ||||
|  | ||||
| #define DECLARE_NORM_GROUP(pfx, masked)                                        \ | ||||
|  extern void _ASMAPI gl##pfx##_rescale_normals_##masked## (NORM_ARGS);                \ | ||||
|  extern void _ASMAPI gl##pfx##_normalize_normals_##masked## (NORM_ARGS);              \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_normals_##masked## (NORM_ARGS);              \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_normals_no_rot_##masked## (NORM_ARGS);       \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_rescale_normals_##masked## (NORM_ARGS);      \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_rescale_normals_no_rot_##masked## (NORM_ARGS); \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_normalize_normals_##masked## (NORM_ARGS);    \ | ||||
|  extern void _ASMAPI gl##pfx##_transform_normalize_normals_no_rot_##masked## (NORM_ARGS); | ||||
|  | ||||
|  | ||||
|  | ||||
| #define ASSIGN_NORM_GROUP( pfx, cma, masked )                                 \ | ||||
|    gl_normal_tab[NORM_RESCALE][cma]   =                                       \ | ||||
|       gl##pfx##_rescale_normals_##masked##;                                  \ | ||||
|    gl_normal_tab[NORM_NORMALIZE][cma] =                                       \ | ||||
|       gl##pfx##_normalize_normals_##masked##;                                \ | ||||
|    gl_normal_tab[NORM_TRANSFORM][cma] =                                       \ | ||||
|       gl##pfx##_transform_normals_##masked##;                                \ | ||||
|    gl_normal_tab[NORM_TRANSFORM_NO_ROT][cma] =                                \ | ||||
|       gl##pfx##_transform_normals_no_rot_##masked##;                         \ | ||||
|    gl_normal_tab[NORM_TRANSFORM | NORM_RESCALE][cma] =                        \ | ||||
|       gl##pfx##_transform_rescale_normals_##masked##;                        \ | ||||
|    gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_RESCALE][cma] =                 \ | ||||
|       gl##pfx##_transform_rescale_normals_no_rot_##masked##;                 \ | ||||
|    gl_normal_tab[NORM_TRANSFORM | NORM_NORMALIZE][cma] =                      \ | ||||
|       gl##pfx##_transform_normalize_normals_##masked##;                      \ | ||||
|    gl_normal_tab[NORM_TRANSFORM_NO_ROT | NORM_NORMALIZE][cma] =               \ | ||||
| 	  gl##pfx##_transform_normalize_normals_no_rot_##masked##; | ||||
|  | ||||
|  | ||||
| extern void _ASMAPI gl_3dnow_project_vertices( GLfloat *first, | ||||
| 				       GLfloat *last, | ||||
| 				       const GLfloat *m, | ||||
| 				       GLuint stride ); | ||||
|  | ||||
| extern void _ASMAPI gl_3dnow_project_clipped_vertices( GLfloat *first, | ||||
| 					       GLfloat *last, | ||||
| 					       const GLfloat *m, | ||||
| 					       GLuint stride, | ||||
| 					       const GLubyte *clipmask ); | ||||
|  | ||||
| extern void _ASMAPI gl_v16_3dnow_general_xform( GLfloat *first_vert, | ||||
| 					const GLfloat *m, | ||||
| 					const GLfloat *src, | ||||
| 					GLuint src_stride, | ||||
| 					GLuint count ); | ||||
| 						const GLfloat *m, | ||||
| 						const GLfloat *src, | ||||
| 						GLuint src_stride, | ||||
| 						GLuint count ); | ||||
|  | ||||
| void gl_init_3dnow_asm_transforms (void) | ||||
| extern void _ASMAPI gl_3dnow_project_vertices( GLfloat *first, | ||||
| 					       GLfloat *last, | ||||
| 					       const GLfloat *m, | ||||
| 					       GLuint stride ); | ||||
|  | ||||
| extern void _ASMAPI gl_3dnow_project_clipped_vertices( GLfloat *first, | ||||
| 						       GLfloat *last, | ||||
| 						       const GLfloat *m, | ||||
| 						       GLuint stride, | ||||
| 						       const GLubyte *clipmask ); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| void gl_init_3dnow_transform_asm( void ) | ||||
| { | ||||
|    DECLARE_XFORM_GROUP( _3dnow, 1, raw ) | ||||
|    DECLARE_XFORM_GROUP( _3dnow, 2, raw ) | ||||
|    DECLARE_XFORM_GROUP( _3dnow, 3, raw ) | ||||
|    DECLARE_XFORM_GROUP( _3dnow, 4, raw ) | ||||
| #ifdef USE_3DNOW_ASM | ||||
|    ASSIGN_XFORM_GROUP( 3dnow, 0, 1, raw ); | ||||
|    ASSIGN_XFORM_GROUP( 3dnow, 0, 2, raw ); | ||||
|    ASSIGN_XFORM_GROUP( 3dnow, 0, 3, raw ); | ||||
|    ASSIGN_XFORM_GROUP( 3dnow, 0, 4, raw ); | ||||
|  | ||||
|    DECLARE_XFORM_GROUP( _3dnow, 1, masked ) | ||||
|    DECLARE_XFORM_GROUP( _3dnow, 2, masked ) | ||||
|    DECLARE_XFORM_GROUP( _3dnow, 3, masked ) | ||||
|    DECLARE_XFORM_GROUP( _3dnow, 4, masked ) | ||||
|    ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 1, masked ); | ||||
|    ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 2, masked ); | ||||
|    ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 3, masked ); | ||||
|    ASSIGN_XFORM_GROUP( 3dnow, CULL_MASK_ACTIVE, 4, masked ); | ||||
|  | ||||
|    DECLARE_NORM_GROUP( _3dnow, raw ) | ||||
| /* DECLARE_NORM_GROUP( _3dnow, masked ) | ||||
| */ | ||||
|  | ||||
|    ASSIGN_XFORM_GROUP( _3dnow, 0, 1, raw ) | ||||
|    ASSIGN_XFORM_GROUP( _3dnow, 0, 2, raw ) | ||||
|    ASSIGN_XFORM_GROUP( _3dnow, 0, 3, raw ) | ||||
|    ASSIGN_XFORM_GROUP( _3dnow, 0, 4, raw ) | ||||
|  | ||||
|    ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 1, masked ) | ||||
|    ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 2, masked ) | ||||
|    ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 3, masked ) | ||||
|    ASSIGN_XFORM_GROUP( _3dnow, CULL_MASK_ACTIVE, 4, masked ) | ||||
|  | ||||
|    ASSIGN_NORM_GROUP( _3dnow, 0, raw ) | ||||
| /* ASSIGN_NORM_GROUP( _3dnow, CULL_MASK_ACTIVE, masked ) | ||||
| */ | ||||
|    ASSIGN_NORM_GROUP( 3dnow, 0, raw ); | ||||
| /* ASSIGN_NORM_GROUP( 3dnow, CULL_MASK_ACTIVE, masked ); */ | ||||
|  | ||||
| #ifdef DEBUG | ||||
|    gl_test_all_transform_functions("3Dnow!"); | ||||
|    gl_test_all_normal_transform_functions("3Dnow!"); | ||||
|    gl_test_all_transform_functions( "3DNow!" ); | ||||
|    gl_test_all_normal_transform_functions( "3DNow!" ); | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
|    /* Hook in some stuff for vertices.c. | ||||
|     */ | ||||
|    gl_xform_points3_v16_general = gl_v16_3dnow_general_xform; | ||||
|    gl_project_v16 = gl_3dnow_project_vertices; | ||||
|    gl_project_clipped_v16 = gl_3dnow_project_clipped_vertices; | ||||
| }  | ||||
|  | ||||
| #else | ||||
|  | ||||
|  | ||||
| /* silence compiler warning */ | ||||
| extern void _mesa_3dnow_dummy_function(void); | ||||
| void _mesa_3dnow_dummy_function(void) | ||||
| { | ||||
| } | ||||
|  | ||||
| void gl_init_3dnow_shade_asm( void ) | ||||
| { | ||||
| #ifdef USE_3DNOW_ASM | ||||
|    /* When the time comes, initialize optimized lighting here. | ||||
|     */ | ||||
|  | ||||
| #if 0 | ||||
|    gl_test_all_shade_functions( "3DNow!" ); | ||||
| #endif | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void gl_init_3dnow_vertex_asm( void ) | ||||
| { | ||||
| #ifdef USE_3DNOW_ASM | ||||
|    gl_xform_points3_v16_general	= gl_v16_3dnow_general_xform; | ||||
|    gl_project_v16		= gl_3dnow_project_vertices; | ||||
|    gl_project_clipped_v16	= gl_3dnow_project_clipped_vertices; | ||||
|  | ||||
| #if 0 | ||||
|    gl_test_all_vertex_functions( "3DNow!" ); | ||||
| #endif | ||||
| #endif | ||||
| } | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user